首页 > 知识点讲解
       软件测试的基本概念
知识路径: > 电子商务系统程序设计基础 > 电子商务系统的测试 > 
相关知识点:77个      
        软件测试是在软件投入运行之前,对软件需求分析、设计规格说明与编码的最终复审,是保证软件质量的关键步骤之一。软件测试是为了发现错误而审查和执行软件的过程。在软件生命周期中的编码阶段,通常每编写出一个模块之后就对它做必要的测试,即模块测试或称单元测试。编码与单元测试属于软件生命周期中的同一阶段。软件生存期中还有一个独立的测试阶段,对软件系统进行各种综合测试。软件测试总是试图以最少的代价发现软件分析、设计和编码等过程中存在的各种不同类型的错误,从而提高软件质量,降低软件系统的总成本。软件测试不是打消软件工程师积极性的过程,而是同软件分析与设计一样,是为了建成高质量的软件,只不过是从不同的侧面来进行。
        软件测试(Software Test)是利用特定的技术和方法,运行、评价和验证软件的过程,其目的在于检验它是否满足规定的需求或搞清预期结果与实际结果之间的差别。
        为了深入理解软件测试的定义,可以从如下几个方面来理解:
        (1)软件测试的目的。软件测试的目的是发现软件中的错误,而不能证明软件无错,是在软件投入运行前,对软件需求分析、设计和编码各阶段产品的最终检查,是为了保证软件开发产品的正确性、完全性和一致性,从而检测并修正软件错误的过程。
        (2)软件测试的性质。在软件开发过程中,分析、设计与编码等工作具有“建设性”,只有测试可能具有一定“破坏性”,如使用不合理用例测试。
        (3)软件开发。软件测试以检查软件产品的内容和功能特性为核心,是软件质量保证的关键步骤,也是成功实现软件开发目标的重要保障。
        (4)软件工程。软件测试是软件工程的一部分,是软件工程过程中的重要阶段。
        (5)软件质量保证。软件质量保证是管理学范畴的概念,软件测试主要是技术实现范畴的概念,是软件质量保障的关键措施。
        著名软件工程专家Grenford.J.Myers在其著作《软件测试技巧》中将软件测试的目的归纳为:
        (1)测试是一个为了发现错误而执行程序的过程。
        (2)一个好的测试用例在于能发现至今为止尚未发现的错误。
        (3)一个成功的测试是发现了至今为止尚未发现的错误的测试。
        E.W.Dijkstra指出:“程序测试能证明错误的存在,但不能证明错误不存在”。
        下面的一些规则有助于测试人员实现软件测试的目标。
        (1)软件测试证明不了程序的正确性。程序的正确性必须通过穷尽式测试来证明,即将软件所有可能的执行情况都运行一遍。但是,就算是一个中等规模的程序,其执行路径的组合也非常庞大。受时间和费用的影响,也不可能穷尽测试。因此,测试只能帮助发现尽可能多的错误,而无法严格证明程序的正确性。
        (2)测试用例需要精心准备。软件测试中需要数据,即为测试而设计的测试用例,利用测试用例去运行程序,能帮助发现程序错误。但是,并不是所有的数据都具有相同的发现错误的能力。找到有代表性的测试用例,不仅能发现更多的错误,而且有助于控制测试的成本。
        (3)测试应该由独立的第三方人员完成。从心理学的角度看,由软件开发人员来测试自己编写的系统并不是一个好的选择,他们的潜意识里存在证明程序正确的想法。因而在综合测试阶段,由独立的第三方来执行测试工作是一个最佳的选择。
        (4)软件测试应该分步骤进行。通常软件是一个庞大的系统。从一开始就将整个系统作为一个单独实体来测试很难实现。软件的测试应该从较小规模的实体开始,如单个模块。然后逐渐进行大规模测试,如多个模块组装起来的子系统。
        根据测试的目的,软件测试主要有以下一些基本原则。
        (1)所有的测试都应追溯到用户需求。软件测试的目的在于暴露软件所存在的错误和缺陷。而从用户角度看,最严重的错误就是那些导致软件无法满足需求的错误。程序中问题的根源可能在开发前期的各阶段,因而这些问题的解决、错误的纠正也必须追溯到软件开发的前期工作。
        (2)应该尽早制订测试计划,并严格执行测试计划。把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。由于原始问题的复杂性,软件系统本身的复杂性和抽象性,软件开发各个阶段工作的多样性,以及参加开发的各种层次人员之间工作的配合关系等因素,使得软件开发的各个环节都有可能产生错误。
        测试计划应包括以下内容:测试目的、被测试软件的功能、输入和输出、测试内容、各项测试进度安排、资源要求、测试资料、测试工具、测试用例、测试控制方式和过程、系统组装方式、跟踪规程以及评价标准等。测试计划应和软件系统的其他文档资料一样长期保存,直到该软件系统被废弃为止。对于测试计划,要明确规定,不要随意解释。测试计划制订出来以后应排除测试的随意性。
        (3)应该由第三方进行测试工作。严格地说,一个软件项目的开发人员不应该同时是该软件的测试人员。从心理学角度讲,让一个人否定自己所做的工作将是一件非常沮丧的事情。另外,如果程序中包含了由于程序员对程序功能需求的误解而产生的错误,当程序员测试自己的程序时,往往还会带着同样的误解而使错误难以发现。因此,基于人本身的弱点,要克服这种盲目的自信心及对功能要求误解的延续性,测试工作应避免由系统开发人员或开发机构本身来承担。为了得到最好的测试效果,应由第三方人员或者说另一个独立的机构(即不是设计系统或编写程序的机构和个人)对软件进行客观、严格的独立测试。更一般地,测试工作应由软件系统设计编程部门以外的另一个独立部门来进行,但查出错误之后的排错,则仍应由程序的原编写者自己进行。
        (4)穷举测试是不可能的。在进行软件测试时,只要对每一种可能情况都进行测试(亦即穷举测试),就可以得到完全正确的程序。但是,能不能把所有隐藏的错误全都找出来呢?或者说能不能把所有可能做的测试无遗漏地做完呢?事实上这是不可能的,也是不现实的。应该有选择地进行测试,选取有代表性的、典型的数据作为测试用例。
        (5)充分重视测试中的群集现象。有的测试人员经过测试发现错误后,就认为错误找的差不多了,不再继续进行测试。经验表明,测试后软件中仍存在错误的概率与已经发现的错误数成正比。根据这一规律,应该对出现错误多的程序段进行重点测试,以提高测试效率。
        (6)设计测试用例应全面。在设计测试用例时,不仅要包括合理、有效的输入条件,也要包含不合理、失效的输入条件。人们往往习惯按照合理的、正常的情况进行测试,而忽略了对异常、不合理的、意想不到的情况进行测试,而这些隐患如果没有排除,在今后的正式运行中就有可能暴露出来。
        在测试程序时,不仅要检测程序是否做了该做的事,还要检测程序是否做了不该做的事。多余的工作会带来相应的副作用,会影响程序的效率,有时甚至会带来潜在的危害或错误。
 
 相关知识点:
单元测试的执行过程
单元测试的原则
动态测试
边界条件测试
程序的控制流图
静态分析工具
单元测试停止的条件
集成测试过程中的两个重要的里程..
基本路径测试法步骤
集成测试与单元测试的区别
可用性测试
集成测试的方法
黑盒测试
安装测试
验收测试的主要任务
环形复杂度
基本路径测试法
决策表
性能测试
回归测试
模块接口测试
自底向上增量式测试
自顶向下增量式测试
Cookies测试
单元测试的主要任务
回归测试的实施前提
白盒测试工具
出错处理测试
集成测试停止的条件
程序正确性证明
单元测试
计算机辅助静态分析
执行路径测试
软件测试文档
逻辑覆盖法
兼容性/配置测试
数据库测试
用户界面测试
基于Web的系统测试方式
集成测试
人工测试方法
容错性测试
黑盒测试工具
测试工具
准备测试环境
单元测试的特性
功能测试
负载测试
局部数据结构测试
集成测试遵循的原则
表单测试
SQA Suite
功能测试
系统测试
PureAtria
软件测试阶段
压力测试
Web安全性测试
单元测试的认识误区
等价类划分
测试管理工具
动态分析工具
可靠性测试
边界值分析
e-Test Suite
验收测试
静态测试
链接测试
白盒测试
回归测试与一般测试的比较
元素分析法与错误推测法
交易功能测试
Alpha测试和Beta测试
文档测试
安全性测试
软件测试的基本方法
确认测试
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有