《软件制造工程白盒测试精品文稿.ppt》由会员分享,可在线阅读,更多相关《软件制造工程白盒测试精品文稿.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件制造工程白盒测试第1页,本讲稿共74页n n测试的基本概念及测试工程概述测试的基本概念及测试工程概述测试的基本概念及测试工程概述测试的基本概念及测试工程概述n n各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程n n测试方法测试方法测试方法测试方法第2页,本讲稿共74页 软件测试背景软件测试背景n软件是人编的软件是人编的所以不完美所以不完美n软件错误原因软件错误原因l交流不够交流不够 l软件复杂性软件复杂性 l程序设计错误程序设计错误 l需求变化需求变化 l时间压力时间压力 l代码文档贫乏代码文档贫乏 l软件开发工具错误软件开
2、发工具错误第3页,本讲稿共74页软件测试背景n n软件产品最大的成本是检测软件错误软件产品最大的成本是检测软件错误,修正软修正软件错误的成本件错误的成本。n n很多软件开发企业花费在测试上的费用是总项目费用很多软件开发企业花费在测试上的费用是总项目费用的的,30%30%40%40%,甚至甚至更多更多;类似飞行控制等软类似飞行控制等软件的测试费用更是占项目其他费用的三至五倍件的测试费用更是占项目其他费用的三至五倍 。n n软件测试行业在国内的发展,远比软件开发甚至软件测试行业在国内的发展,远比软件开发甚至项目管理缓慢。项目管理缓慢。第4页,本讲稿共74页软件测试的定义n n软件测试是为了发现缺陷
3、而执行程序的过程软件测试是为了发现缺陷而执行程序的过程n n测试是为了证明程序中有错误,而不是证明程测试是为了证明程序中有错误,而不是证明程序中无错误序中无错误n n一个好的测试用例指的是它可能发现至今尚未一个好的测试用例指的是它可能发现至今尚未发现的缺陷发现的缺陷n n一次成功的测试指的是发现了新的软件缺陷的测试一次成功的测试指的是发现了新的软件缺陷的测试第5页,本讲稿共74页n n注:l l测试以查找错误为中心,而不是为测试以查找错误为中心,而不是为了演示软件的正确功能。但并不是了演示软件的正确功能。但并不是说查找不出错误的测试就是没有价说查找不出错误的测试就是没有价值的。值的。第6页,本
4、讲稿共74页软件测试的目的n n确认软件的质量,一方面是确认软件做了你所确认软件的质量,一方面是确认软件做了你所期望的事情,另一方面确认软件以正确的方式期望的事情,另一方面确认软件以正确的方式来做了这个事件来做了这个事件n n提供信息,比如提供给开发人员或程序反馈组处,为提供信息,比如提供给开发人员或程序反馈组处,为风险评估所准备的信息风险评估所准备的信息n n软件测试不仅是在测试软件产品本身,而且还包括软件测试不仅是在测试软件产品本身,而且还包括软件开发的过程,即保证整个软件开发过程是高质软件开发的过程,即保证整个软件开发过程是高质量的。量的。第7页,本讲稿共74页软件测试的目的n n基于不
5、同的立场,存在着两种完全不同的测试目基于不同的立场,存在着两种完全不同的测试目基于不同的立场,存在着两种完全不同的测试目基于不同的立场,存在着两种完全不同的测试目的。的。的。的。n n从从从从用户的角度用户的角度用户的角度用户的角度出发,普遍希望通过软件测试出发,普遍希望通过软件测试出发,普遍希望通过软件测试出发,普遍希望通过软件测试暴露暴露暴露暴露软件中隐藏的错误和缺陷软件中隐藏的错误和缺陷软件中隐藏的错误和缺陷软件中隐藏的错误和缺陷,以考虑是否可接受,以考虑是否可接受,以考虑是否可接受,以考虑是否可接受该产品。该产品。该产品。该产品。n n从从从从软件开发者的角度软件开发者的角度软件开发者
6、的角度软件开发者的角度出发,则希望测试成为出发,则希望测试成为出发,则希望测试成为出发,则希望测试成为表表表表明软件产品中不存在错误明软件产品中不存在错误明软件产品中不存在错误明软件产品中不存在错误的过程,验证该软件已的过程,验证该软件已的过程,验证该软件已的过程,验证该软件已正确地实现了用户的要求,确立人们对软件正确地实现了用户的要求,确立人们对软件正确地实现了用户的要求,确立人们对软件正确地实现了用户的要求,确立人们对软件质量的信心。质量的信心。质量的信心。质量的信心。第8页,本讲稿共74页测试观点n n软件测试不等于程序测试软件测试不等于程序测试 软件测试应贯穿于软件定义与开发的整个期间
7、;软件测试应贯穿于软件定义与开发的整个期间;软件测试应贯穿于软件定义与开发的整个期间;软件测试应贯穿于软件定义与开发的整个期间;据美国一家公司统计,查出的软件错误中,属于据美国一家公司统计,查出的软件错误中,属于据美国一家公司统计,查出的软件错误中,属于据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误需求分析和软件设计的错误需求分析和软件设计的错误需求分析和软件设计的错误约占约占约占约占 64%64%64%64%,属于程序,属于程序,属于程序,属于程序编写的错误仅占编写的错误仅占编写的错误仅占编写的错误仅占 36%36%36%36%。程序编写的许多错误是。程序编写的许多错误是
8、。程序编写的许多错误是。程序编写的许多错误是“先天的先天的先天的先天的”。第9页,本讲稿共74页软件测试的原则1.1.应当把应当把应当把应当把“尽早地和不断地进行软件测试尽早地和不断地进行软件测试尽早地和不断地进行软件测试尽早地和不断地进行软件测试”作为软作为软作为软作为软件开发者的座右铭。件开发者的座右铭。件开发者的座右铭。件开发者的座右铭。2.2.测试用例应由测试用例应由测试用例应由测试用例应由测试输入数据测试输入数据测试输入数据测试输入数据和对应的和对应的和对应的和对应的预期输出结果预期输出结果预期输出结果预期输出结果这这这这两部分组成。两部分组成。两部分组成。两部分组成。3.3.程序员
9、应避免检查自己的程序。程序员应避免检查自己的程序。程序员应避免检查自己的程序。程序员应避免检查自己的程序。4.4.在设计测试用例时,应包括在设计测试用例时,应包括在设计测试用例时,应包括在设计测试用例时,应包括合理的输入条件合理的输入条件合理的输入条件合理的输入条件和和和和不合不合不合不合理的输入条件理的输入条件理的输入条件理的输入条件。第10页,本讲稿共74页5.5.充分注意测试中的群集现象。充分注意测试中的群集现象。充分注意测试中的群集现象。充分注意测试中的群集现象。经验表明,经验表明,经验表明,经验表明,测试后测试后测试后测试后程序中残存的错误数目与该程程序中残存的错误数目与该程程序中残
10、存的错误数目与该程程序中残存的错误数目与该程序中已发现的错误数目成正比序中已发现的错误数目成正比序中已发现的错误数目成正比序中已发现的错误数目成正比。6.6.严格执行测试计划,严格执行测试计划,严格执行测试计划,严格执行测试计划,排除测试的随意性排除测试的随意性排除测试的随意性排除测试的随意性。7.7.应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。8.8.妥善保存测试计划,测试用例,出错统计和最终分妥善保存测试计划,测试用例,出错统计和最终分妥善保存测试计划,测试用例,出错统计和最终分妥善保存测试计划,测试用例,
11、出错统计和最终分析报告,为维护提供方便。析报告,为维护提供方便。析报告,为维护提供方便。析报告,为维护提供方便。软件测试的原则第11页,本讲稿共74页4.1 测试工程概要n n通过测试工程对软件的测试,验证软件的有通过测试工程对软件的测试,验证软件的有效性,发现并修补软件系统的缺陷,以提高效性,发现并修补软件系统的缺陷,以提高软件质量,确保开发出用户满意的软件。软件质量,确保开发出用户满意的软件。第12页,本讲稿共74页4.1 测试工程概要n n测试是一个反复的过程测试是一个反复的过程 n n面向功能的系统和面向对象的系统的测试面向功能的系统和面向对象的系统的测试方法是不一样的方法是不一样的
12、第13页,本讲稿共74页4.1 测试工程概要n n测试工程在软件生命周期过程中处于下测试工程在软件生命周期过程中处于下流工程的位置流工程的位置n n测试工程的主要测试阶段:单元测试、组测试工程的主要测试阶段:单元测试、组合测试、系统测试、运行测试。合测试、系统测试、运行测试。第14页,本讲稿共74页开发工程与测试阶段需求分析概要设计(外部设计)详细设计(内部设计)程序设计运行测试系统测试组合测试单元测试对应工程时间流程序编制第15页,本讲稿共74页开发工程与测试阶段需求分析概要设计(外部设计)详细设计(内部设计)程序设计运行测试系统测试组合测试单元测试对应工程时间流程序编制对程序的每个模块进行
13、测试,检验每个模块是否完成各自的功能第16页,本讲稿共74页开发工程与测试阶段需求分析概要设计(外部设计)详细设计(内部设计)程序设计运行测试系统测试组合测试单元测试对应工程时间流程序编制把测试过的程序模块组装起来进行功能测试,检验设计阶段对系统的各个功能模块及接口的设计是否正确第17页,本讲稿共74页开发工程与测试阶段需求分析概要设计(外部设计)详细设计(内部设计)程序设计运行测试系统测试组合测试单元测试对应工程时间流程序编制根据软件的需求定义和设计检验软件的功能和性能是否满足要求第18页,本讲稿共74页开发工程与测试阶段需求分析概要设计(外部设计)详细设计(内部设计)程序设计运行测试系统测
14、试组合测试单元测试对应工程时间流程序编制把经过系统测试的软件系统纳入用户的实际运行环境中,将软件、硬件和实际使用的数据等其他因素综合起来进行全系统的运行检验第19页,本讲稿共74页4.2 4.2 各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程n n单元测试单元测试单元测试单元测试前提:已通过编译程序检查并且改正所有前提:已通过编译程序检查并且改正所有前提:已通过编译程序检查并且改正所有前提:已通过编译程序检查并且改正所有语法错误。语法错误。语法错误。语法错误。依据:程序设计书依据:程序设计书依据:程序设计书依据:程序设计书目的:检测确认程序模块的处理逻辑是否正确,目的:检测确认程序模
15、块的处理逻辑是否正确,目的:检测确认程序模块的处理逻辑是否正确,目的:检测确认程序模块的处理逻辑是否正确,要求的功能是否实现。要求的功能是否实现。要求的功能是否实现。要求的功能是否实现。第20页,本讲稿共74页单元测试作业内容及流程单元测试作业内容及流程测试实施测试实施测试准备测试准备1.1.准备测试工具准备测试工具 2.2.配置测试环境配置测试环境 3.3.准备测试数据准备测试数据1.1.按按PCLPCL测试程序测试程序 2.2.填写测试记录(填写测试记录(B B票)票)1.1.按程序设计书检查测试结果按程序设计书检查测试结果 2.2.填写检查记录(填写检查记录(B B票)票)测试资料准备测
16、试资料准备测试环境准备测试环境准备1.确认测试方法确认测试方法 2.2.确定采用的问题记录表(确定采用的问题记录表(B B票)格式票)格式3.3.作成单元测试检测清单(作成单元测试检测清单(PCLPCL:Program Check ListProgram Check List)测试程序测试程序确认测试结果确认测试结果修正程序、设计书修正程序、设计书再测试再测试按检查结果修正程序、设计书按检查结果修正程序、设计书 填写修正记录(填写修正记录(B B票、设计书变更记录表)票、设计书变更记录表)单元测试报告单元测试报告1.1.根据根据PCLPCL、B B票、测试结果等确认测试质量票、测试结果等确认测
17、试质量 2.2.判断是否进入组合测试判断是否进入组合测试确认测试结果确认测试结果第21页,本讲稿共74页4.2 4.2 各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程n n从哪几个方面进行单元测试?从哪几个方面进行单元测试?(1 1)程序的逻辑处理测试)程序的逻辑处理测试(2 2)程序的输入)程序的输入/输出测试输出测试(3 3)边界条件测试)边界条件测试(4 4)异常处理测试)异常处理测试第22页,本讲稿共74页4.2 4.2 各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程n n组合测试组合测试目的:将各个程序模块组装起来进行程序之间目的:将各个程序模块组装起来进行程序之
18、间的连接测试,确认系统的各个功能模块及模块的连接测试,确认系统的各个功能模块及模块之间的接口是否正确,是否实现详细设计书的之间的接口是否正确,是否实现详细设计书的功能要求,详细设计是否符合业务处理的要求。功能要求,详细设计是否符合业务处理的要求。注:组合测试不仅找出程序缺陷,同时还要找出设计缺注:组合测试不仅找出程序缺陷,同时还要找出设计缺陷。陷。第23页,本讲稿共74页组合测试作业内容及流程组合测试作业内容及流程测试实施测试实施测试准备测试准备1.1.准备测试工具准备测试工具 2.2.配置测试环境配置测试环境 3.3.准备测试数据准备测试数据1.1.按测试流程和按测试流程和CCLCCL测试程
19、序测试程序 2.2.填写测试记录(填写测试记录(B B票)票)1.1.按详细设计书检查测试结果按详细设计书检查测试结果 2.2.填写检查记录(填写检查记录(B B票)票)测试资料准备测试资料准备测试环境准备测试环境准备1.制定测试方针及流程制定测试方针及流程 2.2.确定采用的问题记录表(确定采用的问题记录表(B B票)、设计票)、设计变更记录表格式变更记录表格式 3.3.作成组合测试检测清单(作成组合测试检测清单(CCL:Combining Check CCL:Combining Check ListList)测试程序测试程序确认测试结果确认测试结果修正程序、设计书修正程序、设计书再测试再测
20、试1.1.按按检检查查结结果果修修正正程程序序、设设计计书书 2.2.填填写写修修正正记记录录(B B票票、设设计计书书变变更更记录表)记录表)3 3、修正设计书、修正设计书1.1.按测试方针和按测试方针和CCLCCL再测试程序再测试程序 2.2.填写测试记录(填写测试记录(B B票)票)组合测试报告组合测试报告1.1.根据根据CCLCCL、B B票、测试结果等确认测试质量票、测试结果等确认测试质量 2.2.判断是否进入系统测试判断是否进入系统测试确认测试结果确认测试结果第24页,本讲稿共74页4.2 4.2 各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程n n组合测试验证哪几方面的
21、内容?组合测试验证哪几方面的内容?(1 1)数据的输入、窗体之间的迁移、表格的打)数据的输入、窗体之间的迁移、表格的打印输出是否正确。印输出是否正确。(2 2)文件、数据库的处理是否合理、正确。)文件、数据库的处理是否合理、正确。(3 3)功能模块之间的信息、数据的传递、通信)功能模块之间的信息、数据的传递、通信接口的处理等是否正确。接口的处理等是否正确。(4 4)功能模块之间接口发生的异常处理是否正确,)功能模块之间接口发生的异常处理是否正确,如与外部设备的接口、嵌入软件等的接口发生异如与外部设备的接口、嵌入软件等的接口发生异常时的处理。常时的处理。第25页,本讲稿共74页4.2 4.2 各
22、个测试阶段的作业内容及流程各个测试阶段的作业内容及流程n n系统测试系统测试目的:验证软件系统的功能和性能及其他特性目的:验证软件系统的功能和性能及其他特性是否与用户期待的要求一致。(即验证软件的是否与用户期待的要求一致。(即验证软件的可靠性和有效性。)可靠性和有效性。)依据:需求定义和概要设计书依据:需求定义和概要设计书第26页,本讲稿共74页系统测试作业内容及流程系统测试作业内容及流程测试实施测试实施测试准备测试准备1.1.准备测试工具准备测试工具 2.2.检查用户配置的测试环境检查用户配置的测试环境 3.3.获取用户的实际数据获取用户的实际数据1.1.按测试流程和按测试流程和SCLSCL
23、测试系统测试系统 2.2.填写测试记录(填写测试记录(B B票)票)1.1.按概要设计书、需求定义检查测试结果按概要设计书、需求定义检查测试结果 2.2.填写检查记录(填写检查记录(B B票)票)测试资料准备测试资料准备测试环境准备测试环境准备1.制制定定测测试试方方针针和和测测试试流流程程2.2.确确定定采采用用的的问问题题记记录录表表(B B票票)、设设计计变变更更记记录录表表格格式式 3.3.作作成成系系统统测测试试检检测测清清单单(SCLSCL:System System Check Check ListList)测试系统测试系统确认测试结果确认测试结果修正程序、设计书修正程序、设计书
24、再测试再测试1.1.按按检检查查结结果果修修正正程程序序、设设计计书书 2.2.填填写写修修正正记记录录(B B票票、设设计计书书变变更更记记录)录)1.1.按测试流程和按测试流程和SCLSCL再测试系统再测试系统 2.2.填写测试记录(填写测试记录(B B票)票)系统测试报告系统测试报告1.1.根根据据SCLSCL、B B票票、测测试试结结果果等等确确认认软软件件系系统统质质量量 2.2.判判断断是是否否能能进进入入运运行测试行测试 确认测试结果确认测试结果第27页,本讲稿共74页4.2 4.2 各个测试阶段的作业内容及流程各个测试阶段的作业内容及流程n n运行测试运行测试(又称应用测试或验
25、收测试)(又称应用测试或验收测试)目的:由用户确定软件系统是否满足需求目的:由用户确定软件系统是否满足需求定义的要求。定义的要求。第28页,本讲稿共74页运行测试的主要作业内容及流程运行测试的主要作业内容及流程测试实施测试实施测试准备测试准备1.1.按用户的实机运行环境准备培训环境和培训用数据按用户的实机运行环境准备培训环境和培训用数据 2.2.确认培训人员确认培训人员1.1.按测试流程测试系统按测试流程测试系统 2.2.填写验收记录填写验收记录1.1.按概要设计书、需求定义检查测试结果按概要设计书、需求定义检查测试结果 2.2.填写验收记录填写验收记录培训资料准备培训资料准备培训环境准备培训
26、环境准备1.制定测试方针和测试流程制定测试方针和测试流程 2.2.确定采用的验收记录表格式确定采用的验收记录表格式3.3.编制系统运行手册、系统操作手册等培训资料编制系统运行手册、系统操作手册等培训资料测试系统测试系统确认测试结果确认测试结果评审改进方案评审改进方案改进系统改进系统1.1.按按用用户户提提出出改改进进意意见见制制定定改改进进方方案案 2.2.组组织织相相关关人人员员对对改改进进方方案案进进行行评审评审1.1.按经过评审的改进方案改进系统按经过评审的改进方案改进系统 2.2.检查改进后系统运行结果检查改进后系统运行结果系统改进测试报告系统改进测试报告1.1.根根据据改改进进后后的
27、的系系统统运运行行检检查查结结果果确确认认软软件件系系统统质质量量 2.2.判判断断是是否否能能正正式运行式运行 测试环境准备测试环境准备1.1.检查用户的实机运行环境检查用户的实机运行环境 2.2.准备用户的实际应用数据准备用户的实际应用数据确认测试结果确认测试结果第29页,本讲稿共74页4.3 测试方法软件测试的软件测试的策略和方法策略和方法静态测静态测试方法试方法动态测动态测试方法试方法人工测试方法人工测试方法计算机辅助静计算机辅助静态分析方法态分析方法白盒测试方法白盒测试方法黑盒测试方法黑盒测试方法第30页,本讲稿共74页4.3 测试方法n n从测试的手段分类,常用的测试方法有白盒测试
28、和从测试的手段分类,常用的测试方法有白盒测试和黑盒测试;黑盒测试;n n从测试的推进方法分类,又有自顶向下测试和自底从测试的推进方法分类,又有自顶向下测试和自底向上测试。向上测试。第31页,本讲稿共74页4.3 测试方法注:注:选用少量最有效的测试数据,达到尽可能完选用少量最有效的测试数据,达到尽可能完备的测试效果是设计测试数据的关键。备的测试效果是设计测试数据的关键。第32页,本讲稿共74页4.3.1 白盒测试白盒测试 n n前提是可以把程序看成装在一个前提是可以把程序看成装在一个透明的白盒子里,也就是完全了透明的白盒子里,也就是完全了解程序的结构和处理过程。这种解程序的结构和处理过程。这种
29、方法按照程序内部的逻辑测试程方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否序,检验程序中的每条通路是否都能按预定要求正确工作。白盒都能按预定要求正确工作。白盒测试又称为测试又称为结构测试结构测试。第33页,本讲稿共74页n n白盒测试的白盒测试的核心核心:l l根据程序内部结构设计测试用例。根据程序内部结构设计测试用例。n n白盒测试又分为白盒测试又分为白盒测试又分为白盒测试又分为逻辑覆盖测试和路径测试逻辑覆盖测试和路径测试逻辑覆盖测试和路径测试逻辑覆盖测试和路径测试。l l 第34页,本讲稿共74页n n逻辑覆盖测试法:通常用流程图来设计测试用例,逻辑覆盖测试法:通常用流程图来设计
30、测试用例,逻辑覆盖测试法:通常用流程图来设计测试用例,逻辑覆盖测试法:通常用流程图来设计测试用例,它考察的重点是图中的判定框。因为这些判定若它考察的重点是图中的判定框。因为这些判定若它考察的重点是图中的判定框。因为这些判定若它考察的重点是图中的判定框。因为这些判定若不是与选择结构有关,就是与循环结构有关。不是与选择结构有关,就是与循环结构有关。不是与选择结构有关,就是与循环结构有关。不是与选择结构有关,就是与循环结构有关。n n逻辑覆盖测试包括:逻辑覆盖测试包括:逻辑覆盖测试包括:逻辑覆盖测试包括:语句覆盖、分支(判定)覆盖、语句覆盖、分支(判定)覆盖、语句覆盖、分支(判定)覆盖、语句覆盖、分
31、支(判定)覆盖、条件覆盖、判定条件覆盖、判定条件覆盖、判定条件覆盖、判定/条件覆盖、条件组合覆盖条件覆盖、条件组合覆盖条件覆盖、条件组合覆盖条件覆盖、条件组合覆盖。n n路径测试法:主要测试程序的执行路径。路径测试法:主要测试程序的执行路径。路径测试法:主要测试程序的执行路径。路径测试法:主要测试程序的执行路径。n n路径测试包括:路径测试包括:路径测试包括:路径测试包括:点覆盖、边覆盖、路径覆盖。点覆盖、边覆盖、路径覆盖。点覆盖、边覆盖、路径覆盖。点覆盖、边覆盖、路径覆盖。4.3.1 白盒测试白盒测试设计测试用例设计测试用例第35页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计
32、测试用例n n主要目的:主要目的:主要目的:主要目的:提高测试覆盖率,是覆盖性较高的测试方法,能提高测试覆盖率,是覆盖性较高的测试方法,能提高测试覆盖率,是覆盖性较高的测试方法,能提高测试覆盖率,是覆盖性较高的测试方法,能保证在测试过程中所有的语句都至少执行过一遍。保证在测试过程中所有的语句都至少执行过一遍。保证在测试过程中所有的语句都至少执行过一遍。保证在测试过程中所有的语句都至少执行过一遍。第36页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例1)1)1)1)语句覆盖(又称命令覆盖)语句覆盖(又称命令覆盖)语句覆盖(又称命令覆盖)语句覆盖(又称命令覆盖)使程序中每个语
33、句至少执行一次使程序中每个语句至少执行一次使程序中每个语句至少执行一次使程序中每个语句至少执行一次第37页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例第38页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例只需设计一个测试用例只需设计一个测试用例只需设计一个测试用例只需设计一个测试用例:输入数据:输入数据:输入数据:输入数据:A=2A=2,B=0B=0,X=4X=4即达到了语句覆盖即达到了语句覆盖即达到了语句覆盖即达到了语句覆盖;语句覆盖是语句覆盖是语句覆盖是语句覆盖是最弱最弱最弱最弱的逻辑覆盖的逻辑覆盖的逻辑覆盖的逻辑覆盖第39页,本讲稿共74页4
34、.3.1 白盒测试白盒测试设计测试用例设计测试用例A=2A=2,B=0B=0,X=4X=4第40页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例(2)(2)(2)(2)判定覆盖判定覆盖判定覆盖判定覆盖(分支覆盖分支覆盖分支覆盖分支覆盖)使每个判定的真假分支都至少执行一次使每个判定的真假分支都至少执行一次使每个判定的真假分支都至少执行一次使每个判定的真假分支都至少执行一次第41页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例第42页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例例例例例:可设计两组测试用例可设计两组测试用例可设计两
35、组测试用例可设计两组测试用例:n nA=3A=3,B=0 B=0,X=3 X=3 可覆盖可覆盖可覆盖可覆盖sacbdsacbd n nA=2A=2,B=1 B=1,X=1 X=1 可覆盖可覆盖可覆盖可覆盖sabedsabed 两组测试用例可覆盖所有判定的真假分支两组测试用例可覆盖所有判定的真假分支两组测试用例可覆盖所有判定的真假分支两组测试用例可覆盖所有判定的真假分支判定覆盖仍是判定覆盖仍是判定覆盖仍是判定覆盖仍是弱弱弱弱的逻辑覆盖的逻辑覆盖的逻辑覆盖的逻辑覆盖第43页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例A=3A=3,B=0 B=0,X=3 X=3 可覆盖可覆盖
36、可覆盖可覆盖sacbdsacbd A=2A=2,B=1 B=1,X=1 X=1 可覆盖可覆盖可覆盖可覆盖sabedsabed第44页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例(3)(3)(3)(3)条件覆盖条件覆盖条件覆盖条件覆盖 使判定表达式的每个条件都取到各种可能的结果使判定表达式的每个条件都取到各种可能的结果使判定表达式的每个条件都取到各种可能的结果使判定表达式的每个条件都取到各种可能的结果第45页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例第46页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例n n例中有两个判定表
37、达式,每个表达式有两个条件,为例中有两个判定表达式,每个表达式有两个条件,为了做到条件覆盖,应该选取测试数据使得了做到条件覆盖,应该选取测试数据使得在在a a点有下述结果出现:点有下述结果出现:A1A1,A=1A1X1,X=1X1,B=0A1,B=0 A1,B!=0 A1,B!=0 A=1,B=0 A=1,B=0 A=1,B0 A1 A=2,X1 A=2,X=1 A=2,X1 A!=2,X1 A!=2,X=1 A!=2,X=1第57页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例n n下面的四组测试数据可使上面列出的八种条件组下面的四组测试数据可使上面列出的八种条件组合每
38、种至少出现一次:合每种至少出现一次:I.A=2I.A=2,B=0B=0,X=4 X=4 针对针对1 1,5 5两种组合,覆盖两种组合,覆盖sacbedsacbedII.A=2II.A=2,B=1B=1,X=1 X=1 针对针对2 2,6 6两种组合,覆盖两种组合,覆盖sabedsabedIII.A=1III.A=1,B=0B=0,X=2 X=2 针对针对3 3,7 7两种组合,覆盖两种组合,覆盖sabedsabedIV.A=1IV.A=1,B=1B=1,X=1 X=1 针对针对4 4,8 8两种组合,覆盖两种组合,覆盖sabdsabd第58页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试
39、用例设计测试用例I.A=2I.A=2,B=0B=0,X=4 X=4 针对针对针对针对1 1,5 5两种组合,覆盖两种组合,覆盖两种组合,覆盖两种组合,覆盖sacbedsacbed第59页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例II.A=2II.A=2,B=1B=1,X=1 X=1 针针针针对对对对2 2,6 6两种组合,覆盖两种组合,覆盖两种组合,覆盖两种组合,覆盖sabedsabed第60页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例III.A=1III.A=1,B=0B=0,X=2 X=2 针针针针对对对对3 3,7 7两种组合,覆盖两种
40、组合,覆盖两种组合,覆盖两种组合,覆盖sabedsabed第61页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例IV.A=1IV.A=1,B=1B=1,X=1 X=1 针针针针对对对对4 4,8 8两种组合,覆两种组合,覆两种组合,覆两种组合,覆盖盖盖盖sabdsabd第62页,本讲稿共74页路径测试路径测试路径测试路径测试n n路径测试路径测试路径测试路径测试着眼于程序执行路径着眼于程序执行路径着眼于程序执行路径着眼于程序执行路径的测试。首先需要的测试。首先需要的测试。首先需要的测试。首先需要将流程图将流程图将流程图将流程图程序图。程序图实际上是一种简化程序图。程序图实
41、际上是一种简化程序图。程序图实际上是一种简化程序图。程序图实际上是一种简化了的流程图。在路径测试中,程序图是用来考了的流程图。在路径测试中,程序图是用来考了的流程图。在路径测试中,程序图是用来考了的流程图。在路径测试中,程序图是用来考察测试路径的有用工具。察测试路径的有用工具。察测试路径的有用工具。察测试路径的有用工具。n n 4.3.1 白盒测试白盒测试设计测试用例设计测试用例第63页,本讲稿共74页路径测试路径测试路径测试路径测试n n流程图中各种不同形状的框,在程序图中都被简化流程图中各种不同形状的框,在程序图中都被简化流程图中各种不同形状的框,在程序图中都被简化流程图中各种不同形状的框
42、,在程序图中都被简化为用圆圈表示的一个个结点为用圆圈表示的一个个结点为用圆圈表示的一个个结点为用圆圈表示的一个个结点。由于程序图中保留。由于程序图中保留。由于程序图中保留。由于程序图中保留了控制流的全部轨迹,舍弃了各框的细节,因了控制流的全部轨迹,舍弃了各框的细节,因了控制流的全部轨迹,舍弃了各框的细节,因了控制流的全部轨迹,舍弃了各框的细节,因而画面简洁,路径清晰,用它来验证各种测试而画面简洁,路径清晰,用它来验证各种测试而画面简洁,路径清晰,用它来验证各种测试而画面简洁,路径清晰,用它来验证各种测试数据对程序执行路径的覆盖情况,比流程图更数据对程序执行路径的覆盖情况,比流程图更数据对程序执
43、行路径的覆盖情况,比流程图更数据对程序执行路径的覆盖情况,比流程图更加方便。加方便。加方便。加方便。4.3.1 白盒测试白盒测试设计测试用例设计测试用例第64页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例n n从对程序路径的覆盖程度分析,提出下述一些主要从对程序路径的覆盖程度分析,提出下述一些主要从对程序路径的覆盖程度分析,提出下述一些主要从对程序路径的覆盖程度分析,提出下述一些主要的逻辑覆盖标准:的逻辑覆盖标准:的逻辑覆盖标准:的逻辑覆盖标准:(6 6)点覆盖)点覆盖)点覆盖)点覆盖程序流程图程序流程图程序流程图程序流程图程序图程序图程序图程序图 第65页,本讲稿共7
44、4页n n程序流程图程序流程图程序图程序图l l圆圈圆圈称为控制流图的一个称为控制流图的一个结点结点,表示,表示一个或多一个或多个无分支的语句或源程序语句个无分支的语句或源程序语句l l流图流图只有二种图形符号:图中的每一个圆称为只有二种图形符号:图中的每一个圆称为流图的结点,代表一条或多条语句,流图中的流图的结点,代表一条或多条语句,流图中的箭头箭头称为边或连接,代表称为边或连接,代表控制流控制流第66页,本讲稿共74页n n程序流程图程序图第67页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例第68页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例
45、n n在正常情况下在正常情况下程序图是连通的有向图程序图是连通的有向图,图中每,图中每个节点相当于程序流程图的一个框(一个或多个节点相当于程序流程图的一个框(一个或多个语句)。满足点覆盖标准要求选取足够多的个语句)。满足点覆盖标准要求选取足够多的测试数据,使得程序执行路径至少经过程序图测试数据,使得程序执行路径至少经过程序图中每个节点一次。显然,点覆盖标准和语句覆中每个节点一次。显然,点覆盖标准和语句覆盖标准是相同的。盖标准是相同的。第69页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例(7 7)边覆盖)边覆盖要求选取足够多的测试数据,使得程序执行路径至要求选取足够多的测
46、试数据,使得程序执行路径至少经过程序图中每条边一次。少经过程序图中每条边一次。通常边覆盖和判定覆盖是一致的。通常边覆盖和判定覆盖是一致的。第70页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例(8 8)路径覆盖)路径覆盖选取足够多测试数据,使程序的每条可能路径都选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。环至少经过一次)。在例子中,共有四条可能的执行路径,在例子中,共有四条可能的执行路径,123123;12126767;14531453;1456714567。因此,为了做到
47、路径。因此,为了做到路径覆盖必须设计四组测试数据。覆盖必须设计四组测试数据。第71页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例1-2-31-2-3;1-2-6-71-2-6-7;1-4-1-4-5-35-3;1-4-5-6-71-4-5-6-7。第72页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例第73页,本讲稿共74页4.3.1 白盒测试白盒测试设计测试用例设计测试用例n n下面的四组测试数据可以满足路径覆盖的要求:下面的四组测试数据可以满足路径覆盖的要求:I.A=1I.A=1,B=1B=1,X=1X=1(执行路径(执行路径123)123)II.A=1II.A=1,B=1B=1,X=2 X=2(执行路径(执行路径1267)1267)III.A=3III.A=3,B=0B=0,X=1X=1(执行路径(执行路径1453)1453)IV.A=2IV.A=2,B=0B=0,X=4 X=4(执行路径(执行路径14567)14567)第74页,本讲稿共74页