《《测试用例设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《测试用例设计》PPT课件.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、测试用例设计 软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。基于不同的立场,存在着两种完全不同的测试目的。基于不同的立场,存在着两种完全不同的测试目的。基于不同的立场,存在着两种完全不同的测试目的。从从从从用用用用户户户户的的的的角角角角度度度度出出出出发发发发,普普普普遍遍遍遍希希希希望望望望通通通通过过过过软软软软件件件件测测测测试试试试暴暴暴暴露露露露软软软软件件件件中中中中隐隐隐隐藏的错误和缺陷,以考虑是否可接受该产品。藏的错误和缺陷,以考虑是否可接受该产品。藏的错误和缺陷,以考虑是否可接受该产品。藏的错误和缺陷,以考虑是否可接受该产品。从从从从软软软软件件件件开开开开发
2、发发发者者者者的的的的角角角角度度度度出出出出发发发发,则则则则希希希希望望望望测测测测试试试试成成成成为为为为表表表表明明明明软软软软件件件件产产产产品品品品中中中中不不不不存存存存在在在在错错错错误误误误的的的的过过过过程程程程,验验验验证证证证该该该该软软软软件件件件已已已已正正正正确确确确地地地地实实实实现现现现了了了了用用用用户户户户的的的的要求,确立人们对软件质量的信心。要求,确立人们对软件质量的信心。要求,确立人们对软件质量的信心。要求,确立人们对软件质量的信心。软件测试的目的测试是程序的执行过程,目的在于发现错误;测试是程序的执行过程,目的在于发现错误;测试是程序的执行过程,目
3、的在于发现错误;测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个好的测试用例在于能发现至今未发现的错误;一个好的测试用例在于能发现至今未发现的错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试在于发现了至今未发现的错误。一个成功的测试在于发现了至今未发现的错误。一个成功的测试在于发现了至今未发现的错误。一个成功的测试在于发现了至今未发现的错误。软件测试的目的换言之,测试的目的是换言之,测试的目的是换言之,测试的目的是换言之,测试的目的是vv想想想想以以以以最最最最少少少少的的的的时时时时间间间间和和和和人人人人力力力力,系系系系统统统统地地
4、地地找找找找出出出出软软软软件件件件中中中中潜潜潜潜在在在在的的的的各各各各种种种种错错错错误误误误和和和和缺缺缺缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。vv测测测测试试试试的的的的附附附附带带带带收收收收获获获获是是是是,它它它它能能能能够够够够证证证证明明明明软软软软件件件件的的的的功功功功能能能能和和和和性性性性能能能能与与与与需需需需求求求求说说说说明明明明相相相相符合。符合。符合。符合。vv实
5、施测试收集到的测试结果数据为可靠性分析提供了依据。实施测试收集到的测试结果数据为可靠性分析提供了依据。实施测试收集到的测试结果数据为可靠性分析提供了依据。实施测试收集到的测试结果数据为可靠性分析提供了依据。vv测试不能表明软件中不存在错误,它只能说明软件中存在错误。测试不能表明软件中不存在错误,它只能说明软件中存在错误。测试不能表明软件中不存在错误,它只能说明软件中存在错误。测试不能表明软件中不存在错误,它只能说明软件中存在错误。软件测试的原则应应应应当当当当把把把把“尽尽尽尽早早早早地地地地和和和和不不不不断断断断地地地地进进进进行行行行软软软软件件件件测测测测试试试试”作作作作为为为为软软
6、软软件件件件开开开开发发发发者者者者的座右铭。的座右铭。的座右铭。的座右铭。测测测测试试试试用用用用例例例例应应应应由由由由测测测测试试试试输输输输入入入入数数数数据据据据和和和和对对对对应应应应的的的的预预预预期期期期输输输输出出出出结结结结果果果果这这这这两两两两部部部部分组成。分组成。分组成。分组成。程序员应避免检查自己的程序。程序员应避免检查自己的程序。程序员应避免检查自己的程序。程序员应避免检查自己的程序。在在在在设设设设计计计计测测测测试试试试用用用用例例例例时时时时,应应应应当当当当包包包包括括括括合合合合理理理理的的的的输输输输入入入入条条条条件件件件和和和和不不不不合合合合理
7、理理理的的的的输入条件。输入条件。输入条件。输入条件。软件测试的原则充充充充分分分分注注注注意意意意测测测测试试试试中中中中的的的的群群群群集集集集现现现现象象象象。经经经经验验验验表表表表明明明明,测测测测试试试试后后后后程程程程序序序序中中中中残残残残存的错误数目与该程序中已发现的错误数目成正比。存的错误数目与该程序中已发现的错误数目成正比。存的错误数目与该程序中已发现的错误数目成正比。存的错误数目与该程序中已发现的错误数目成正比。严格执行测试计划,排除测试的随意性。严格执行测试计划,排除测试的随意性。严格执行测试计划,排除测试的随意性。严格执行测试计划,排除测试的随意性。应当对每一个测试
8、结果做全面检查。应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。妥妥妥妥善善善善保保保保存存存存测测测测试试试试计计计计划划划划,测测测测试试试试用用用用例例例例,出出出出错错错错统统统统计计计计和和和和最最最最终终终终分分分分析析析析报报报报告告告告,为维护提供方便。为维护提供方便。为维护提供方便。为维护提供方便。软件测试的对象软软软软件件件件测测测测试试试试并并并并不不不不等等等等于于于于程程程程序序序序测测测测试试试试。软软软软件件件件测测测测试试试试应应应应贯贯贯贯穿穿穿穿于于于于软软软软件件件件定定定定义义义义与开发的整个期间。与开发的
9、整个期间。与开发的整个期间。与开发的整个期间。需需需需求求求求分分分分析析析析、概概概概要要要要设设设设计计计计、详详详详细细细细设设设设计计计计以以以以及及及及程程程程序序序序编编编编码码码码等等等等各各各各阶阶阶阶段段段段所所所所得得得得到到到到的的的的文文文文档档档档,包包包包括括括括需需需需求求求求规规规规格格格格说说说说明明明明、概概概概要要要要设设设设计计计计规规规规格格格格说说说说明明明明、详详详详细设计规格说明以及源程序,都应成为软件测试的对象。细设计规格说明以及源程序,都应成为软件测试的对象。细设计规格说明以及源程序,都应成为软件测试的对象。细设计规格说明以及源程序,都应成为
10、软件测试的对象。测试方法两种常用的测试方法两种常用的测试方法两种常用的测试方法两种常用的测试方法vv黑盒测试黑盒测试黑盒测试黑盒测试vv白盒测试白盒测试白盒测试白盒测试黑盒测试这这这这种种种种方方方方法法法法是是是是把把把把测测测测试试试试对对对对象象象象看看看看做做做做一一一一个个个个黑黑黑黑盒盒盒盒子子子子,测测测测试试试试人人人人员员员员完完完完全全全全不不不不考考考考虑虑虑虑程程程程序序序序内内内内部部部部的的的的逻逻逻逻辑辑辑辑结结结结构构构构和和和和内内内内部部部部特特特特性性性性,只只只只依依依依据据据据程程程程序序序序的的的的需需需需求求求求规格说明书,检查程序的功能是否符合它
11、的功能说明。规格说明书,检查程序的功能是否符合它的功能说明。规格说明书,检查程序的功能是否符合它的功能说明。规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。黑盒测试又叫做功能测试或数据驱动测试。黑盒测试又叫做功能测试或数据驱动测试。黑盒测试又叫做功能测试或数据驱动测试。黑盒测试黑黑黑黑盒盒盒盒测测测测试试试试方方方方法法法法是是是是在在在在程程程程序序序序接接接接口口口口上上上上进进进进行行行行测测测测试试试试,主主主主要要要要是是是是为为为为了了了了发发发发现现现现以下错误以下错误以下错误以下错误:vv是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能
12、是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能?vv在在在在接接接接口口口口上上上上,输输输输入入入入能能能能否否否否正正正正确确确确地地地地接接接接受受受受?能能能能否否否否输输输输出出出出正正正正确确确确的的的的结结结结果果果果?vv是是是是否否否否有有有有数数数数据据据据结结结结构构构构错错错错误误误误或或或或外外外外部部部部信信信信息息息息(例例例例如如如如数数数数据据据据文文文文件件件件)访访访访问问问问错误错误错误错误?vv性能上是否能够满足要求性能上是否能够满足要求性能上是否能够满足要求性能上是否能够满足要求?vv是否有初始化或终止性错误是否有初始化或终止性错误是否有初始化
13、或终止性错误是否有初始化或终止性错误?黑盒测试用用用用黑黑黑黑盒盒盒盒测测测测试试试试发发发发现现现现程程程程序序序序中中中中的的的的错错错错误误误误,必必必必须须须须在在在在所所所所有有有有可可可可能能能能的的的的输输输输入入入入条条条条件件件件和和和和输输输输出出出出条条条条件件件件中中中中确确确确定定定定测测测测试试试试数数数数据据据据,来来来来检检检检查查查查程程程程序序序序是是是是否否否否都都都都能能能能产产产产生生生生正确的输出。正确的输出。正确的输出。正确的输出。但这是不可能的。但这是不可能的。但这是不可能的。但这是不可能的。黑盒测试假假假假设设设设一一一一个个个个程程程程序序序
14、序P P P P有有有有输输输输入入入入量量量量X X X X和和和和Y Y Y Y及及及及输输输输出出出出量量量量Z Z Z Z。在在在在字字字字长长长长为为为为32323232位位位位的的的的计计计计算算算算机机机机上上上上运行。若运行。若运行。若运行。若X X X X、Y Y Y Y取整数,按黑盒方法进行穷举测试:取整数,按黑盒方法进行穷举测试:取整数,按黑盒方法进行穷举测试:取整数,按黑盒方法进行穷举测试:可能采用的可能采用的可能采用的可能采用的 测试数据组:测试数据组:测试数据组:测试数据组:2 2 2 2323232322222323232322 2 2 264646464 如如如
15、如果果果果测测测测试试试试一一一一组组组组数数数数据据据据需需需需要要要要1 1 1 1毫毫毫毫秒秒秒秒,一一一一年年年年工工工工作作作作36524365243652436524小小小小时时时时,完完完完成成成成所所所所有有有有测测测测试需试需试需试需5 5 5 5亿年。亿年。亿年。亿年。白盒测试此此此此方方方方法法法法把把把把测测测测试试试试对对对对象象象象看看看看做做做做一一一一个个个个透透透透明明明明的的的的盒盒盒盒子子子子,它它它它允允允允许许许许测测测测试试试试人人人人员员员员利利利利用用用用程程程程序序序序内内内内部部部部的的的的逻逻逻逻辑辑辑辑结结结结构构构构及及及及有有有有关关
16、关关信信信信息息息息,设设设设计计计计或或或或选选选选择择择择测测测测试试试试用用用用例,对程序所有逻辑路径进行测试。例,对程序所有逻辑路径进行测试。例,对程序所有逻辑路径进行测试。例,对程序所有逻辑路径进行测试。通通通通过过过过在在在在不不不不同同同同点点点点检检检检查查查查程程程程序序序序的的的的状状状状态态态态,确确确确定定定定实实实实际际际际的的的的状状状状态态态态是是是是否否否否与与与与预预预预期期期期的的的的状状状状态态态态一一一一致致致致。因因因因此此此此白白白白盒盒盒盒测测测测试试试试又又又又称称称称为为为为结结结结构构构构测测测测试试试试或或或或逻逻逻逻辑辑辑辑驱驱驱驱动动动
17、动测试。测试。测试。测试。白盒测试软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:vv对程序模块的所有独立的执行路径至少测试一次;对程序模块的所有独立的执行路径至少测试一次;对程序模块的所有独立的执行路径至少测试一次;对程序模块的所有独立的执行路径至少测试一次;vv对对对对所所所所有有有有的的的的逻逻逻逻辑辑辑辑判判判判定定定定,取取取取“真真真真”与与与与取取取取“假假假假”的的的的两两两两种种种种情情情情况况
18、况况都都都都至至至至少少少少测测测测试试试试一次;一次;一次;一次;vv在循环的边界和运行界限内执行循环体;在循环的边界和运行界限内执行循环体;在循环的边界和运行界限内执行循环体;在循环的边界和运行界限内执行循环体;vv测试内部数据结构的有效性。测试内部数据结构的有效性。测试内部数据结构的有效性。测试内部数据结构的有效性。对对对对一一一一个个个个具具具具有有有有多多多多重重重重选选选选择择择择和和和和循循循循环环环环嵌嵌嵌嵌套套套套的的的的程程程程序序序序,不不不不同同同同的的的的路路路路径径径径数数数数目目目目可可可可能能能能是是是是天天天天文数字。文数字。文数字。文数字。测试用例是软件测试
19、的核心 如何以最少的人力、资源投入,在最短的时间内完成测试,如何以最少的人力、资源投入,在最短的时间内完成测试,如何以最少的人力、资源投入,在最短的时间内完成测试,如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公发现软件系统的缺陷,保证软件的优良品质,则是软件公发现软件系统的缺陷,保证软件的优良品质,则是软件公发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。司探索和追求的目标。司探索和追求的目标。司探索和追求的目标。测试用例是测试工作的指导,是软件测试的必须遵守的准测试用例是测试工作的指导,是软件测试的必须遵守的准测试
20、用例是测试工作的指导,是软件测试的必须遵守的准测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。则。更是软件测试质量稳定的根本保障。则。更是软件测试质量稳定的根本保障。则。更是软件测试质量稳定的根本保障。什么是测试用例n n所谓的测试用例就是将软件测试的行为活动,做一个科学化的所谓的测试用例就是将软件测试的行为活动,做一个科学化的所谓的测试用例就是将软件测试的行为活动,做一个科学化的所谓的测试用例就是将软件测试的行为活动,做一个科学化的组织归纳。组织归纳。组织归纳。组织归纳。n n软件测试是有组织性、步骤性和计划性的,而设计软件测试用软件测试是有组织性、步骤
21、性和计划性的,而设计软件测试用软件测试是有组织性、步骤性和计划性的,而设计软件测试用软件测试是有组织性、步骤性和计划性的,而设计软件测试用例的目的,就是为了能将软件测试的行为转换为可管理的模式。例的目的,就是为了能将软件测试的行为转换为可管理的模式。例的目的,就是为了能将软件测试的行为转换为可管理的模式。例的目的,就是为了能将软件测试的行为转换为可管理的模式。n n软件测试是软件质量管理中最实际的行动,同时也是耗时最多软件测试是软件质量管理中最实际的行动,同时也是耗时最多软件测试是软件质量管理中最实际的行动,同时也是耗时最多软件测试是软件质量管理中最实际的行动,同时也是耗时最多的一项。的一项。
22、的一项。的一项。n n基于时间因素的考虑,软件测试行为必须能够加以量化,才能基于时间因素的考虑,软件测试行为必须能够加以量化,才能基于时间因素的考虑,软件测试行为必须能够加以量化,才能基于时间因素的考虑,软件测试行为必须能够加以量化,才能进一步让管理阶层掌握所需要的测试过程,而测试用例就是将进一步让管理阶层掌握所需要的测试过程,而测试用例就是将进一步让管理阶层掌握所需要的测试过程,而测试用例就是将进一步让管理阶层掌握所需要的测试过程,而测试用例就是将测试行为具体量化的方法之一。测试行为具体量化的方法之一。测试行为具体量化的方法之一。测试行为具体量化的方法之一。什么是测试用例n n因为我们不可能
23、进行穷举测试,为了节省时间和资源、提因为我们不可能进行穷举测试,为了节省时间和资源、提因为我们不可能进行穷举测试,为了节省时间和资源、提因为我们不可能进行穷举测试,为了节省时间和资源、提高测试效率,必须要从数量极大的可用测试数据中精心挑高测试效率,必须要从数量极大的可用测试数据中精心挑高测试效率,必须要从数量极大的可用测试数据中精心挑高测试效率,必须要从数量极大的可用测试数据中精心挑选出具有代表性或特殊性的测试数据来进行测试。选出具有代表性或特殊性的测试数据来进行测试。选出具有代表性或特殊性的测试数据来进行测试。选出具有代表性或特殊性的测试数据来进行测试。n n目前研究室测试过程中,所有的测试
24、用例都放在测试大目前研究室测试过程中,所有的测试用例都放在测试大目前研究室测试过程中,所有的测试用例都放在测试大目前研究室测试过程中,所有的测试用例都放在测试大纲中,使用测试大纲的好处:纲中,使用测试大纲的好处:纲中,使用测试大纲的好处:纲中,使用测试大纲的好处:保证测试功能不被遗漏;保证测试功能不被遗漏;保证测试功能不被遗漏;保证测试功能不被遗漏;使得功能不被重复测试,合理安排测试人员;使得功能不被重复测试,合理安排测试人员;使得功能不被重复测试,合理安排测试人员;使得功能不被重复测试,合理安排测试人员;使得软件测试不依赖于个人;使得软件测试不依赖于个人;使得软件测试不依赖于个人;使得软件测
25、试不依赖于个人;测试用例内容n n实施一次测试而向被测系统提供的输入数据、操作或各种环境实施一次测试而向被测系统提供的输入数据、操作或各种环境实施一次测试而向被测系统提供的输入数据、操作或各种环境实施一次测试而向被测系统提供的输入数据、操作或各种环境设置。设置。设置。设置。n n对交互式系统,软件交互执行过程的控制也是一种测试用例。对交互式系统,软件交互执行过程的控制也是一种测试用例。对交互式系统,软件交互执行过程的控制也是一种测试用例。对交互式系统,软件交互执行过程的控制也是一种测试用例。n n测试用例的设计与生成是依据测试大纲对其中每个测试项目的测试用例的设计与生成是依据测试大纲对其中每个
26、测试项目的测试用例的设计与生成是依据测试大纲对其中每个测试项目的测试用例的设计与生成是依据测试大纲对其中每个测试项目的进一步实例化。比如:进一步实例化。比如:进一步实例化。比如:进一步实例化。比如:对于一个输入项的测试,应当设计一组测试数据,包括合法的、对于一个输入项的测试,应当设计一组测试数据,包括合法的、对于一个输入项的测试,应当设计一组测试数据,包括合法的、对于一个输入项的测试,应当设计一组测试数据,包括合法的、边界的和非法的数据等。边界的和非法的数据等。边界的和非法的数据等。边界的和非法的数据等。测试用例设计生成的基本准则n n测试用例的代表性:能够代表并覆盖各种合理的和不合理、测试用
27、例的代表性:能够代表并覆盖各种合理的和不合理、测试用例的代表性:能够代表并覆盖各种合理的和不合理、测试用例的代表性:能够代表并覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、合法的和非法的、边界的和越界的、以及极限的输入数据、合法的和非法的、边界的和越界的、以及极限的输入数据、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等操作和环境设置等操作和环境设置等操作和环境设置等;n n测试结果的可判定性:即测试执行结果的正确性是可判定测试结果的可判定性:即测试执行结果的正确性是可判定测试结果的可判定性:即测试执行结果的正确性是可判定测试结果的可判定性:
28、即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果;的,每一个测试用例都应有相应的期望结果;的,每一个测试用例都应有相应的期望结果;的,每一个测试用例都应有相应的期望结果;n n测试结果的可再现性:即对同样的测试用例,系统的执行测试结果的可再现性:即对同样的测试用例,系统的执行测试结果的可再现性:即对同样的测试用例,系统的执行测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。结果应当是相同的。结果应当是相同的。结果应当是相同的。测试用例的特征n n最有可能抓住错误的;最有可能抓住错误的;最有可能抓住错误的;最有可能抓住错误的;n n不是重复的、多余的;不是重
29、复的、多余的;不是重复的、多余的;不是重复的、多余的;n n一组相似测试用例中最有效的;一组相似测试用例中最有效的;一组相似测试用例中最有效的;一组相似测试用例中最有效的;n n不要太简单,也不要太复杂。不要太简单,也不要太复杂。不要太简单,也不要太复杂。不要太简单,也不要太复杂。测试用例的组织和跟踪在执行测试过程中,会遇到如下问题:在执行测试过程中,会遇到如下问题:在执行测试过程中,会遇到如下问题:在执行测试过程中,会遇到如下问题:n n计划执行哪些测试用例?执行需要多少时间?一轮测试需要多少测试人员计划执行哪些测试用例?执行需要多少时间?一轮测试需要多少测试人员计划执行哪些测试用例?执行需
30、要多少时间?一轮测试需要多少测试人员计划执行哪些测试用例?执行需要多少时间?一轮测试需要多少测试人员?n n能否挑出测试套装(相关测试用例子集)来测试某些特性或软件部分?能否挑出测试套装(相关测试用例子集)来测试某些特性或软件部分?能否挑出测试套装(相关测试用例子集)来测试某些特性或软件部分?能否挑出测试套装(相关测试用例子集)来测试某些特性或软件部分?n n在执行测试用例时,能否记录哪些通过?哪些失败;在执行测试用例时,能否记录哪些通过?哪些失败;在执行测试用例时,能否记录哪些通过?哪些失败;在执行测试用例时,能否记录哪些通过?哪些失败;n n当前测试是否按计划进行?当前测试是否按计划进行?
31、当前测试是否按计划进行?当前测试是否按计划进行?n n上次执行测试用例时通过的百分比是多少?上次执行测试用例时通过的百分比是多少?上次执行测试用例时通过的百分比是多少?上次执行测试用例时通过的百分比是多少?测试用例跟踪管理方式:测试用例追踪表测试用例跟踪管理方式:测试用例追踪表测试用例跟踪管理方式:测试用例追踪表测试用例跟踪管理方式:测试用例追踪表测试用例的意义使用测试用例的好处主要体现在以下几个方面:使用测试用例的好处主要体现在以下几个方面:使用测试用例的好处主要体现在以下几个方面:使用测试用例的好处主要体现在以下几个方面:n n在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试在
32、开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。效率。效率。效率。n n测试用例的使用令软件测试的实施重点突出、目的明确。测试用例的使用令软件测试的实施重点突出、目的明确。测试用例的使用令软件测试的实施重点突出、目的明确。测试用例的使用令软件测试的实施重点突出、目的明确。n n在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降在软件
33、版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。低工作强度、缩短项目周期。低工作强度、缩短项目周期。低工作强度、缩短项目周期。n n功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例试用例的通用化和
34、复用化则会使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升。的不断精化其效率也不断攀升。的不断精化其效率也不断攀升。的不断精化其效率也不断攀升。测试用例的意义n n组织性有利于测试的组织;组织性有利于测试的组织;组织性有利于测试的组织;组织性有利于测试的组织;n n功能覆盖确保功能不被遗漏;功能覆盖确保功能不被遗漏;功能覆盖确保功能不被遗漏;功能覆盖确保功能不被遗漏;n n重复性有利于测试的重复;重复性有利于测试的重复;重复性有利于测试的重复;重复性有利于测试的重复;n n跟踪有利于测试的跟踪;跟踪有利于测试的跟踪;跟踪有利于测试的跟踪;跟踪有利于测试的跟踪;n n测试确认在少数高
35、风险的测试中,必须证明确实执行了测试确认在少数高风险的测试中,必须证明确实执行了测试确认在少数高风险的测试中,必须证明确实执行了测试确认在少数高风险的测试中,必须证明确实执行了计划执行的测试;计划执行的测试;计划执行的测试;计划执行的测试;黑盒测试用例的设计方法n n具体的黑盒测试用例设计方法包括等价类划分法、边界值具体的黑盒测试用例设计方法包括等价类划分法、边界值具体的黑盒测试用例设计方法包括等价类划分法、边界值具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、场景法、错误推测法、因果图法、判定表驱动法、分析法、场景法、错误推测法、因果图法、判定表驱动法、分析法、场景法、错误推测法、
36、因果图法、判定表驱动法、分析法、场景法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。正交试验设计法、功能图法等。正交试验设计法、功能图法等。正交试验设计法、功能图法等。n n这些方法是比较实用的,但采用什么方法,在使用时自然这些方法是比较实用的,但采用什么方法,在使用时自然这些方法是比较实用的,但采用什么方法,在使用时自然这些方法是比较实用的,但采用什么方法,在使用时自然要针对开发项目的特点对方法加以适当的选择。要针对开发项目的特点对方法加以适当的选择。要针对开发项目的特点对方法加以适当的选择。要针对开发项目的特点对方法加以适当的选择。等价类划分法n n等价类划分是一种典型
37、的黑盒测试方法,用这一方法设计等价类划分是一种典型的黑盒测试方法,用这一方法设计等价类划分是一种典型的黑盒测试方法,用这一方法设计等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例完全不考虑程序的内部结构,只根据对程序的需测试用例完全不考虑程序的内部结构,只根据对程序的需测试用例完全不考虑程序的内部结构,只根据对程序的需测试用例完全不考虑程序的内部结构,只根据对程序的需求和说明,即需求规格说明书。求和说明,即需求规格说明书。求和说明,即需求规格说明书。求和说明,即需求规格说明书。n n由于穷举测试工作量太大,以致于无法实际完成,促使我由于穷举测试工作量太大,以致于无法实际完成,促使我由
38、于穷举测试工作量太大,以致于无法实际完成,促使我由于穷举测试工作量太大,以致于无法实际完成,促使我们在大量的可能数据中选取其中的一部分作为测试用例。们在大量的可能数据中选取其中的一部分作为测试用例。们在大量的可能数据中选取其中的一部分作为测试用例。们在大量的可能数据中选取其中的一部分作为测试用例。等价类划分法n n等价类划分法是把程序的输入域划分成若干部分,然后从每个部分中等价类划分法是把程序的输入域划分成若干部分,然后从每个部分中等价类划分法是把程序的输入域划分成若干部分,然后从每个部分中等价类划分法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据当作测试用例。选取少数代表
39、性数据当作测试用例。选取少数代表性数据当作测试用例。选取少数代表性数据当作测试用例。n n每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如
40、果某一类中的一个例子没有发现错子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。误,则这一类中的其他例子也不会查出错误。误,则这一类中的其他例子也不会查出错误。误,则这一类中的其他例子也不会查出错误。n n使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上使用这一方法设计测试用例,首先必须在分析需求
41、规格说明的基础上划分等价类,列出等价类表。划分等价类,列出等价类表。划分等价类,列出等价类表。划分等价类,列出等价类表。划分等价类和列出等价类表 n n可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的数据作为测试的
42、输入条件,就可以用少量代表性的测试数据取得较好的测试结果。测试结果。测试结果。测试结果。n n等价类划分有两种不同的情况:等价类划分有两种不同的情况:等价类划分有两种不同的情况:等价类划分有两种不同的情况:vv有效等价类:是指对于程序的规格说明来说是合理的、有意义的输有效等价类:是指对于程序的规格说明来说是合理的、有意义的输有效等价类:是指对于程序的规格说明来说是合理的、有意义的输有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说入数据构成的集合。利用有效等价类可检验程序是否实现了规格说入数据构成的集合。利用有效等价类可检验程序
43、是否实现了规格说入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。明中所规定的功能和性能。明中所规定的功能和性能。明中所规定的功能和性能。vv无效等价类:与有效等价类的定义恰巧相反。无效等价类:与有效等价类的定义恰巧相反。无效等价类:与有效等价类的定义恰巧相反。无效等价类:与有效等价类的定义恰巧相反。n n设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也
44、要能经受意外的考验。这样的测试才能确保软件具有更高理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。的可靠性。的可靠性。的可靠性。确定等价类的原则n n在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。两个无
45、效等价类。两个无效等价类。两个无效等价类。n n在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了“必须如何必须如何必须如何必须如何”的条件的情况下,可以的条件的情况下,可以的条件的情况下,可以的条件的情况下,可以确立一个有效等价类和一个无效等价类。确立一个有效等价类和一个无效等价类。确立一个有效等价类和一个无效等价类。确立一个有效等价类和一个无效等价类。n n在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等
46、价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。n n在规定了输入数据的一组值在规定了输入数据的一组值在规定了输入数据的一组值在规定了输入数据的一组值(假定假定假定假定n n n n个个个个),并且程序要对每一个输入值分别处理的,并且程序要对每一个输入值分别处理的,并且程序要对每一个输入值分别处理的,并且程序要对每一个输入值分别处理的情况下,可确立情况下,可确立情况下,可确立情况下,可确立n n n n个有效等价类和一个无效等价类。个有效等价类和一个无效等价类。个有效等价类和一个无效等价类。个有效
47、等价类和一个无效等价类。n n在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则符合规则符合规则符合规则)和若干个无效等价类和若干个无效等价类和若干个无效等价类和若干个无效等价类(从不同角度违反规则从不同角度违反规则从不同角度违反规则从不同角度违反规则)。n n在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将
48、该在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。等价类进一步地划分为更小的等价类。等价类进一步地划分为更小的等价类。等价类进一步地划分为更小的等价类。建立等价类表 n n在确立了等价类之后,建立等价类表,列出所有划分出的在确立了等价类之后,建立等价类表,列出所有划分出的在确立了等价类之后,建立等价类表,列出所有划分出的在确立了等价类之后,建立等价类表,列出所有划分出的等价类:等价类:等价类:等价类:输入条件输入条件输入条件输入条件有效等价类有效等价类有效等价类有效等价
49、类无效等价类无效等价类无效等价类无效等价类确定测试用例 根据已列出的等价类表,按以下步骤确定测试用例:根据已列出的等价类表,按以下步骤确定测试用例:根据已列出的等价类表,按以下步骤确定测试用例:根据已列出的等价类表,按以下步骤确定测试用例:n n为每个等价类规定一个唯一的编号;为每个等价类规定一个唯一的编号;为每个等价类规定一个唯一的编号;为每个等价类规定一个唯一的编号;n n设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一
50、步,最后使得所有有效等价类均被有效等价类。重复这一步,最后使得所有有效等价类均被有效等价类。重复这一步,最后使得所有有效等价类均被有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖;测试用例所覆盖;测试用例所覆盖;测试用例所覆盖;n n设计一个新的测试用例,使其只覆盖一个无效等价类。重设计一个新的测试用例,使其只覆盖一个无效等价类。重设计一个新的测试用例,使其只覆盖一个无效等价类。重设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。复这一步使所有无效等价类均被覆盖。复这一步使所有无效等价类均被覆盖。复这一步使所有无效等价类均被覆盖。举例n n根据