版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、12一一. .基于逻辑的测试基于逻辑的测试 1.1.如果一个软件系统的需求说明包含有大量的逻辑判断或条件组如果一个软件系统的需求说明包含有大量的逻辑判断或条件组 合时合时, ,则使用基于逻辑测试方法设计测试的实例。则使用基于逻辑测试方法设计测试的实例。 2.2.基于逻辑的测试不仅可以对模块进行测试,而且也适用于单元基于逻辑的测试不仅可以对模块进行测试,而且也适用于单元 和系统的测试。和系统的测试。 3.3.对以逻辑判断或条件组合为主的程序,可利用基于逻辑的测试,对以逻辑判断或条件组合为主的程序,可利用基于逻辑的测试, 检验程序结构的一致性和完全性。检验程序结构的一致性和完全性。 4.4.基于逻
2、辑的测试一般采用基于逻辑的测试一般采用判定表方法。判定表方法。二二. .建立判定表建立判定表 1.1.判定表由条件段、判定项、动作段和动作项组成。判定表由条件段、判定项、动作段和动作项组成。 2.2.规则表示在某些条件下程序所产生的动作。规则表示在某些条件下程序所产生的动作。 3.3.判定表中的判定表中的Y Y、N N表示判定的结果真、假,表示判定的结果真、假,I I表示对应的判定对该规则表示对应的判定对该规则 无关紧要或无关紧要或Y Y或或N N,动作中的,动作中的Y Y、N N表示执行或不执行该动作。表示执行或不执行该动作。三三. .使用判定表设计实例使用判定表设计实例 1.1.根据每一个
3、规则和对应的动作设计测试实例;根据每一个规则和对应的动作设计测试实例; 2.2.测试路径的覆盖取决于规则的完全性与一致性。测试路径的覆盖取决于规则的完全性与一致性。3规则项规则项规则规则1 1规则规则2 2规则规则3 3规则规则4 4条条件件项项判定判定1 1Y YY YN NN N判定判定2 2Y YI IN NI I判定判定3 3N NY YN NI I判定判定4 4N NY YN NY Y动动作作动作动作1 1Y YY YN NN N动作动作2 2N NN NY YN N动作动作3 3N NN NN NY Y缺省规则项缺省规则项规则规则5 5规则规则6 6规则规则7 7规则规则8 8I
4、IN NY YY YI IY YI IN NY YI IN NN NN NN NY YI IY YY YY YY Y规则规则条件条件动作动作 上述上述4 4个判定应有个判定应有1616个组合,上表并未覆盖全部组合,例如判定组合个组合,上表并未覆盖全部组合,例如判定组合(Y,N,N,N)(Y,N,N,N)没有。要实现完全覆盖,必须提供上述规则外的其它判定组合,没有。要实现完全覆盖,必须提供上述规则外的其它判定组合,并把这些判定组合与缺省动作对应,组成新的缺省规则。如右上表。并把这些判定组合与缺省动作对应,组成新的缺省规则。如右上表。缺省动作缺省动作例例. .如下判定表如下判定表4 三三. .与判
5、定表中成份相关的问题与判定表中成份相关的问题 问问 题题含含 义义判定判定次次序序规则规则动作动作规则的规则的独立性独立性 规则的规则的完全性完全性 规则的规则的一致性一致性 I I项的项的扩展扩展 判定的次序不影响对规则的解释和最终的动作。判定的次序不影响对规则的解释和最终的动作。规则执行的先后顺序不影响规则的动作。规则执行的先后顺序不影响规则的动作。如果一条规则产生多个动作,则动作的次序是无关紧要的。如果一条规则产生多个动作,则动作的次序是无关紧要的。 规则是相互独立的,即一条规则条件的满足和动作的选取,与其它规规则是相互独立的,即一条规则条件的满足和动作的选取,与其它规则无关。则无关。
6、如果每个判定值的组合如果每个判定值的组合( (包括缺省情况的组合包括缺省情况的组合) )在判定表中都是必须的,在判定表中都是必须的,那么称规则是完全的。反之,如果规则是不完全的,则可能存在某些判那么称规则是完全的。反之,如果规则是不完全的,则可能存在某些判定值的组合没有动作。定值的组合没有动作。 如果每个判定值的组合仅产生一个动作或一组动作,那么称规则是一如果每个判定值的组合仅产生一个动作或一组动作,那么称规则是一致的。反之,如果规则不一致,则最少存在一组判定值组合,它产生致的。反之,如果规则不一致,则最少存在一组判定值组合,它产生两个或多个动作两个或多个动作( (或动作组或动作组) )。 扩
7、展扩展I I项就是把每个项就是把每个I I项变成两项:一项项变成两项:一项“Y Y”,一项,一项“N N”,使规则扩大一,使规则扩大一倍。如果某些判定是三元判定,一个倍。如果某些判定是三元判定,一个I I项就扩展为三项,等等。项就扩展为三项,等等。5 例例1.1.从现金取款机中取款。从现金取款机中取款。 对上述三项内容:有效的信用卡、打入的密码是正确的及帐户对上述三项内容:有效的信用卡、打入的密码是正确的及帐户 中有足够的存款中有足够的存款, ,检查次序检查次序( (判定次序判定次序) )是无关紧要的,不同的检查是无关紧要的,不同的检查 次序不影响取款操作。次序不影响取款操作。例例2.2.判定
8、表中判定值为判定表中判定值为I I的的“无关紧要无关紧要”项是最容易发生错误的地方。若项是最容易发生错误的地方。若 某一判定取值某一判定取值I I,表示规则不依赖于该判定值。但它可能取真值或,表示规则不依赖于该判定值。但它可能取真值或 假值。譬如规则:假值。譬如规则: R1R1如果一个技术员工龄超过如果一个技术员工龄超过5 5年,那么加薪年,那么加薪15%15%; R2R2如果一个工人,那么加薪如果一个工人,那么加薪5%5%。 在此工龄对技术员加薪是重要的,对工人无关紧要。但不能认在此工龄对技术员加薪是重要的,对工人无关紧要。但不能认 为工人的工龄不可能超过或小于为工人的工龄不可能超过或小于5
9、 5年。年。 取款机取款机有效的信用卡有效的信用卡正确的密码正确的密码帐户中有足够的存款帐户中有足够的存款现金现金6 例例3.3.使用判定表对程序结构进行测试,如下程序结构图:使用判定表对程序结构进行测试,如下程序结构图:2 21 13 3A AD DB B动作动作 1 1Y YY YY Y5 5动作动作 3 3N N4 4动作动作 2 2N ND DY YN NN NC CN NY Y7 例例3.3.使用判定表对程序结构进行测试,如下程序结构图:使用判定表对程序结构进行测试,如下程序结构图:2 21 13 3A AD DB B动作动作 1 1Y YY YY Y5 5动作动作 3 3N N4
10、4动作动作 2 2N ND DY YN NN NC CN NY Y8 程序结构图图对应的判定表如下:程序结构图图对应的判定表如下:规则项规则项规则规则1 1规则规则2 2规则规则3 3规则规则4 4规则规则5 5规则规则6 6条条件件项项判定判定A A判定判定B B判定判定C C判定判定D D动动作作动作动作1 1动作动作2 2动作动作3 3规则规则条件条件动作动作Y YY YY YY YY YY YY YY YY YY YY YN NY YN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NI II II II II II II II IN NY
11、YN NN NY Y 判定在路径上不判定在路径上不出现的地方填入出现的地方填入I I,将出现将出现I I的地方变成的地方变成两项两项Y Y与与N,N,可得到可得到1616种组合种组合( (规则规则) ),且,且没有两种组合是重没有两种组合是重复的。如下表所示。复的。如下表所示。规则规则1 1规则规则2 2规则规则3 3规则规则4 4规则规则5 5规则规则6 6判定判定A AY YY YY YY YY YY YY YY YN NN NN NN NN NN NN NN N判定判定B BY YY YN NN NN NN NY YY YY YY YN NN NN NY YY YN N判定判定C CY
12、YN NN NN NY YY YY YN NY YY YY YY YN NN NN NN N判定判定D DY YY YY YN NN NY YN NN NN NY YY YN NY YY YN NN N从而说明上述程从而说明上述程序结构图是完全和序结构图是完全和一致的。一致的。9一一. .黑盒测试也称为功能测试黑盒测试也称为功能测试, ,它着眼于程序的外部特征它着眼于程序的外部特征, ,而不考虑程序而不考虑程序 的内部逻辑结构。测试者把被测程序看成一个黑盒的内部逻辑结构。测试者把被测程序看成一个黑盒, ,不用关心程序的不用关心程序的 内部结构。内部结构。二二. .黑盒测试是在程序接口处进行测试
13、,它只检查程序功能是否能按照黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照 规格说明书的规定正常使用,程序是否能适当地接收输入数据产生规格说明书的规定正常使用,程序是否能适当地接收输入数据产生 正确的输出信息,并且保持外部信息正确的输出信息,并且保持外部信息( (如数据库或文件如数据库或文件) )的完整性。的完整性。三三. .用黑盒测试法发现程序中的错误必须用所有可能的输入数据来检查用黑盒测试法发现程序中的错误必须用所有可能的输入数据来检查 程序,看能否产生正确的输出。而这种完全的测试方法程序,看能否产生正确的输出。而这种完全的测试方法( (即穷举法即穷举法) ), 一般情况下一般
14、情况下, ,很难做到很难做到, ,所以软件测试中很难发现所有的错误,即测试并不所以软件测试中很难发现所有的错误,即测试并不 能证明程序是正确的。能证明程序是正确的。四四. .我们的目的是要通过测试保证软件的可靠性,只有很好设计测试方案,力我们的目的是要通过测试保证软件的可靠性,只有很好设计测试方案,力 争用尽可能少的测试发现尽可能多的错误。争用尽可能少的测试发现尽可能多的错误。为此需要考虑可行的技术。为此需要考虑可行的技术。五五. .黑盒测试技术包括黑盒测试技术包括: :等价分类法、边沿值分析法、错误推测法和因果等价分类法、边沿值分析法、错误推测法和因果 图等技术图等技术。10 对被测程序在一
15、切可能输入情况下执行一遍,称为穷举测试。对被测程序在一切可能输入情况下执行一遍,称为穷举测试。 为了做到穷举测试至少必须对所有输入数据各种可能值的排列组合进为了做到穷举测试至少必须对所有输入数据各种可能值的排列组合进行测试,但对于实际程序而言,穷举测试通常是不可能做到的。行测试,但对于实际程序而言,穷举测试通常是不可能做到的。 例例1:1:一个程序有两个输入变量一个程序有两个输入变量A,BA,B一个输出变量一个输出变量C,C,设设A,B,CA,B,C都是整型变都是整型变量量, ,如果在字长为如果在字长为3232位的计算机上运行位的计算机上运行, ,用黑盒法测试用黑盒法测试, ,则输入数据的可能
16、则输入数据的可能性有性有 2 23232 2 23232 = 2 = 264 64 1.845 1.845 101019 19 。 假设这个程序执行一次需要假设这个程序执行一次需要1010-8-8秒秒(1(1亿次计算机亿次计算机) ),那么用这些数据来,那么用这些数据来测试这个程序大约需要测试这个程序大约需要58505850年,这是不可能的。更不用说分析这些数据。年,这是不可能的。更不用说分析这些数据。 在白盒测试中,同样要做到在白盒测试中,同样要做到穷举测试常常也是不可能的。穷举测试常常也是不可能的。 例例2.2.一段程序,对嵌套一段程序,对嵌套IFIF语语句循环执行句循环执行2020次次(
17、 (右图右图) )在该段在该段程序中共有程序中共有5 52020( (约约10101414) )条可能的条可能的执行通路执行通路, ,即使每一条通路执行即使每一条通路执行一次也是不可能的。一次也是不可能的。11一一. .等价类及其划分等价类及其划分 名称名称等价类等价类等价类划分等价类划分定义定义 等价等价类划类划分的分的方法方法 某个输入集合的子集,某个输入集合的子集,在该等价类中每一个代在该等价类中每一个代表值在测试中的作用等表值在测试中的作用等价于这一类中的其它值。价于这一类中的其它值。 划分等价类一般是从程序的功能说明中找出一划分等价类一般是从程序的功能说明中找出一个个输入条件个个输入
18、条件, ,然后为每个输入条件划分两个或两然后为每个输入条件划分两个或两个以上的等价类个以上的等价类, ,其中合理等价类是指合法的输入其中合理等价类是指合法的输入数据数据, ,不合理等价类是指其它数据。不合理等价类是指其它数据。规定了输入值的范围。规定了输入值的范围。划分出一个有效的等价类划分出一个有效的等价类( (输入值在此范围内输入值在此范围内),),两两个无效的等价类个无效的等价类( (输入值小于最小值或大于最大值输入值小于最小值或大于最大值) )规定了输入数据的个数。规定了输入数据的个数。 类似划分出一个有效的等价类类似划分出一个有效的等价类, ,两个无效的等价类。两个无效的等价类。规定
19、了输入数据的一组值,规定了输入数据的一组值,而且程序对不同输入值作而且程序对不同输入值作不同处理。不同处理。每个允许的输入值是一个有效的等价类,此外还每个允许的输入值是一个有效的等价类,此外还有一个无效等价类有一个无效等价类( (任一个不允许的输入值任一个不允许的输入值) )。规定了输入数据必须遵守规定了输入数据必须遵守的规则。的规则。 划分出一个有效的等价类划分出一个有效的等价类( (符合规则符合规则),),若干个无若干个无效的等价类效的等价类( (从各种不同角度违反规则从各种不同角度违反规则) )。程序的处理对象是表格。程序的处理对象是表格。 使用空表、含一项的表或多项的表。使用空表、含一
20、项的表或多项的表。输入条件是一个布尔量输入条件是一个布尔量可以确定一个有效等价类和一个无效等价类。可以确定一个有效等价类和一个无效等价类。12 若在已划分的某一等价类中各元素在程序中的处理方式不同,则将此等价若在已划分的某一等价类中各元素在程序中的处理方式不同,则将此等价类进一步划分为更小的等价类。上述规则是针对输入数据考虑的,大部分也类进一步划分为更小的等价类。上述规则是针对输入数据考虑的,大部分也适用于输出数据。适用于输出数据。 划分等价类的举例划分等价类的举例 条条 件件划划 分分 方方 法法输入条件取值范围是输入条件取值范围是11,100100。有效等价类有效等价类: :“11输入数据
21、输入数据100100”;无效等价类无效等价类: :“输入数据输入数据1 1”或或“输入数据输入数据100100”在程序功能规约中,规定在程序功能规约中,规定“一名一名教师一学期教授一到二门课程教师一学期教授一到二门课程”有效等价类有效等价类: :“11教授课程教授课程2 2”;两个无效等价类两个无效等价类: :“不教授课程不教授课程”或或“教授课程教授课程2 2”。在学生管理系统中,对一、二、在学生管理系统中,对一、二、三年级学生分别进行管理。三年级学生分别进行管理。等价类:一年级学生、二年级学生、三年级学生等价类:一年级学生、二年级学生、三年级学生无效等价类:上述三类学生以外的人员集合无效等
22、价类:上述三类学生以外的人员集合若某文件中规定各数据项的关键若某文件中规定各数据项的关键字是首字符为字是首字符为K K 。一个有效等价类:首字符为一个有效等价类:首字符为K K的输入值;的输入值;一个无效等价类:首字符不为一个无效等价类:首字符不为K K的输入值。的输入值。规定了输入数据为整型。规定了输入数据为整型。划分出正整数、零和负整数三个有效的等价类;划分出正整数、零和负整数三个有效的等价类;一个无效等价类:输入字符是非整数。一个无效等价类:输入字符是非整数。13 二二. .利用等价类划分技术设计测试用例的步骤利用等价类划分技术设计测试用例的步骤 1.1.为每个等价类编号;为每个等价类编
23、号; 2.2.设计一个新的测试方案设计一个新的测试方案, ,以尽可能多的覆盖尚未被覆盖的有效等以尽可能多的覆盖尚未被覆盖的有效等 价类价类, ,重复这一步骤重复这一步骤, ,直到所有有效等价类被覆盖为止。直到所有有效等价类被覆盖为止。 3.3.设计一个新的测试方案设计一个新的测试方案, ,使它覆盖一个尚未被覆盖的无效等价类使它覆盖一个尚未被覆盖的无效等价类, , 重复这一步骤重复这一步骤, ,直到所有无效等价类被覆盖为止。直到所有无效等价类被覆盖为止。 例例. .一程序实现把数字串转变成整数。假设运行程序的计算机字长一程序实现把数字串转变成整数。假设运行程序的计算机字长 1616位,用二进制补
24、码表示整数。该程序用位,用二进制补码表示整数。该程序用PascalPascal语言编写,其语言编写,其 说明如下:说明如下: type shortstr=array1.6 of chartype shortstr=array1.6 of char; function strtiont(dstr:shortstr):integer;function strtiont(dstr:shortstr):integer; 设被处理的数字串是右对齐的,如果数字串少于设被处理的数字串是右对齐的,如果数字串少于6 6个字符,则在个字符,则在 左边补空格;如果数字串是负的,负号在最高位数字左边。左边补空格;如果
25、数字串是负的,负号在最高位数字左边。 根据该程序的规格说明,作等价类的划分,并设计测试方案。根据该程序的规格说明,作等价类的划分,并设计测试方案。 141.1.等价类等价类输输入入有效等价类有效等价类无效等价类无效等价类输输出出合法等价类合法等价类非法等价类非法等价类6 6个字符组成的数字串个字符组成的数字串( (最高最高 位数字不是零位数字不是零) );2.2.最高位数字是零的数字串;最高位数字是零的数字串;3.3.最高位数字左邻负号的数字串。最高位数字左邻负号的数字串。1.1.空字符串空字符串( (全是空格全是空格) );2.2.左边填充的字符不是零也不是空格;左边填充的字符不是零也不是空
26、格;3.3.最高位数字右面由数字和空格组成;最高位数字右面由数字和空格组成;4.4.最高位数字右面由数字和其它字符组成;最高位数字右面由数字和其它字符组成;5.5.负号和最高位数字之间有空格。负号和最高位数字之间有空格。1.1.在计算机能表示的最小负整数在计算机能表示的最小负整数 和零之间的负整数;和零之间的负整数;2.2.零;零;3.3.在零和计算机能表示的最大正在零和计算机能表示的最大正 整数之间的正整数。整数之间的正整数。1.1.比计算机能表示的最小负整数比计算机能表示的最小负整数(-32768)(-32768) 还小的负整数;还小的负整数;2.2.比计算机能表示的最大正整数比计算机能表
27、示的最大正整数(32767)(32767) 还大的正整数。还大的正整数。注注:2:21616=65536 (-32768=65536 (-3276832767)32767)152.2.设计测试方案设计测试方案方案方案内内 容容输入输入预期输出预期输出1 11 16 6个字符组成的数字串个字符组成的数字串, ,输出合法正整数输出合法正整数. . 1 11 12 2最高位数字是零的数字串最高位数字是零的数字串, ,输出合法正整数输出合法正整数. .0000010000011 13 3最高位数字左邻负号最高位数字左邻负号, ,输出合法负整数输出合法负整数. .-00001-00001-1-14 4最
28、高位数字是零最高位数字是零, ,输出也是是零输出也是是零. .0000000000000 05 5太小的负整数太小的负整数. .-47561-47561无效输入无效输入6 6太大的正整数太大的正整数. .132767132767无效输入无效输入7 7空字符串空字符串. . 没有数字没有数字8 8字符串左部字符不是零字符串左部字符不是零, ,也不是空格也不是空格. . 1 1填充错填充错9 9最高位数字后面有空格最高位数字后面有空格. . 1 21 2无效输入无效输入1010最高位数字后面有其它字符最高位数字后面有其它字符. . 1 12 2无效输入无效输入1111负号和最高位数字之间有空格负号
29、和最高位数字之间有空格. .- 12- 12负号位置错负号位置错16一一. .边界值分析测试技术的主要思想边界值分析测试技术的主要思想 是把输入和输出范围的边界作为测试的主要目标,因为测试经验表明大量的是把输入和输出范围的边界作为测试的主要目标,因为测试经验表明大量的错误经常发生在输入或输出范围的边界上。错误经常发生在输入或输出范围的边界上。 边界值分析是一种最常用的黑盒技术。边界值分析是一种最常用的黑盒技术。二二. .使用边界值分析法设计测试用例遵循的原则使用边界值分析法设计测试用例遵循的原则 方法方法条件条件测试值范围测试值范围测试用例测试用例1 12 23 3规定了输入规定了输入值的范围
30、。值的范围。选择一些恰好取到边界选择一些恰好取到边界值的数据值的数据, ,及刚好超过边及刚好超过边界的数据作为测试数据。界的数据作为测试数据。若输入值范围是若输入值范围是-1,1,-1,1,则测则测试数据可选择试数据可选择: :。规定了输入规定了输入值的个数范值的个数范围:围:N1N1N2N2测试数据选择测试数据选择: : N1N1,N2N2,N1-1N1-1,N2+1N2+1。一个输入文件有一个输入文件有1 1255255个记个记录,选择录,选择1 1个、个、255255个、个、0 0个和个和256256个记录作测试数据。个记录作测试数据。根据规格说根据规格说明的每个输明的每个输出条件出条件
31、使用方法使用方法1 1某程序计算折旧费某程序计算折旧费, ,最低最低0 0元元, ,最高最高100100元。输出测试用例元。输出测试用例: :恰好产生恰好产生0 0元和元和100100元折旧费;元折旧费;产生负值和大于产生负值和大于100100元折旧费。元折旧费。17方法方法条件条件测试值范围测试值范围测试用例测试用例4 45 56 67 7根据规格说根据规格说明的每一个明的每一个输出条件。输出条件。使用方法使用方法2 2。一个检索系统根据输入条件一个检索系统根据输入条件, ,要求显示要求显示1010条的相关查询结条的相关查询结果。测试用例使程序分别显果。测试用例使程序分别显示示0 0、1 1
32、、1010、1111个查询结果。个查询结果。输入和输出输入和输出域是有序集域是有序集合。合。选取第一个、最后一个选取第一个、最后一个元素及典型元素作为测元素及典型元素作为测试用例。试用例。输入和输出是一个顺序文件,输入和输出是一个顺序文件,测试用例选择该文件的第一测试用例选择该文件的第一个、正中间一个和最后一个。个、正中间一个和最后一个。程序中使用程序中使用了内部数据了内部数据结构。结构。选择该内部数据结构边界选择该内部数据结构边界上的值作为测试用例。上的值作为测试用例。程序中定义了一个数组,其程序中定义了一个数组,其元素的下标下界、上界分别元素的下标下界、上界分别为为0 0、100100,则
33、选择下标是,则选择下标是0 0和和100100的元素作为测试数据。的元素作为测试数据。规格说明规格说明分析规格说明分析规格说明, ,找出找出其它可能的边界条件。其它可能的边界条件。三三. .边界值分析与等价类划分的区别:边界值分析着重于边界的测试,选取边界值分析与等价类划分的区别:边界值分析着重于边界的测试,选取等于、刚刚等于、刚刚 小于或大于边界的值作为测试数据,小于或大于边界的值作为测试数据,等价类划分是选取等价类中的典型值或任意值等价类划分是选取等价类中的典型值或任意值 作为测试数据。作为测试数据。18 前面介绍的每一种设计测试方案的方法各有所长前面介绍的每一种设计测试方案的方法各有所长
34、, ,用一种方法设计用一种方法设计出的测试方案可能容易发现某些类型的错误出的测试方案可能容易发现某些类型的错误, ,对另外一些类型的错误对另外一些类型的错误可能不易发现。可能不易发现。 因此对软件系统进行实际测试时,应综合使用各种方法,形成一因此对软件系统进行实际测试时,应综合使用各种方法,形成一个综合策略。通常做法是黑盒法个综合策略。通常做法是黑盒法( (边沿值分析、等价划分和错误推测边沿值分析、等价划分和错误推测法等法等) )设计基本的测试方案,再用白盒法补充一些必要的测试方案。设计基本的测试方案,再用白盒法补充一些必要的测试方案。 具体讲,可以使用下述策略:具体讲,可以使用下述策略: 1
35、.1.在任何情况下都应使用边界值分析的方法。在任何情况下都应使用边界值分析的方法。 2.2.必要时用等价类划分法补充测试方案。必要时用等价类划分法补充测试方案。 3.3.必要时再用错误推测法补充测试方案。必要时再用错误推测法补充测试方案。 4.4.对照程序逻辑,检查已设计出的测试方案。对照程序逻辑,检查已设计出的测试方案。 5.5.根据对程序可靠性的要求采用不同的逻辑覆盖标准,再补充一根据对程序可靠性的要求采用不同的逻辑覆盖标准,再补充一 些测试方案。些测试方案。 19 例例. .一程序读入三个整数值,表示同一个三角形三条边的长度,该程序根据一程序读入三个整数值,表示同一个三角形三条边的长度,
36、该程序根据这三个值判断三角形属于不等边、等腰或等边三角形中的哪一种。这三个值判断三角形属于不等边、等腰或等边三角形中的哪一种。 综合使用边界值分析、等价类划分和错误推测等技术,可设计出下述综合使用边界值分析、等价类划分和错误推测等技术,可设计出下述1111种应种应该测试情况和对应的该测试情况和对应的9 9种测试功能。根据测试功能不难设计测试数据。种测试功能。根据测试功能不难设计测试数据。 需要测试的情况需要测试的情况测试功能测试功能测试数据测试数据1.1.正常的等边三角形;正常的等边三角形;1.1.等边;等边;(5,5,5)(5,5,5)2.2.正常的不等边三角形;正常的不等边三角形;2.2.
37、不等边;不等边;(8,10,7)(8,7,10)(10,7,8)(8,10,7)(8,7,10)(10,7,8)3.3.正常的等腰三角形;正常的等腰三角形;3.3.等腰;等腰;(8,6,6)(6,8,6)(6,6,8)(8,6,6)(6,8,6)(6,6,8)4.4.退化的三角形退化的三角形( (两边之和等于第三边两边之和等于第三边) ); 4.4.退化情形;退化情形;(10,5,5)(5,10,5)(5,5,10)(10,5,5)(5,10,5)(5,5,10)5.5.三条边不构成三角形;三条边不构成三角形;5.5.非三角形;非三角形;(3,4,8)(3,8,4)(8,4,3)(3,4,8)
38、(3,8,4)(8,4,3)6.6.一条边的长度为零;一条边的长度为零;6.6.零数据;零数据;(0,3,4)(3,0,4)(4,3,0)(0,3,4)(3,0,4)(4,3,0)(0,0,4)(4,0,0)(0,4,0)(0,0,4)(4,0,0)(0,4,0)(0,0,0)(0,0,0)7.7.两条边的长度为零;两条边的长度为零;8.8.三条边的长度为零;三条边的长度为零;9.9.输入数据中包含负整数;输入数据中包含负整数;7.7.负数据;负数据;(-5,-5,-5)(-5,3,4)(-5,-6,4)(-5,-5,-5)(-5,3,4)(-5,-6,4)10.10.输入数据不全输入数据不全
39、( (不足三个正整数不足三个正整数) );8.8.遗漏数据;遗漏数据;(8, , )(8,7, )( , , )(8, , )(8,7, )( , , )11.11.输入数据中包含非整数型的数据。输入数据中包含非整数型的数据。9.9.无效输入。无效输入。(A,10,7)(8,=,1C0)(+,7,8B)(A,10,7)(8,=,1C0)(+,7,8B)20程序流程图程序流程图 开始开始根据程序流程图可以检查上述测试根据程序流程图可以检查上述测试数据的覆盖程度。例如:数据的覆盖程度。例如:(5,5,5)(5,5,5)覆盖覆盖1,2,3,4,5,6,7,81,2,3,4,5,6,7,8;(6,6,
40、8)(6,6,8)覆盖覆盖1,2,3,4,5,15,19,20,81,2,3,4,5,15,19,20,8;(6,8,6)(6,8,6)覆盖覆盖1,2,3,4,14,18,19,20,81,2,3,4,14,18,19,20,8;(8,6,6)(8,6,6)覆盖覆盖1,2,3,4,14,16,17,19,20,81,2,3,4,14,16,17,19,20,8;上述上述4 4组数据就做到路径覆盖。组数据就做到路径覆盖。即黑盒法设计的测试方案已足够了。即黑盒法设计的测试方案已足够了。A AB+CB+C1 1B BA+CA+CT T2 2C CA+BA+BT T3 3A=BA=BT T4 4B=C
41、B=CT T5 5印出印出“等边等边”T T6 6停止停止8 87 7印出印出“等腰等腰”1919印出印出“不是不是”1212F F1111F F1010F F9 9T T1717B=CB=CF F1616F F1515A=CA=CF F14141313T T 18182222印出印出“不等边不等边”F F2121202021软件软件: :待测软件,包括软件需求规格说明书、设计说明书和源程序代码等文档资料。待测软件,包括软件需求规格说明书、设计说明书和源程序代码等文档资料。测试测试软件软件错误信息错误信息改正信息改正信息评价评价纠错纠错可靠性可靠性模型模型测试结果测试结果期望结果期望结果错误率
42、数据错误率数据可靠性预测可靠性预测测试配置测试配置: :包括测试计划、测试用例和测试结果。包括测试计划、测试用例和测试结果。评价评价: :将测试结果和期望的结果相比较,如果不符就意味着错误,需要纠正将测试结果和期望的结果相比较,如果不符就意味着错误,需要纠正( (纠错纠错) )。可靠性可靠性: :对测试结果进行收集和评价,得到可靠性的相关指标。对测试结果进行收集和评价,得到可靠性的相关指标。 1.1.如果出现规律性、严重性的错误,软件质量可靠性值得怀疑,需进一步测试;如果出现规律性、严重性的错误,软件质量可靠性值得怀疑,需进一步测试; 2.2.如果软件功能完成较好,出现的错误也易纠正,那么:或
43、者软件质量和可靠性是如果软件功能完成较好,出现的错误也易纠正,那么:或者软件质量和可靠性是 可以接受的;或者未发现错误,不排除测试配置考虑不周,可能潜伏着的错误。可以接受的;或者未发现错误,不排除测试配置考虑不周,可能潜伏着的错误。测试配置测试配置22子系统子系统测试测试单元单元测试测试单元单元测试测试单元单元测试测试测试报告测试报告测试报告测试报告测试报告测试报告测试报告测试报告软件设计信息软件设计信息系统其它成分系统其它成分软件需求信息软件需求信息系统系统测试测试已测试子系统已测试子系统平行平行测试测试已验收系统已验收系统验收验收测试测试已测试系统已测试系统运行系统运行系统集成测试阶段集成
44、测试阶段编码阶段编码阶段验收阶段验收阶段运行阶段运行阶段23一一. .软件测试一般步骤软件测试一般步骤步骤步骤测试内容测试内容时间时间单元单元测试测试 子系统子系统测试测试 系统系统测试测试 验收验收测试测试 平行平行测试测试 将每一个模块作为一个单独的测试单元,保证每一个模块作为将每一个模块作为一个单独的测试单元,保证每一个模块作为一个单元能正确运行。一个单元能正确运行。 将经过单元测试的模块放在一起形成一个子系统来测试,以测将经过单元测试的模块放在一起形成一个子系统来测试,以测试模块间的接口正确性作为主要任务。试模块间的接口正确性作为主要任务。 将经过测试的子系统装配成一个完整的系统来测试
45、,检验系统将经过测试的子系统装配成一个完整的系统来测试,检验系统是否确实能实现需求规格说明书中的功能,以及系统的动态特征是否确实能实现需求规格说明书中的功能,以及系统的动态特征是否符合预定要求。系统测试是指整个计算机系统是否符合预定要求。系统测试是指整个计算机系统( (包括软硬件包括软硬件) )的测试的测试, ,可与系统的安装和验收相结合进行。可与系统的安装和验收相结合进行。 在用户的参与下,把软件系统作为单一的实体进行测试,使软在用户的参与下,把软件系统作为单一的实体进行测试,使软件系统能满足用户的需要。测试内容与系统测试基本相同。件系统能满足用户的需要。测试内容与系统测试基本相同。 新旧两
46、个系统同时运行进行比较,避免风险的同时给用户对新新旧两个系统同时运行进行比较,避免风险的同时给用户对新系统一段熟悉的时间。系统一段熟悉的时间。编码编码阶段阶段集中集中测试测试阶段阶段验收验收阶段阶段运行运行阶段阶段24二二. .各个阶段产生的文档与测试的关系各个阶段产生的文档与测试的关系 用户要求用户要求需求分析需求分析总体设计总体设计详细设计详细设计编编 码码软件软件结构图结构图模块说明模块说明程序清单程序清单单元测试单元测试集成测试集成测试验收测试验收测试平行测试平行测试需求规需求规格说明格说明25三三. .单元测试单元测试测试对象测试对象测试内容测试内容模块接口模块接口局部数据局部数据接
47、口接口重要的执重要的执行路径及行路径及出错处理出错处理(1)(1)参数数目与调用模块数目是否相等;参数数目与调用模块数目是否相等;(2)(2)参数属性与变元属性是否匹配;参数与变元的单位系统是否匹配;参数属性与变元属性是否匹配;参数与变元的单位系统是否匹配;(3)(3)传送给被调用模块的变元数目是否等于那个模块的参数数目;传送给被调用模块的变元数目是否等于那个模块的参数数目;(4)(4)传送给被调用模块的变元属性和参数的属性是否一致;传送给被调用模块的变元属性和参数的属性是否一致;(5)(5)传送给被调用模块的变元单位系统和该模块参数的单位系统是否一致;传送给被调用模块的变元单位系统和该模块参
48、数的单位系统是否一致;(6)(6)其它有关内部函数、全程变量等属性的一致性。其它有关内部函数、全程变量等属性的一致性。(7)(7)涉及完成外部的输入涉及完成外部的输入/ /输出时输出时, ,需注意的包括需注意的包括: :文件属性、文件打开文件属性、文件打开/ /结结 束、及错误检查等。束、及错误检查等。(1)(1)说明与数据类型是否相容;说明与数据类型是否相容;(2)(2)未赋值或未初始化变量未赋值或未初始化变量, ,错误的初始值或补缺值错误的初始值或补缺值, ,错误的变量名字;错误的变量名字;(3)(3)上溢、下溢或地址异常。上溢、下溢或地址异常。(1)(1)计算次序或运算符的优先次序理解错
49、误;计算次序或运算符的优先次序理解错误;(2)(2)混合运算中运算对象和类型不相容;混合运算中运算对象和类型不相容;(3)(3)变量初始值错误或符号表示错误。变量初始值错误或符号表示错误。(4)(4)影响上述各方面的边界条件。影响上述各方面的边界条件。26单元测试的方法单元测试的方法 人工审查人工审查测试软件测试软件 含义含义主要目标主要目标四四. .集成测试集成测试组织审查小组;组织审查小组;研究设计说明书;研究设计说明书; 对典型的程序对典型的程序, ,一般可查出一般可查出303070%70%的错误;对某些类型错误,人的错误;对某些类型错误,人工测试比计算机测试更有效。工测试比计算机测试更
50、有效。 为每一个测试单元的测试,开发驱动软件为每一个测试单元的测试,开发驱动软件或存根软件。或存根软件。驱动软件驱动软件: :接收测试数据接收测试数据, ,传送给被测试的传送给被测试的 模块模块, ,印出有关结果;印出有关结果;存根软件:代替被测模块,所调用的模块。存根软件:代替被测模块,所调用的模块。1.1.在模块按设计要求组装的过程在模块按设计要求组装的过程 中进行的测试中进行的测试, ,它是软件的组它是软件的组 装技术。装技术。2.2.子系统测试和系统测试是集成子系统测试和系统测试是集成 测试的不同阶段,方法类同。测试的不同阶段,方法类同。发现与模块接口有关的问题:如发现与模块接口有关的
51、问题:如(1)(1)数据通过接口可能的丢失;数据通过接口可能的丢失;(2)(2)一个模块对另一个模块可能造成的错误影响;一个模块对另一个模块可能造成的错误影响;(3)(3)子功能的组合未能产生预期的主功能;子功能的组合未能产生预期的主功能;(4)(4)个别可以接收的误差累计到不能接收的程度;个别可以接收的误差累计到不能接收的程度;(5)(5)全程数据结构可能有问题。全程数据结构可能有问题。27内内 容容非渐增式测试方式非渐增式测试方式渐增式测试方式渐增式测试方式 测试软件测试软件发现错误发现错误错误诊断错误诊断测试完整测试完整 测试时间测试时间测试方式测试方式 结论结论 集成测试的两种方式集成
52、测试的两种方式 分别测试模块分别测试模块, ,再把所有模块按设再把所有模块按设计要求放在一起组成所要的程序。计要求放在一起组成所要的程序。 把下一个要测试的模块把下一个要测试的模块, ,同已经测试好的那同已经测试好的那些模块结合起来进行测试。些模块结合起来进行测试。编写测试软件工作量大。编写测试软件工作量大。利用已测试过的模块作测试软件利用已测试过的模块作测试软件, ,开销小。开销小。模块间的接口错误发现得晚。模块间的接口错误发现得晚。较早发现模块间的接口错误。较早发现模块间的接口错误。错误定位较难诊断。错误定位较难诊断。错误定位往往和最近加入的模块相关。错误定位往往和最近加入的模块相关。总体
53、测试,有的错误容易漏掉。总体测试,有的错误容易漏掉。 对已测试好的模块可在新加入模块的条对已测试好的模块可在新加入模块的条件下受到新的检验,测试更彻底。件下受到新的检验,测试更彻底。测试时间相对较少。测试时间相对较少。需要较多的测试时间。需要较多的测试时间。 可以并行测试所有模块,能充可以并行测试所有模块,能充分利用人力,加快工程进度。分利用人力,加快工程进度。不能并行测试。不能并行测试。 前前4 4条是渐增式测试方法的优点,随着计算机硬件性能的提高和价格的大幅度下降,条是渐增式测试方法的优点,随着计算机硬件性能的提高和价格的大幅度下降,其缺点易于弥补。因此总的来说,渐增式测试方法比较好。在有
54、的情况下,可采用两其缺点易于弥补。因此总的来说,渐增式测试方法比较好。在有的情况下,可采用两种方法,即混合方式。当使用渐增式测试方法把模块结合到软件系统中去时,有自顶种方法,即混合方式。当使用渐增式测试方法把模块结合到软件系统中去时,有自顶向下和自底向上两种结合方法。向下和自底向上两种结合方法。28内内 容容自顶向下结合自顶向下结合 自底向上的结合自底向上的结合 策略策略 步骤步骤模块结合的两种方式模块结合的两种方式 从主控模块从主控模块( (“主程序主程序”) )开始开始, ,沿着软沿着软件的控制层次向下移动件的控制层次向下移动, ,从而把各个模从而把各个模块结合起来。块结合起来。 从最低层
55、模块从最低层模块( (“原子原子”模块模块) )开始开始, ,沿沿着软件的控制层次向上移动着软件的控制层次向上移动, ,从而把各从而把各模块结合起来。不需用存根程序。模块结合起来。不需用存根程序。 广度优先广度优先: :沿软件结构水平地移动沿软件结构水平地移动, ,把处于同一个控制层上的模块组装起来把处于同一个控制层上的模块组装起来 深度优先深度优先: :先组装软件结构的一条主先组装软件结构的一条主控制通路上的所有模块;控制通路上的所有模块;(1)(1)对主控模块进行测试对主控模块进行测试, ,直接附属于主直接附属于主 控模块的模块控模块的模块, ,用存根程序代替;用存根程序代替;(2)(2)
56、根据选定的结合策略根据选定的结合策略, ,每次用一个每次用一个 实际模块代替一个存根程序;实际模块代替一个存根程序;(3)(3)在结合进一个模块的同时进行测试;在结合进一个模块的同时进行测试;(4)(4)根据情况和需要进行部分或全部的根据情况和需要进行部分或全部的 重复测试重复测试( (回归测试回归测试) )。(1)(1)把低层模块组合成实现某个特定的把低层模块组合成实现某个特定的 软件子功能族;软件子功能族;(2)(2)写一个驱动程序写一个驱动程序( (用于测试的控制程用于测试的控制程 序序) )协调测试数据的输入和输出;协调测试数据的输入和输出;(3)(3)对由模块组成的子功能族进行测试;
57、对由模块组成的子功能族进行测试;(4)(4)去掉驱动程序去掉驱动程序, ,沿软件结构自下而沿软件结构自下而 上移动上移动, ,把子功能族结合起来形成把子功能族结合起来形成 更大子功能族。更大子功能族。29M3M4M1M7M5M8M2M6例例1.1.如图如图“自顶向下自顶向下”:采用广度优先:采用广度优先: :模块模块M1 1结合模块结合模块M2 2,M3 3和和M4 4,然后再结合下一控,然后再结合下一控制制 层中的模块层中的模块M5 5,M6 6和和M7 7,继续下去直到所有模块结合近来。采用深度优先,继续下去直到所有模块结合近来。采用深度优先: :首先结合首先结合 模块模块M1 1,M2
58、2,M5 5和和M8M8,其次结合,其次结合M6 6或或M7,然后再构造中央的和右侧的控制通路。然后再构造中央的和右侧的控制通路。例例2.2.如图如图“自底向上自底向上”:(1)(1)把低层模块组合成实现某个特定的软件子功能族;把低层模块组合成实现某个特定的软件子功能族;D3E5F5M1M2M3D1D2E8G1F1E2E3F2E4F4F3族族1族族2族族3(4)(4)去掉驱动程序去掉驱动程序, ,沿软件结构自下而上沿软件结构自下而上 移动移动, ,把子功能族结合起来形成更大把子功能族结合起来形成更大 子功能族。子功能族。 (2) (2)写一个驱动程序写一个驱动程序( (用于测试的控制程序用于测
59、试的控制程序) )协调测试数据的输入和输出;协调测试数据的输入和输出; (3)(3)对由模块组成的子功能族进行测试;对由模块组成的子功能族进行测试;30五五. .验收测试验收测试 测试测试内内 容容任务任务范围范围方法方法结果结果验证软件的功能和性能满足用户的合理期望,即软件的有效性。验证软件的功能和性能满足用户的合理期望,即软件的有效性。1.1.某些已测试过的纯技术性问题不一定再次测试;某些已测试过的纯技术性问题不一定再次测试;2.2.对用户特别感兴趣的的功能或性能,可能需增加一些测试;对用户特别感兴趣的的功能或性能,可能需增加一些测试;3.3.一般使用生产中的实际数据进行测试;一般使用生产
60、中的实际数据进行测试;4.4.需要设计并执行一些与用户使用步骤有关的测试;需要设计并执行一些与用户使用步骤有关的测试;5.5.全程数据结构可能有问题的地方。全程数据结构可能有问题的地方。1.1.必须有用户参与必须有用户参与, ,或以用户为主进行。或以用户为主进行。2.2.一般使用黑盒测试法,应该仔细设计测试计划和测试过程。一般使用黑盒测试法,应该仔细设计测试计划和测试过程。1.1.功能和性能与用户需求一致功能和性能与用户需求一致, ,软件可以接收;软件可以接收;2.2.功能和性能与用户需求有差距。功能和性能与用户需求有差距。31一一. .系统测试的目标:对基于计算机的系统系统测试的目标:对基于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年四川中医药高等专科学校招才引智招聘5人备考题库(上海场)及答案详解【网校专用】
- 2026云南德宏州梁河县农业农村局下属事业单位引进研究生1人备考题库含答案详解(培优a卷)
- 2026安徽马鞍山首创水务有限责任公司招聘劳务人员2人备考题库附参考答案详解(黄金题型)
- 2026福建漳州市交发工贸集团有限公司权属通畅公司市场化用工人员招聘4人备考题库含答案详解(培优b卷)
- 2026武警贵州省总队医院社会招聘7人备考题库附答案详解(培优)
- 2026广西玉林市北流市妇幼保健院招聘编外人员43人备考题库及答案详解【名师系列】
- 2026四川自贡市中医医院编外人员招聘10人备考题库及答案详解(新)
- 2026广东广州大学第二次招聘事业编制人员6人备考题库及答案详解(易错题)
- 2026广东中山市坦洲镇启乐第二幼儿园招聘1人备考题库及参考答案详解(预热题)
- 2026福建省晋江市工业园区开发建设有限公司常态化招聘项目制人员2人备考题库及参考答案详解(a卷)
- 政治湖北十一校2026届高三年级第二次联考(3.25-3.26)
- 2026江西赣州市政公用集团社会招聘39人备考题库及参考答案详解ab卷
- 2026年广东省广轻控股集团有限公司校园招聘笔试模拟试题及答案解析
- 快递员服务规范与操作流程(标准版)
- 二类医疗器械经营质量管理制度及工作程序
- 湖南省2026届高三九校联盟第二次联考语文试卷(含答案详解)
- 汽轮机润滑油系统课件
- 2026年高考数学二轮复习专题13 椭圆、双曲线与抛物线(复习讲义)(解析版)
- 南瑞集团在线测评试题
- 管道支架施工专项措施
- 设计院安全生产管理制度
评论
0/150
提交评论