收藏 分享(赏)

软件测试章节内实例.docx

上传人:bubibi 文档编号:18280605 上传时间:2023-10-26 格式:DOCX 页数:27 大小:714.05KB
下载 相关 举报
软件测试章节内实例.docx_第1页
第1页 / 共27页
软件测试章节内实例.docx_第2页
第2页 / 共27页
软件测试章节内实例.docx_第3页
第3页 / 共27页
软件测试章节内实例.docx_第4页
第4页 / 共27页
软件测试章节内实例.docx_第5页
第5页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、Chapt1:例1:要对Windows记事本程序进行测试,选取其中的一个:测试项文件菜单栏的测试测试对象记事本程序文件菜单栏 (测试用例标识10000,下同)所包含的子测试用例描述如下:-文件/新建(1001)- 文件/打开(1002)-文件/保存(1003)-文件/另存为(1004)-文件/页面设置(1005)-文件/打印(1006)-文件/退出(1007) 选取其中的一个子测试用例文件/退出(1007)作为例子,测试用例如表1-1所示。表1-1 测试用例示例字段名称描 述标识符1007测试项记事本程序,“文件”菜单栏中的“文件”|“退出”命令的功能测试测试环境要求Windows 2000

2、Professional 中文版输入标准(1) 打开记事本程序,不输入任何字符,单击“文件”|“退出”命令(2) 打开记事本程序,输入一些字符,不保存文件,单击“文件”|“退出”命令(3) 打开记事本程序,输入一些字符,保存文件,单击“文件”|“退出”命令(4) 打开一个记事本文件(*. txt),不做任何修改,单击“文件”|“退出”命令(5) 打开一个记事本文件,修改后不保存,单击“文件”|“退出”命令输出标准(1) 记事本未做修改,单击“文件”|“退出”命令,能正确地退出应用程序,无提示信息(2) 记事本做修改未保存或者另存,单击“文件”|“退出”命令,会提示“未定标题文件的文字已经改变,

3、想保存文件吗?”单击“是”,Windows将打开“保存”/“另存为”对话框,单击“否”,文件将不被保存并退出记事本程序,单击“取消”将返回记事本窗口测试用例间的关联Chapt4:等价类测试的测试运用1.准考证号码对招干考试系统“输入学生成绩”子模块设计测试用例。招干考试分三个专业,准考证号第一位为专业代号,如:1-行政专业, 2-法律专业, 3-财经专业。行政专业准考证号码为:110001111215法律专业准考证号码为:210001212006财经专业准考证号码为:310001314015准考证号码的等价类划分设计如下: 有效等价类: (1) 110001 111215 (2) 210001

4、 212006 (3) 310001 314015 无效等价类: (1) - 110000 (2) 111216 210000 (3) 212007 310000 (4) 314016 + 2.电话号码城市的电话号码由两部分组成。这两部分的名称和内容分别是:地区码:以0开头的三位或者四位数字(包括0);电话号码:以非0、非1开头的七位或者八位数字。假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例。l 划分等价类并编号,如表4-3所示。表4-3 电话号码的等价类设计输入数据有效等价类无效等价类地区码l 以0开头的3位数串l 以0开头的

5、4位数串l 以0开头的含有非数字字符的串l 以0开头的小于3位的数串l 以0开头的大于4位的数串l 以非0开头的数串电话号码l 以非0、非1开头的7位数串l 以非0、非1开头的8位数串l 以0开头的数串l 以1开头的数串l 以非0、非1开头的含有非法字符7或者8位数串l 以非0、非1开头的小于7位数串l 以非0、非1开头的大于8位数串l 为有效等价类设计测试用例,如表4-4所示。表4-4 电话号码的有效等价类测试用例设计测试数据期望结果覆盖范围010 23145678显示有效输入(1)、(8)023 2234567(1)、(7)0851 3456789显示有效输入(2)、(7)0851 231

6、45678(2)、(8)l 为每一个无效等价类至少设计一个测试用例,如表4-5所示。表4-5 电话号码的无效等价类测试用例设计测试数据期望结果覆盖范围0a34 23456789显示无效输入(3)05 23456789显示无效输入(4)01234 23456789显示无效输入(5)2341 23456789显示无效输入(6)028 01234567显示无效输入(9)028 12345678显示无效输入(10)028 qw123456显示无效输入(11)028 623456显示无效输入(12)028 886234569显示无效输入(13)3.三角形问题的等价类测试三角形问题是软件测试中最经典的一个

7、例子。输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。分析问题中给出和隐含的对输入条件的要求: 条件1:整数 条件2:三个数 条件3:非零数 条件4:正数 条件5:两边之和大于第三边 条件6:等腰 条件7:等边 如果 a 、 b 、 c 满足条件( 1 ) ( 4 ),则输出下列四种情况之一:n 如果不满足条件(5),则程序输出为“非三角形”。n 如果三条边相等即满足条件(7),则程序输出为“等边三角形”。n 如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”。n 如果三条

8、边都不相等,则程序输出为“一般三角形”。 (1)划分等价类并编号,如表4-6所示。表4-6 三角形问题的等价类输 入 条 件输入3个整数有效等价类无效等价类1. 整数l a为非整数l b为非整数l c为非整数l a和b为非整数l b和c为非整数l a和c为非整数l a、b、c为非整数2. 三个数l 只输入al 只输入bl 只输入cl 只输入a、bl 只输入b、cl 只输入a、cl 输入三个以上3. 非零数l a为0l b为0l c为0l a和b为0l b和c为0l a和c为0l a、b、c为04. 正数l a0l b0l c0l a0且b0l a0且c0l b0且c0l a0且b0且cc6.

9、b+ca7. a+cbl a+b=cl a+bcl b+c=al b+cal a+c=bl a+cb等腰三角形8. a=b但ac9. b=c但ab10. a=c但ab等边三角形11. a=b=c(2)为有效等价类设计测试用例,如表4-7所示。表4-7 三角形问题的有效等价类测试用例设计输入a输入b输入c预期输出覆盖范围345一般三角形17;445等腰三角形17;8455等腰三角形17;9545等腰三角形17;10444等边三角形17;11(3)为每一个无效等价类至少设计一个测试用例,如表4-8所示。表4-8 三角形问题的无效等价类测试用例设计4. 保险公司计算保费费率的程序某保险公司的人寿保险

10、的保费计算方式为:投保额保险费率其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表4-9所示。表4-9 保险公司计算保费费率的规则年龄性别婚姻抚养人数20394059其它MF已婚未婚1人扣0.5点最多扣3点(四舍五入取整)6点4点2点5点3点3点5点分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。1. 年龄:一位或两位非零整数,值的有效范围为199。2. 性别:一位英文字符,只能取值M或F。3. 婚姻:字符,只能取值已婚或未婚。4.

11、 抚养人数:空白或一位非零整数(19)5. 点数:一位或两位非零整数,值的范围为199根据表4-10中所示的等价类表,设计能覆盖所有等价类的测试用例如表4-11所示。表4-10 保险公司人寿保险保费计算程序的等价类表输入条件有效等价类编号无效等价类编号年龄2039岁14059岁2119岁6099岁3小于112大于9913性别单个英文字符4非英文字符14非单个英文字符15M5除M和F之外的其它单个字符16F6婚姻已婚7除已婚和未婚之外的其它字符17未婚8抚养人数空白9除空白和数字之外的其它字符1816人10小于11969人11大于920表4-11保险公司人寿保险保费计算程序的等价类测试用例测试用

12、例编号输入数据预期输出年龄性别婚姻抚养人数保险费率127F未婚空白0.6%250M已婚20.6%370F已婚70.1%40M未婚空白无法推算5100F已婚3无法推算699男已婚4无法推算71Child未婚空白无法推算845N已婚5无法推算938F离婚1无法推算1062M已婚没有无法推算1118F未婚0无法推算1240M未婚10无法推算边界值分析法的测试运用例1:有两个输入变量x1(ax1b)和x2(cx2d)的程序P的边界值分析测试用例如下: , , , , , , , , 如图 4- 4 所示: 图 4-4 边界值分析测试用例程序P的健壮性测试如下图4-5所示:图4-5 健壮性边界值测试用例

13、对于有两个变量的程序P1,其最坏情况测试的用例如图4-6所示。图4-6 最坏情况测试用例显而易见,最坏情况测试将更加彻底,因为边界值分析测试是最坏情况测试用例的子集。进行最坏情况测试意味着更多的测试工作量。n 个变量的函数,其最坏情况测试将会产生5n个测试用例,而边界值分析只会产生 4n+1个测试用例。由此,可以推知健壮性最坏情况测试是对最坏情况测试的扩展,这种测试使用健壮性测试的七个元素集合的笛卡尔积,将会产生7n个测试用例。图4-7 给出了两个变量函数的最坏情况的测试用例。图4-7 健壮性最坏情况测试用例例2:有二元函数f(x,y),其中x1,12,y1,31。 则采用边界值分析法设计的测

14、试用例是: , , , , , , , , 由此,可以得出推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。例 3 标准化考试成绩统计的测试用例:现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如表4-15所示,所有记录分为3 组:表4-15 输入条件标题:这一组只有一个记录,其内容为输出成绩报告的名字。试卷各题标准答案记录:每个记录均在第80 个字符处标以数字2。该组的第一个记录的第1 至第3 个字符为题目编号(取值为1 -999)。第10 至第59 个字符给出第1 至第50题的答案(每个合法字

15、符表示一个答案)。该组的第2,第3个记录相应为第51 至第100,第101 至第150,题的答案。每个学生的答卷描述:该组中每个记录的第80 个字符均为数字3。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10 至第59 字符列出的是甲所做的第1 至第50 题的答案。若试题数超过50,则第2,第3记录分别给出他的第51 至第100,第101 至第150题的解答。然后是学生乙的答卷记录。学生人数不超过200,试题数不超过999。程序的输出有4个报告:a)按学号排列的成绩单,列出每个学生的成绩、名次。b)按学生成绩排序的成绩单。c)平均分数及标准偏差的报告。d)

16、试题分析报告。按试题号排序,列出各题学生答对的百分比。解答:分别考虑输入条件和输出条件,以及边界条件。如表4-16所示的输入条件及相应的测试用例。表 4-16 输入条件测试用例输出条件及相应的测试用例如表4-17所示。表4-17 输出条件测试用例例4 NextDate函数的边界值分析测试用例NextDate问题也是软件测试中的一个经典问题。在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1mouth12和1day31,并设定变量year的取值范围为1912year2050 ,如表4-18所示。表 4-18 NextDate函数测试用例 测试用例mouthdayyear

17、预期输出Test 1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出1312001.6.22001.6.32001.7.1输入日期超界day超出131Test14Test15Test16Test17Test

18、18Test19-112111213151515151515200120012001200120012001Mouth超出1122001.1.162001.2.162001.11.162001.12.16Mouth超出112例 5 加法器边界值测试用例设计加法器程序计算两个1100之间整数的和。对于加法器程序,根据输入要求可将输入空间划分为三个等价类,即1个有效等价类(1100之间),两个无效等价类(100)。但这种等价类划分不是很完善,我们只考虑了输入数据的取值范围,而没有考虑输入数据的类型,我们认为输入应为整数,但用户输入什么都有可能。测试用例如表4-19所示表 4-19 加法器程序测试用

19、例测试用例输入数据预期输出加数1加数2和Test115051Test 225052Test 39950149Test 410050150Test 550151Test 650252Test 75099149Test 850100150Test 9050提示“请输入1100间的整数”Test 10500提示“请输入1100间的整数”Test1110150提示“请输入1100间的整数”Test1250101提示“请输入1100间的整数”Test130.250提示“请输入1100间的整数”Test14500.2提示“请输入1100间的整数”Test15A50提示“请输入1100间的整数”Test16

20、50A提示“请输入1100间的整数”Test1750提示“请输入1100间的整数”Test1850提示“请输入1100间的整数”Test19空格50提示“请输入1100间的整数”Test2050空格提示“请输入1100间的整数”Test2150提示“请输入1100间的整数”Test2250提示“请输入1100间的整数”例6 三角形问题的边界值分析测试用例设计在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设置为1, 100 。如表4-20所示。说明:如果程序规格说明中没有显式地给出边界值,则可以在设计测试用例前先设定取值的下限值和上限值。表

21、 4-20 三角形问题测试用例测试用例abc预期输出Test 1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等边三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形决策表的测试运用例1:假设中国某航空公司规定:中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影。中国去非欧美的国外航线都有

22、食物供应,只有商务舱可以播放电影。中国国内的航班的商务舱有食物供应,但是不可以播放电影。中国国内的航班的经济舱除非飞行时间大于2小时就有食物供应,但是不可以播放电影。这样,条件有:1航线:国外的欧美,国外非欧美,国内;2舱位:商务,经济;3飞行时间:小于2还是大于等于2。行为有:1播放电影;2食物供应。形成的判定表如表4-22所示。表4-22 中国某航空公司决策表设计规则1规则2规则3规则4规则5规则6条件航线是国外欧美的YNNNNN航线是国外非欧美的NYYNNN航线是国内的NNNYYY舱位是商务舱-YNYNN飞行时间大于等于2小时-YN行为食物供应XXXXX播放电影XX这样可以写出6个测试用

23、例来覆盖到这些场景了。注意这些测试用例完全是根据需求定义而来的。对于测试用例1来说,需求说明认为商务舱还是经济舱是不能影响后面的行为的,但是对于测试人员来说,其实还是要验证的。所以可能需要加测试用例。这就更说明了决策表只是一种理清思路的工具,还是要结合其它的测试技术来生成额外的测试用例。例2:NextDate函数的精简决策表M1月份: 每月有30天M2月份: 每月有31天, 12月除外M4月份:12月M3月份: 2月 D1日期:1=日期0 and b0) c = c / a;if (a1 or c1) c = c + 1;c = b + c上面程序的程序流程图如下: (a) (b) 图5-11

24、 例题的程序流程图 由这个流程图(b)可以看出,该程序模块有4条不同的路径:P1:(1-2-4) P2:(1-2-5)P3:(1-3-4) P4:(1-3-5)将里面的判定条件和过程记录如下:条件Ma0 and b0条件N=a1 or c1这样,程序的4条不同路径可以表示为:P1:(1-2-4)=M and N P2:(1-2-5)=M and NP3:(1-3-4)=M and N P4:(1-3-5)=M and N1. 基本思想:设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次。看到上面的例题,P1包含了所有可执行语句,按照语句覆盖的测试用例设计原则,可以使用P1来设计

25、测试用例,如下。令a=2,b=1,c=6,此时满足条件Ma0 and b0和条件N=a1 or c1(注:此时c=c/a=3),这样,测试用例的输入a=2,b=1,c=6和对应的输出a=2,b=1,c=5覆盖路径P1。2. 语句覆盖率 = 至少被执行一次的语句数量 / 可执行的语句总数 判定覆盖(Decision Coverage, DC)1. 基本思想:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支何取假分支至少经历一次,即判断真假值均曾被满足。按照判定覆盖的基本思路,可以这样针对上面提到的测试的用例进行设计,如表5-1所示,p1和p4可以作为测试用例,其中p1作为取真的路径,

26、p4作为取反的路径。表5-1判定覆盖测试用例设计(1)测试用例判定M的取值判定N的取值覆盖路径输入:a=2,b=-1,c=6输出: a=2,b=-1,c=5TTP1(1-2-4)输入:a=-1,b=-2,c=-3输出: a=-1,b=-2,c=-5FFP4(1-3-5)也可以让测试用例测试路径P2和P3。相应的两组输入数据表5-2所示。表5-2 判定覆盖测试用例设计(2)测试用例判定M的取值判定N的取值覆盖路径输入:a=1,b=1,c=-3输出: a=1,b=1,c=-2TFP2(1-2-5)输入:a=-1,b=2,c=3输出: a=-1,b=2,c=6FTP3(1-3-4)2. 判定覆盖率

27、= 判定结果被评价的次数 / 判定结果的总数条件覆盖(Condition Coverage, CC)1. 基本思想:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。对于M:a0取真时T1,取假时F1; b0取真时T2,取假时F2;对于N:a1取真时T3,取假时F3; c1取真时T4,取假时F4。根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表5-3所示:表5-3条件覆盖测试用例设计测试用例取值条件具体取值条件覆盖路径输入:a=2,b=-1,c=-2输出: a=2,b=-1,c=-3T1,F2, T3, F4a0,b1,c=1P3(1-3-4)输入:a=

28、-1,b=2,c=3输出: a=-1,b=2,c=6F1, T2, F3,T4a0 ,a1P3(1-3-4)在这个例子中,要涵盖所有的条件组合,保证每个条件的取真取假都能至少运行一次的测试用例设计还有好几种,这里不再描述。2. 条件覆盖率 = 条件操作数值至少被评价一次的数量 / 条件操作数值的总数判定条件覆盖(Decision/Condition Coverage, D/CC)1. 基本思想:设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。按照这种思想,结合前面的方法思路,在前面的例子中,应该至少保证判定条件M和N各取真/假一次,同时要

29、保证8个条件取值至少执行一次,如表5-4所示:表5-4判定-条件覆盖测试用例设计测试用例取值条件具体取值条件覆盖路径输入:a=2,b=1,c=6输出: a=2,b=1,c=5T1,T2, T3, T4a0,b0,a1,c1P1(1-2-4)输入:a=-1,b=-2,c=-3输出: a=-1,b=-2,c=-5F1, F2, F3,F4a=0,b=0,a=1,c0,b02T1,F2/Ma0,b=03F1,T2/Ma04F1,F2/Ma= 0,b 1,c16T3,F4Na1,c=17F3,T4Na18F3,F4/Na=1,c=1针对以上8种条件组合,来设计所有能覆盖这些组合的测试用例,如表5-6所

30、示: 表5-6 条件组合测试用例设计测试用例覆盖条件覆盖路径覆盖组合输入:a=2,b=1,c=6输出: a=2,b=1,c=5T1,T2, T3, T4P1(1-2-4)1,5输入:a=2,b=-1,c=-2输出: a=2,b=-1,c=-3T1,F2, T3, F4P3(1-3-4)2,6输入:a=-1,b=2,c=3输出: a=-1,b=2,c=6F1, T2, F3,T4P3(1-3-4)3,7输入:a=-1,b=-2,c=-3输出: a=-1,b=-2,c=-5F1, F2, F3,F4P4(1-3-5)4,82. 条件组合覆盖率=条件操作数值至少被评价一次的数量 / 条件操作数值的所有组合总数 路径覆盖 (Path Coverage PC)前面提到的几种逻辑覆盖都未涉及到路径的覆盖。事实上,只有当程序中的每一条路径都受到了检验,才能使程序受到全面检验。路径覆盖的目的就是要使设计的测试用例能覆盖被测程序中所有可能的路径。1. 基本思想:设计所有的测试用例,来覆盖程序中的所有可能的执行路径,如表5-7所示:表5-7 路径覆盖测试用例设计测试用例

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 旅游攻略 > 广东广西

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报