1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,测试项目管理与测试用例设计,软件测试系列课程,1,测试项目管理,软件测试的项目管理是指为了使软件测试项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。它关注的是子系统中人员、过程、产品三要素的互动与变化,以及测试管理子系统与开发管理子系统的相互关联、相互作用。,2,测试管理过程,配置管理过程,3,测试管理过程,(,The Test Management Process,),需求定义(,Specify Requirements,),:,测试计划(,Pl
2、an Tests,),:,测试执行(,Execute Tests,),:,缺陷跟踪(,Track Defects,),:,风险分析(,risk analyze,),4,需求定义,定义测试范围(,Define Testing Scope,),:,创建需求(,Create Requirements,),:,描述需求(,Detail Requirements,),:,分析需求(,Analyze Requirements,),:,5,测试计划,定义测试策略(,Define Testing Strategy,),:,定义测试单元(,Define Test Subject,),:,定义测试(,Define
3、 Tests,),:,创建需求覆盖(,Create Requirements Coverage,),:,设计测试用例(,Design Test Case,),:,分析测试计划(,Analyze Test Plan,),:,6,测试执行,创建测试集(,Create Test Sets,),确定进度表(,Schedule Runs,),:,运行测试(,Run Tests,),:,分析测试结果(,Analyze Test Results,),:,7,缺陷跟踪(,Tracking Defects,),报告程序中产生的缺陷并跟踪缺陷修复的全过程,添加缺陷(,Add Defects,),修改打开的缺陷(,
4、Repair Open Defects,),:,回归测试(,regression testing,),分析缺陷数据(,Analyze Defect Data,),:,8,风险分析,评估风险发生的可能性及影响度,,9,配置管理过程,什么是配置管理?,贯穿 于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则,.,软件配置管理的主要任务是什么?,1.,实施变更管理,2.,实施版本管理和发行管理,10,测试用例的设计,11,测试技术分类,12,黑盒测试,这种方法是把,测试对象,看做,一个黑盒子,,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符
5、合它的功能说明。,13,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误,:,是否有不正确或遗漏了的功能,?,在接口上,,输入能否正确地接受,?,能否输出正确的结果,?,是否有数据结构错误或外部信息,(,例如数据文件,),访问错误,?,性能上是否能够满足要求,?,是否有初始化错误,?,14,用黑盒测试发现程序中的错误,是不是要把所有的输入条件可能的情况都进行一遍测试呢?,这是,不可能,的,。,15,假设一个,程序,P,有,输入量,X,和,Y,及,输出,量,Z,。,在字长为,32,位的计算机上运行。若,X,、,Y,取整数,按黑盒方法进行穷举测试:,可能采用的,测试数据组:,2,32,2
6、32,2,64,如果测试一组数据需要,1,毫秒,一年工作,365,24,小时,完成所有测试需,5,亿年。,16,黑盒测试,-,设计测试用例的几个主要方法,等价类划分,边界值分析,错误推测法,因果图,17,等价类划分,等价类划分是一种典型的黑盒测试方法,使用这一方法时,,完全不考虑程序的内部结构,,,只依据程序的规格说明来设计测试用例,。,等价类划分方法,把所有可能的输入数据,,即程序的输入域,划分成若干部分,,然后,从每一部分中选取少数有代表性的数据做为测试用例,。,18,使用这一方法设计测试用例要经历,划分等价类,和,选取测试用例,两步。,划分等价类,等价类是指某个输入域的子集合。在该子集
7、合中,,各个输入数据对于揭露程序中的错误都是等效的,。测试某等价类的代表值就等价于对这一类其它值的测试。,19,等价类的划分有两种不同的情况:,有效等价类,:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。,无效等价类,:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。,在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。,20,划分等价类的原则。,(1),如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。,21,例如,在程序的规格说明中,对输入条件有一句话:,“,数值可以从,1,到,999”,则有效等价类是,“,1,
8、数值,999,”,两个无效等价类是“,数值,1,”,或“,数值,999,”,。,在数轴上表示成,:,22,(2),如果输入条件规定了输入值的集合,或者是规定了“,必须如何,”的条件,这时可确立一个有效等价类和一个无效等价类。,例如,在,Pascal,语言中对变量标识符规定为“,以字母打头的,串,”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类,。,23,(3),如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。,(4),如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。,这时可为 每一个输入值确立一个有效等价类,此外针对这组
9、值确立一个无效等价类,它是所有不允许的输入值的集合。,24,例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定,4,个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。,(5),如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则),。,25,再从划分出的等价类中按以下原则选择测试用例:,(,1),为每一个等价类规定一个唯一编号,;,(2),设计一个新的测试用例,使其,尽可能多地覆盖尚未被覆盖的有效等价类,,重复这一步,直到所有的有效等价类都被覆盖为
10、止;,(3),设计一个新的测试用例,使其,仅覆盖一个尚未被覆盖的无效等价类,,重复这一步,直到所有的无效等价类都被覆盖为止,。,26,用等价类划分法设计测试用例的实例在某一,PASCAL,语言版本中规定:“,标识符是由字母开头,,,后跟字母或数字的任意组合构成,。,有效字符数为,8,个,。”,并且规定:“,标识符必须先说明,,,再使用,。”“,在同一说明语句中,,,标识符至少必须有一个,。”,27,用等价类划分方法,建立输入等价类表,:,28,下面选取了,9,个测试用例,它们覆盖了所有的等价类。,VAR,xy1,:,REAL,;,BEGIN,xy1,:=3.414,;,(1),(4),(,7,
11、8,),(11),(13),VAR,x,,,Ta234567,:,REAL,;,BEGIN,x,:=3.414,;,Ta234567:=2.732,;,(2),(4),(7),(8),(11),(13),VAR,:,REAL,;,(3),VAR,x,,:,REAL;,(5),29,VAR T12345678,:,REAL,;,(6),VAR T$,:,CHAR,;,(9),VAR GOTO,:,INTEGER,;,(10),VAR 2T,:,REAL,;,(12),VAR PAR,:,REAL,;,(14),BEGIN .PAP:=SIN(3.14*0.8)/6,;,30,边界值分析,
12、边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。,人们从长期的测试工作经验得知,,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部,。因此针对各种边界情况设计测试用例,,可以查出更多的错误,。,31,比如,在做三角形计算时,要输入三角形的三个边长,:,A,、,B,和,C,。,我们应注意到这三个数值应当满足,A,0,、,B,0,、,C,0,、,A,B,C,、,A,C,B,、,B,C,A,,,才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“,”,,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。,32,使用边界值分析方法设计测试用例,首先应
13、确定边界情况。,应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,33,例子,1,:,依据边界值分析法确定测试用例,Id 110,个字母,地址,010,个汉字,邮编,7,个数字,34,2.,根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。,“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。,这个程序要打印出信息,能够构成三角形,用边界值分析法和等价类划分法确定测试用例,35,错误推测,法,人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。,错误推测法的基本想法是:,列举出程序中所有可能有的错误和容
14、易发生错误的特殊情况,根据它们选择测试用例,。,36,Sql,注入式攻击,是指利用设计上的漏洞,在服务器上运行,Sql,命令以达到的攻击目的,Select*from,用户表,where,姓名,=name and,密码,=password,Select*from,用户表,where,姓名,=111 or 1=1 and,密码,=,aaaa,37,因果图,因果图的适用范围如果在测试时必须考虑,输入条件的各种组合,,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况,。,38,(1)
15、分析软件规格说明描述中,哪些是原因,(,即输入条件或输入条件的等价类,),,哪些是结果,(,即输出条件,),,并给每个原因和结果赋予一个标识符。,(2),分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系,?,根据这些关系,画出因果图。,39,(3),由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。,(4),把因果图转换成判定表,。,(5),把判定表的每一列拿出来作为依据,设计测试用例。,40,在因果图中出现的基本符号通常在因果图中用,Ci,表示原因,,用,Ei,表示结果,各
16、结点表示状态,可取值,“,0”,或,“,1”,。“,0”,表示某状态不出现,,“,1”,表示某状态出现。,主要的原因和结果之间的关系有,:,41,表示约束条件的符号为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。,42,例子,软件规格说明书,“第一列字符必须,是,A,或,B,,,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息,L,,,如果第二列字符不是数字,则给出信息,M,。”,43,原因:,1,第一列字符是,A,;,2,第一列字符是,B,;,3,第二列字符是一数字。,结果:,21,修改文件;,22,给出信息,L,;,23,给出信息,M,。,44,因果图和,具有约束的因果图,11,为中间节点;,考虑到原因,1,和原因,2,不可能同时为,1,,因此在因果图上施加,E,约束。,45,判定表,根据因果图建立如下的判定表,表中,8,种情况的左面两列情况中,原因和原因同时为,1,,这是不可能出现的,故应排除这两种情况。,表的最下一栏给出了,6,种情况的测试用例,这是我们所需要的数据。,46,讨论,如果哪个开发项目在设计阶段就采用了判定表,也就不必再画因果图,而是可以直接利用判定表设计测试用例了,。,47,总结,Summary,48,提问与解答,Q&A,49,谢谢大家!,50,






