《8.软件测试与质量管理.ppt》由会员分享,可在线阅读,更多相关《8.软件测试与质量管理.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六章 软件测试与质量管理软件工程Software Engineering汤景凡计算机学院 软件工程研究所 E-mail: QQ:7338172 PH:13306816640软件工程软件测试的基本概念1测试用例设计方法2软件质量管理3软件工程软件测试的基本概念1测试用例设计方法2软件质量管理3软件测试的基本概念141.1 软件测试的概念是是为为了了发发现现错错误误而而执执行行程程序序的的过过程程,即即根根据据软软件件开开发发各各阶阶段段的的规规格格说说明明和和程程序序的的内内部部结结构构而而精精心心设设计计一一批批测测试试用用例例,并并利利用用这这些些测测试试用用例例去去运运行行程程序序,以以
2、发现程序错误的过程。发现程序错误的过程。5软件测试的目的根据根据G.J.Myers观点观点-软件测试的目的:软件测试的目的:软件测试是为了发现错误而执行程序的过程一个好的测试能够在第一时间发现程序中存在的错误一个好的测试是发现了至今尚未发现的错误的测试。软件测试是质量控制的重要手段,保证客户拿到或用户使用高质量的软件产品。软件测试是质量控制的重要手段,保证客户拿到或用户使用高质量的软件产品。软件测试是质量控制的重要手段,保证客户拿到或用户使用高质量的软件产品。软件测试是质量控制的重要手段,保证客户拿到或用户使用高质量的软件产品。61.2 软件测试的误区和原则软件测试的误区:软件测试的误区:误区
3、一:误区一:误区一:误区一:如果发布出去的软件有质量问题,都是软件测试人员的错误区二:误区二:误区二:误区二:软件测试技术要求不高,至少比编程容易多了误区三:误区三:误区三:误区三:有时间就多测试一些,来不及就少测试一些 误区四:误区四:误区四:误区四:软件测试是测试人员的事,与开发人员无关 误区五:误区五:误区五:误区五:根据软件开发瀑布模型,软件测试是开发后期的一个阶段7软件测试的原则软件测试的原则:软件测试的原则:所有测试的标准都是建立在用户需求之上。软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。事先定义好产品的质量标准,只有有了质量标准,才能根据
4、测试的结果,对产品的质量进行分析和评估。软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。穷举测试是不可能的。甚至一个大小适度的程序,其路径排列的数量也非常大,因此,在测试中不可能运行路径的每一种组合。第三方进行测试会更客观,更有效。软件测试计划是做好软件测试工作的前提。测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。8软件测试的原则(续)软件测试的原则:软件测试的原则:对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。
5、重视文档,妥善保存一切测试过程文档(测试计划、测试用例、测试报告等)应当把“尽早和不断地测试”作为测试人员的座右铭回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见测试应从“小规模”开始,逐步转向“大规模”。不可将测试用例置之度外,排除随意性。必须彻底检查每一个测试结果。一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系对测试错误结果一定要有一个确认的过程。91.3 软件测试的方法软件测试的方法:软件测试的方法:黑盒子和白盒子 静态的和动态的 文档、代码审查 数据输入边界条件法 等价划分、数据流程图 状态变换图 逻辑路径法10黑盒子和白盒
6、子功能测试功能测试数据驱动测试数据驱动测试 结构测试结构测试逻辑驱动测试逻辑驱动测试 客户需求事件驱动输入输出11静态的和动态的主持人主持人作者记录员列席人员内审员内审员技术专业人员用户代表不正式正式互审 走读 审查会议运行程序运行程序12自动测试和手工测试手工模拟用户手工模拟用户操作操作13验证和确认(V&V)Verification:Are we building the product right?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性。Validation:Are we building the right pro
7、duct?是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求。141.4 软件测试的分类和阶段开发生命周期开发生命周期.维护 需求定义应用定义应用开发 修订 建立 建立测试生命周期测试生命周期.执行.执行执行.测试计划缺陷跟踪测试开发测试设计评估15软件测试分类方法方法目标目标/特性特性单元测试单元测试系统测试系统测试验收测试验收测试性能测试性能测试强壮性测试强壮性测试功能测试功能测试白盒测试白盒测试黑盒测试黑盒测试测试阶段或层次测试阶段或层次适用性测试适用性测试可靠性测试可靠性测试集成测试集成测试安全性测试安全性测试16软件测试阶段171)单元测试单
8、单元元测测试试的的对对象象是是程程序序系系统统中中的的最最小小单单元元-模模块块或或组组件件上上,在在编编码码阶阶段段进进行行,针针对对每每个个模模块块进进行行测测试试,主主要要通通过过白白盒盒测测试试方方法法,从从程程序序的的内内部部结结构构出出发发设设计计测测试试用用例例,检检查查程程序序模模块块或或组组件件的的已已实实现现的的功功能能与与定定义义的的功功能能是是否否一一致致、以以及及编编码码中中是是否否存存在在错错误误。多多个个模模块块可可以以平平行行地地、对对立立地地测测试试,通通常常要要编编写写驱驱动动模模块和桩模块。块和桩模块。单元测试一般由编程人员和测试人员共同完成。单元测试一般
9、由编程人员和测试人员共同完成。单元测试的重点:单元测试的重点:模块的接口局部数据结构重要的执行路径出错处理路径影响以上多项的边界条件182)集成测试集集成成测测试试,也也称称组组装装测测试试、联联合合测测试试、子子系系统统测测试试,在在单单元元测测试试的的基基础础上上,将将模模块块按按照照设设计计要要求求组组装装起起来来同同时时进进行行测测试试,主主要要目目标标是是发发现现与与接接口口有有关关的的模模块之间问题。块之间问题。两种集成方式:一次性集成方式和增殖式集成方式。两种集成方式:一次性集成方式和增殖式集成方式。集成测试的重点:集成测试的重点:不正确的接口。因存取全局(公用)数据引起的块间干
10、扰。不一致的文件与数据结构。不适合的模块调用顺序。出错处理上的错误。19集成测试的测试技术和集成策略集成测试常采用黑盒测试技术,其实施策略分为非渐增式和渐增式两种:集成测试常采用黑盒测试技术,其实施策略分为非渐增式和渐增式两种:非渐增式测试:一次就把通过了单元测试的所有模块组装起来,进行全程序的测试,出了问题很难进行错误定位。自顶向下测试:(渐增式),测试时从顶层模块开始,沿被测程序的结构图逐步下移,每次只增加一个新的模块。特点:1)能较早的显示出程序的轮廓2)由顶向下的组装顺序,保证任何模块加进程前,其上级模块已先它装入,所以模块的驱动可以利用真实模块,只须编写桩模块供测试之用。3)上层模块
11、得到更多的测试机会,使被测程序获得更为彻底的检验。自底向上测试:(渐增式),模块组装顺序采取由下向上的路线。测试步骤:1)从程序的较低层中找一个叶模块,由下向上地逐步增加新模块,组成程序的一个子程序或具有某一功能的模块“群”。2)从另一子系统或群中选择另一个模块,仿照1)组成又一个子系统。3)重复第2)步,得出所有子系统,然后组装成程序。特点:1)不能在测试的早期显示出程序的轮廓。2)测试软件只需要驱动模块,不需要桩模块。混合测试:是自顶向下与自底向下测试方法的结合。203)功能测试功功能能测测试试一一般般须须在在完完成成集集成成测测试试后后进进行行,而而且且是是针针对对应应用用系系统统进进行
12、行测测试试。功功能能测测试试是是基基于于产产品品功功能能说说明明书书,是是在在已已知知产产品品所所应应具具有有的的功功能能,从从用用户户角角度度来来进行功能验证,以确认每个功能是否都能正常使用。进行功能验证,以确认每个功能是否都能正常使用。214)系统测试系系统统测测试试是是将将软软件件放放在在整整个个计计算算机机环环境境下下,包包括括软软硬硬件件平平台台、某某些些支支持持软软件件、数数据据和和人人员员等等,在在实实际际运运行行环环境境下下进进行行一一系系列列的的测测试试,包包括括恢恢复复测测试试、安安全全测测试、强度测试和性能测试等。试、强度测试和性能测试等。225)验收测试&安装测试验验收
13、收测测试试的的目目的的是是向向未未来来的的用用户户表表明明系系统统能能够够像像预预定定要要求求那那样样工工作作,验验证证软软件的功能和性能如同用户所合理期待的那样。件的功能和性能如同用户所合理期待的那样。安安装装测测试试是是指指按按照照软软件件产产品品安安装装手手册册或或相相应应的的文文档档,在在一一个个和和用用户户使使用用该该产产品品完完全全一一样样的的环环境境中中或或相相当当于于用用户户使使用用环环境境中中,进进行行一一步步一一步步的的安安装装操操作作性性的的测试。测试。软件工程软件测试的基本概念1测试用例设计方法2软件质量管理3测试用例设计方法22 测试用例设计测试用例设计与实现252.
14、1 黑盒测试方法黑盒测试方法:黑盒测试方法:等价分类法。边界值分析法。错误推测法。因果图法。262.2 白盒测试方法白盒测试方法:白盒测试方法:逻辑覆盖法:语句覆盖:使被测试程序的每条语句至少执行一次。判定覆盖:使被测试程序的每一分支都至少执行一次。条件覆盖:要求判定中的每个条件都按“真”“假”两种结果至少执行一次。判定/条件覆盖:要求判定中的每个条件都取到各种可能的值,而且每个判定表达式也都要取到各种可能的结果。条件组合覆盖:要求判定中每个条件的各种可能组合都至少出现一次。路径测试法:结点覆盖:程序的测试路径至少经过程序图中的每个结点一次。边覆盖:程序的测试路径至少经过程序图中每条边一次。路
15、径覆盖:要求程序图中每条路径都至少经过一次。272.3 黑盒和白盒测试方法的区别黑黑盒盒测测试试着着重重测测试试软软件件功功能能。黑黑盒盒测测试试并并不不能能取取代代白白盒盒测测试试,它它是是与与白白盒盒测测试互补的测试方法,它很可能发现白盒测试不易发现的其他类型的错误。试互补的测试方法,它很可能发现白盒测试不易发现的其他类型的错误。黑黑盒盒测测试试力力图图发发现现下下述述类类型型的的错错误误:功功能能不不正正确确或或遗遗漏漏了了功功能能;界界面面错错误误;数数据据结结构构错错误误或或外外部部数数据据库库访访问问错错误误;性性能能错错误误;初初始始化化和和终终止止错误。错误。白盒测试在测试过程
16、的早期阶段进行,而黑盒测试主要用于测试过程的后期。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。设计黑盒测试方案时,应该考虑下述问题:设计黑盒测试方案时,应该考虑下述问题:怎样测试功能的有效性?哪些类型的输入可构成好测试用例?系统是否对特定的输入值特别敏感?怎样划定数据类的边界?系统能够承受什么样的数据率和数据量?数据的特定组合将对系统运行产生什么影响?应用黑盒测试技术,能够设计出满足下述标准的测试用例集:应用黑盒测试技术,能够设计出满足下述标准的测试用例集:所设计出的测试用例能够减少为达到合理测试所需要设计的测试用例的总数;所设计出的测试用例能够告诉我们,是否存在某些类
17、型的错误,而不是仅仅指出与特定测试相关的错误是否存在。282.4 课堂练习:软件测试方法设有一程序,如图所示,能够对“姓名”、“年龄”、“性别”信息进行输入,且根据下面的规则判断有效性,并将判断的结果进行显示:“姓名”:2-8位字母;“年龄”:0-150的整数;“性别”:数字0或1;如果输入的信息有效,则显示“信息输入有效信息输入有效”;如果输入的信息无效,则判断无效的原因,并进行显示,如:“年龄信息输入无效年龄信息输入无效”。试试用用等等价价分分类类法法为为该该程程序序设设计计相相应应的的测测试试用用例。例。29作业测试用例测试用例测试分析报告测试分析报告30结束本章结束AnAny y questionquestion