2软件测试的重要性软件测试——产品质量的保证软件测试——控制成本的关键软件测试——软件可靠性确认软件测试——让企业具备国际竞争的实力主要内容1.1软件的定义①能够完成预定功能和性能的、可执行的指令(计算机程序);②使得程序能够适当地操作信息的数据结构;③描述程序的操作和使用的文档。程序数据(库)文档服务软件1.2什么是软件测试?软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程。1.3软件测试的基本概念•软件测试的对象:——软件测试不等于程序测试。——软件测试贯串于软件定义和开发的整个过程。——软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。•测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。备注:测试用例的编写思路。1.4软件测试的目的•软件测试的目的•测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性。•检查系统是否满足需求也是测试的期望目标。•一个好的测试用例在于发现了还未曾发现的错误,一次成功的测试则是发现了错误的测试。2.1软件测试技术和分类一、从软件测试用例设计方法的角度,可分为黑盒测试(Black-BoxTesting)和白盒测试(White-BoxTesting)。客户需求事件驱动输入输出功能测试数据驱动测试结构测试逻辑驱动测试2.2软件测试技术和分类•二、从是否需要执行被测软件的角度,可分为静态测试和动态测试。主持人作者记录员列席人员内审员技术专业人员用户代表运行程序不正式正式互审走读审查会议2.3软件测试技术和分类•三、按照软件测试的过程分类–单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。–集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既要验证“设计”又要验证“需求”。–系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。–验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。2.4软件测试技术和分类•测试内容功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试…测试阶段主要依据测试人员、测试方式主要测试内容单元测试系统设计文档由开发小组执行白盒测试接口测试、路径测试集成测试系统设计文档需求文档由开发小组执行白盒测试和黑盒测试接口测试、路径测试功能测试、性能测试系统测试需求文档由独立测试小组执行黑盒测试功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试验收测试需求文档由用户执行黑盒测试3.1测试流程•测试流程–第一步:制定测试计划。该计划被批准后转向第二步。–第二步:设计测试用例。该用例被批准后转向第三步。–第三步:如果满足“启动准则”,那么执行测试。–第四步:撰写测试报告。–第五步:消除软件缺陷。如果满足“完成准则”,那么正常结束测试。制定测试计划评审设计测试用例评审执行测试撰写测试报告消除软件缺陷回归测试完成准则完成测试启动准则3.2软件测试的规范•测试启动准则–同时满足以下条件,允许开始测试:•测试方案已经制定并且通过了审批;•测试用例已经设计并且通过了审批;•被测试对象已经开发完毕并等待测试。•测试完成准则–对于非严格系统可以采用“基于测试用例”的准则。同时满足以下条件允许结束测试:•功能性测试用例通过率达到100%;•非功能性测试用例通过率达到90%时。•测试文档模板–测试方案参考模板–测试用例参考模板–测试报告参考模板3.3软件测试的原则软件测试的原则(1)尽早地和及时地测试;(2)测试用例应当由测试数据和与之对应的预期结果这两部分组成;(3)在程序提交测试后,应当由专门的测试人员进行测试;(4)测试用例应包括合理的输入条件和不合理的输入条件;(5)严格执行测试计划,排除测试的随意性;(6)充分注意测试当中的群体现象;(7)应对每一个测试结果做全面的检查;(8)保存测试方案、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。3.4快速应用开发的V模型3.5软件开发和软件测试模型一、软件开发与测试V模型用户需求获取需求定义需求分析需求分析书概要设计概要设计书详细设计详细设计书编码程序软件产品可交付软件系统测试已确认软件确认测试已集成软件集成测试已测试模块单元测试需求分析评审评审评审评审评审评审评审评审4.1软件的缺陷Anyproblem/disfigurement/limitationinproductdesign&development–Featureorfunctioncan’twork–Unreasonabledesign–Partlyrealizationinfunction–Dataerror–Runerror–Limitationinfeatures–Differencebetweenactualresultsandexpectedresults–UnfriendlyUI,Lowperformance–Others4.2软件的缺陷任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求4.3软件测试的意义实践证明:对软件进行充分的测试才能够有效的保证软件质量对软件产品进行充分测试,找出其中的缺陷(Bug),并进行修复(Fix)。备注:提单的流程谢谢!