《高效设计测试用例教学课件电子教案.pptx》由会员分享,可在线阅读,更多相关《高效设计测试用例教学课件电子教案.pptx(122页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 高效设计测试用例软件测试技术董皊目录内容第1章 软件测试概述第2章 软件测试流程和过程模型第3章 软件测试计划第4章 测试用例概述第6章 软件缺陷报告第7章 软件测试报告第8章 易用性测试第9章 Web测试第10章 测试人员的职业能力和技术支持第5章 高效设计测试用例5.1边界值分析5.2等价类5.3判定表法5.4因果图法5.5场景法5.6正交实验法5.7大纲法5.8错误推测法黑盒测试的基本思路黑盒测试是软件测试技术最重要的基本方法之一,在各类测试中都是必备的测试技术。在第1章中介绍过,黑盒测试又称为“功能测试”或“数据驱动测试”,它将软件看成是一个黑盒子,不考虑程序或者系统内部结构和
2、内部特性,检查程序的功能是否按照需求规格说明书的规定正常运行,程序是否能适当地接收输入数据而产生正确的输出结果。5.1等价类划分法测试中的疑问做计算器程序的加法测试时,测试了1+1,1+2,1+3和1+4之后,还有必要测试1+5和1+6吗?字长为32位的计算机上运行,随意取2个整数相加,232x232=264 ,测试一组需要1毫秒,一天工作24小时,一年工作365天,大概需要5亿年。如果不测,能否放心地认为它们是正确的? 为了解决这个难题,又保证我们设计出来的测试用例具有完整性和代表性,我们引入等价类划分法,它将不能穷举的测试过程进行区域划分,减少测试的数量,从而使测试过程合理化。5.1.1等
3、价类划分法概述基本思路:把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值:如果某一类中的一个数据发现了错误,这一等价类中的其他数据也能发现同样的错误;反之,如果某一类中的一个数据没有发现错误,则这一类中的其他数据也不会查出错误。有效等价类指对软件规格说明来说,合理、有意义的输入数据等构成的集合,利用有效等价类可以检验程序是否满足需求规格说明书所规定的功能和性能。“标准等价类测试”。无效等价类指不满足程序输入要求或者无效的输入数据所构成的集合,利用无效等价类可以检验程序异常情况的处理。“健壮性等价类测试”。5.1
4、.1等价类划分法概述划分原则:1)如果规定了输入域的取值范围或者个数,则可以确定一个有效等价类和2个无效等价类。如:60=x=1002)如果规定了输入值的集合,不是一个范围,则可以确定一个有效等价类和一个无效等价类。如:求x的平方根1个有效等价类:60=x=01个无效等价类:x05.1.1等价类划分法概述划分原则:3)如果规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可以每一个值确定一个有效等价类,然后再选择一个无效等价类。如:X=2,3,4,54)如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。如:程序要求输入一个5位数字n个有效等价类:2、3
5、、4、51个无效等价类:1或者101个有效等价类:5位数字n个无效等价类:不是5位(大于或小于5位);5位非数字(字符、英文、中文)5.1.1等价类划分法概述确定等价类的原则5)如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类。5.1.1等价类划分法概述等价类划分法基本步骤第三步第一步第二步分析程序的规格说明,划分等价类有效等价类无效等价类列出等价类表一一列出输入条件中可能的组合输入情况 选取合适的数据,编写测试用例5.1.2等价类划分法案例【案例1】:某网站用户申请注册时,要求必须输入“用户名”、“密码”及“确认密码”。对每一项输入有如下要求:用户名:
6、3-12位,只能使用英文字母、数字、中划线-、下划线_这几个字符的组合,并且首字符必须为字母或数字;密码:6-20位,只能使用英文字母、数字、中划线-、下划线_的组合;确认密码:与密码必须一致,并且区分大小写。请使用等价类划分法设计测试用例【案例1】:第一步:分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类)【案例1】:第二步:一一列出条件中可能的输入组合情况,得出等价类组合表:用户名正确、密码正确,确认密码正确用户名无效用户名无效、密码正确、确认密码正确用户名正确、密码无效密码无效、确认密码正确用户名正确、密码正确、确认密码确认密码无效无效【案例1】:【案例1】:第三步:选择测试
7、数据,编写测试用例【案例2】某程序规定:输入三个整数a、b、c分别作为三角形的三边长度,通过三条边长度来判断三角形的类型分别为:一般三角形、等腰三角形或等边三角形,并产生对应的输出。请运用等价类划分法来设计该题的测试用例。【案例2】第一步:分析程序规格,列出等价类表(根据题目,得出程序输入值的显式和隐式要求以及输出值的等价类)显式要求:整数、三个数、正数隐式要求:两边之和大于第三边、三边均不相等、两边相等但不等于第三边、三边相等。输出值的等价类为:不构成三角形、一般三角形、等腰三角形、等边三角形【案例2】第2步:一一列出条件中可能的组合情况(1):输出一般三角形(2)+/:输出等腰三角形(3)
8、+:输出等边三角形(4)37:输出非三角形【案例2】第3步:选择测试数据,编写测试用例课堂练习有一个用户反馈功能模块,3个输入框的要求为:“问题标题”允许输入不超过20个字符,不允许为空;“问题描述”允许输入不超过500个字符,不允许为空;5.1.3 等价类划分法总结和应用场景在等价类划分法中,每一类的代表性数据(也就是被选为测试用例的测试数据),在测试中的作用等价于这一类中的其他值,如案例1中的密码“test_123”和“abcd_123”就是等效的,他们都属于有效的密码数据。也就是说如果等价类中的一个测试数据能捕获一个缺陷,那么该等价类中的其他测试数据也能捕获该缺陷;如果等价类中的一个测试
9、数据不能捕获缺陷,那么选择该等价类中的其他测试数据也不能捕获缺陷。只要有数据输入的地方,就可以采用等价类划分法,它可以从无限多的数据中选取少数代表性的数据进行测试以减少测试人员的工作量。注意:在测试用例中,可以先测试全部输入条件的有效等价类组合,再每次只测试一个输入条件的无效等价类情况。无效等价类在开始测试的时候不能一起组合,避免“屏蔽”现象发生(前面输入条件的错误提示一出现,后面控件的错误提示就不出现了)。然后可以再适当考虑无效等价类的组合,验证软件处理极端数据的能力。5.2边界值分析法由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上,因此针对各种边界情况设计测试用例,可以查出
10、更多的错误。5.2.1边界值分析法的概述边界值分析法的测试用例来自于等价类的边界,是等价类划分法的补充。不是选取等价类中的任意值,而是选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据。一些常见的边界:对int类型的整数而言,-215和215-1是它的边界,也就是-32768和32767是边界屏幕上光标最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第0次、第1次和倒数第2次、最后一次5.2.1边界值分析法的概述原则(1)如果输入/输出条件规定了值的范围,则应该取刚达到这个范围的边界的值,刚刚大于最小值以及刚刚小于最大值的值作为测试输入数据。假设有一个函数f(x),唯
11、一的输入参数x的取值范围为1=x=31(2)如果有多个输入/输出变量,可用边界值+正常值的组合模式,即其中一个变量取边界值,其他变量取正常值。假设有一个二元函数f(x、y),取值范围为:1=x=31,1=y=12。标准边界值为:1、2、30、31健壮性边界值为:0、1、2、30、31、32X的健壮性边界值为0、1、2、30、31、32Y的健壮性边界值为0、1、2、11、12、13组合边界值为:、5.2.1边界值分析法的概述原则(3)同样的,对于有3个输入条件的程序,边界值法的运用也如此。假设有一个三元函数f(x,y,z),有3个输入变量:x,y,z。它们的取值范围分别为1=x=31,1=y=1
12、2,1949=z=2050。X的健壮性边界值为0、1、2、30、31、32Y的健壮性边界值为0、1、2、11、12、13Z的健壮性边界值为1948、1949、1950、2000、2049、2050、2051组合边界值为:、5.2.1 边界值分析法的概述通常,1个参数如果有上下界,就会有6个边界取值,那么对于有n个输入变量的程序,健壮性测试时采用边界值分析法会产生6n+1个测试数据,也就是有6n+1条测试用例。【案例1】有一个计算长方形体积的程序要求输入长、宽、高,分别用x、y、z来表示,取值均为1100测试用例测试用例xyz预期输出预期输出Test case150500z超出范围Test ca
13、se2505012 500Test case3505025 000Test case4505050125 000Test case5505099247 500Test case65050100250 000Test case75050101z超出范围Test case850050y超出范围Test case9501502 500Test case10502505 000Test case11509950125 000Test case125010050247 500Test case135010150y超出范围Test case1405050 x超出范围Test case15150502 50
14、0Test case16250505 000Test case17995050125 000Test case181005050247 500Test case191015050 x超出范围【案例2】有一个用户反馈功能模块,3个输入框的要求为:“问题标题”允许输入不超过20个字符,不允许为空;“问题描述”允许输入不超过500个字符,不允许为空;不考虑其他测试点,仅使用边界值分析法设计测试用例。【案例2】“问题标题”输入字符位数的边界取值应该为0、1、2、19、20、21“手机号码”位数的边界取值为10、11、12;“问题描述”输入字符位数的边界取值为0、1、2、499、500、501【案例2】
15、用例编号用例编号问题标题问题标题手机号码手机号码问题描述问题描述预期结果预期结果用户反馈用户反馈-001为空输入11位正确手机号输入20个字符问题提交失败用户反馈用户反馈-002输入1个字符输入11位正确手机号输入20个字符问题提交成功用户反馈用户反馈-003输入2个字符输入11位正确手机号输入20个字符问题提交成功用户反馈用户反馈-004输入10个字符输入11位正确手机号输入20个字符问题提交成功用户反馈用户反馈-005输入19个字符输入11位正确手机号输入20个字符问题提交成功用户反馈用户反馈-006输入20个字符输入11位正确手机号输入20个字符问题提交成功用户反馈用户反馈-007输入2
16、1个字符输入11位正确手机号输入20个字符问题提交失败用户反馈用户反馈-008输入10个字符输入10位手机号输入20个字符问题提交失败用户反馈用户反馈-009输入10个字符输入12位手机号输入20个字符问题提交失败用户反馈用户反馈-010输入10个字符输入11位正确手机号为空问题提交失败用户反馈用户反馈-011输入10个字符输入11位正确手机号输入1个字符问题提交成功用户反馈用户反馈-012输入10个字符输入11位正确手机号输入2个字符问题提交成功用户反馈用户反馈-013输入10个字符输入11位正确手机号输入499个字符问题提交成功用户反馈用户反馈-014输入10个字符输入11位正确手机号输入
17、500个字符问题提交成功用户反馈用户反馈-015输入10个字符输入11位正确手机号输入501个字符问题提交失败5.2.3 边界值分析法总结和应用场景程序中的语句编写错误,不管是由于需求界定不准确、设计不严密、程序书写手误或者其他原因造成的,都可以依据边界值分析法选出的测试点把它们找出来。边界值分析法多应用于以下几个场景中:(1)输入(输出)条件规定了取值范围或值的个数。(2)程序规格说明书中提到的输入或输出是一个有序的集合。(3)可以通过分析找出程序的边界边界值一般和等价类搭配应用,边界值数据本质上可以归为有效和无效的范畴,但从测试技术角度来讲,需要单独拿出来测试。边界值分析法和等价类划分法之
18、间最大的区别就是,边界值分析考查正处于等价划分边界或在边界附近的状态。5.3判定表法基本思路:对多个条件的组合进行分析,从而设计测试用例来覆盖各种组合,是分析和表达多逻辑条件下执行不同操作的情况下的工具。是一种表格状的图形工具,适用于处理判断条件较多,各条件又相互组合、有多种决策方案的情况。5.3.1判定表法的概念条件桩:condition stub,列出所有条件的名称,先后顺序无关紧要动作桩:Action stub,列出了问题规定可能采取的操作。先后顺序没有约束条件项:condition entry,列出针对条件的具体取值。动作项:Action entry,列出在条件项的各种取值情况下应该采
19、取的动作规则:rules,任何一个条件组合的特定取值及其要执行的相应操作。在判定表中贯穿条件项和动作项的列就是一条规则。5.3.1判定表法的概念建立决策表的步骤:(1)分析需求,列出所有的条件桩和条件项(2)分析需求,列出所有的动作桩和动作项(3)根据规则,设计初始判定表(4)简化判定表、合并相似规则,设计测试用例注意:简化就是把有两条或多条具有相同动作、且其条件项之间存在着极为相似的关系的规则合并。【案例1】超市中如果某产品销售好,并且库存低,则继续销售并增加该产品的进货;如果该产品销售好,但库存不低,则继续销售;如果该产品销售不好,但库存低,则该产品下架;如果该产品销售不好,并且库存不低如
20、果有空货架,则继续销售;如果没有空货架,则该产品下架。【案例1】步骤1:分析需求,列出所有的条件桩和条件项条件桩条件桩条件项条件项C1:销售好?:销售好?True(T)或False(F)C2:库存低?:库存低?True(T)或False(F)C3:有空货架?:有空货架?True(T)或False(F)【案例1】步骤2:分析需求,列出所有的条件组合所产生的动作A1:增加进货A2:继续销售A3:产品下架【案例1】步骤3:根据规则,设计初始判定表对于本题有3个条件(销售、库存、有空货架),每个条件可以有2个取值,所以有23规则规则规则选项选项12345678条件条件C1:销售好TTTTFFFFC2:
21、库存低TTFFTTFFC3:有空货架TFTFTFTF动作动作A1:增加进货A2:继续销售A3:产品下架C1(T)C2(T) C2(F)C3(T) C3(F)C1(F)C2(T) C2(F)C3(T) C3(F)【案例1】步骤4:简化判定表规则规则选项选项1、23、45、678条件条件C1:销售好TTFFFC2:库存低TFTFFC3:有空货架-TF动作动作A1:增加进货A2:继续销售A3:产品下架【案例2】有一个“计算房产基础中介费”的程序,规定中介费用政策如下:如果房屋销售总价房屋销售总价少于10万元,那么基础佣金基础佣金将是销售额的2%;如果房屋销售总价大于10万元,但少于100万元,那么基
22、础佣金将是销售额的1.5%,外加1000元;如果房屋销售总价大于100万元,那么基础佣金将是房屋销售总价的1%,外加1500元;另外房屋销售单价销售单价和客户性质对中介费也有影响如果单价低于1万/m2,则外加基础佣金的5%。如果是老客户,则减免外加基础佣金;如果单价在1万/m2到2万/m2,则外加佣金的2.5%,若是老顾客,则减免外加基础佣金若单价在2万/m2以上,则减免外加基础佣金,若是老顾客,则减去基础佣金的5%【案例2】步骤1:分析各种输入情况,列出条件桩和条件项:条件桩条件桩条件项条件项C1:房屋销售总价:房屋销售总价S1:1=Sale100 000S2:100 000=Sale=1
23、000 000C2:房屋销售单价:房屋销售单价P1:Price10 000P2:10 000=Price=20 000C3:客户性质:客户性质B1:新客户B2:老客户【案例2】步骤2:分析程序可能采取的动作A1:基础中介费为销售总价的2%。A2:基础中介费为(销售总价的1.5%+1 000)元。A3:基础中介费为(销售总价的1%+1500)元。A4:外加基础中介费的5%。A5:外加基础中介费的2.5%。A6:减去基础中介费的5%。【案例2】步骤3:根据以上分析的步骤,画出判定表 规则选项123456789条件C1:销售总价S1S1S1S1S1S1S2S2S2C2:销售单价P1P1P2P2P3P
24、3P1P1P2C3:客户性质B1B2B1B2B1B2B1B2B1动作A1A2A3A4A5A6 规则选项101112131415161718条件C1:销售总价S2S2S2S3S3S3S3S3S3C2:销售单价P2P3P4P1P1P2P2P3P3C3:客户性质B2B1B2B1B2B1B2B1B2动作A1A2A3A4A5A6【案例2】步骤4:根据以上判定表,设计测试用例测试用例测试用例销售总价(元)销售总价(元)销售单价(元)销售单价(元)客户性质客户性质预期输出预期输出TestCase150 0005 000新客户1 050TestCase250 0005 000老客户1 000TestCase3
25、50 00015 000新客户1 025TestCase450 00015 000老客户1 000TestCase550 00025 000新客户1 000TestCase650 00025 000老客户950TestCase7500 0005 000新客户8 925TestCase8500 0005 000老客户8 500TestCase9500 00015 000新客户8 712.5TestCase10500 00015 000老客户8 500TestCase11500 00025 000新客户8 500TestCase12500 00025 000老客户8 075TestCase131
26、500 0005 000新客户17 325TestCase141 500 0005 000老客户16 500TestCase151 500 00015 000新客户16 912.5TestCase161 500 00015 000老客户16 500TestCase171 500 00025 000新客户16 500TestCase181 500 00025 000老客户15 675【案例3】采用判定表法对NextData函数设计测试用例:NextDate(int month,int day,int year)函数规定:输入三个整数month、day和year,函数的输出为输入日期后一天的日期。
27、例如,输入为2018年1月13日,则函数的输出为2018年1月14日,year满足1920到2050年之间。【案例3】步骤1:分析条件桩和条件项 M1月份: 每月有30天M2月份: 每月有31天, 12月除外M3月份: 2月M4月份:12月D1日期:1=日期=3的非2幂次方的自然数 除2水平标准表的试验号(4、8、16)外,所有能被4整除的正整数都是二水平非标准表的试验号 任一非标准二水平表的列数c总比试验号小1,即c+1=a混合正交表L3(31x24)、L12(61x23)、L8(41x24)、L16(42x29)、L16(43x26)L16(42x29)、L16(43x26)、L16(44
28、x23)、L16(81x28)、L16(41x212)L18(21x37)、L18(61x36)、L20(51x28)、L20(10 x22)、L24(31x4x24)无规律可寻正交法的正交性整齐可比性:每列中不同数字出现的次数相等;均衡分散性:在任意两列中,将同一行的2个数字组成一个有序实数对,则每种有序实数对出现的次数相等。 正交表各列的地位是平等的,各列间可以互换,称列间置换; 正交表各行之间也可以互相置换,称行间置换; 正交表中同一列的水平数字也可以互相置换,称为水平置换正交法设计步骤确定有哪些因素?确定每个因素都有哪几个水平?选择一个合适的正交表把变量的值映射到表中加上认为可疑且没有
29、在表中出现的组合把每一行的各因素水平的组合作为一个测试用例【案例1】有一个字符属性设置的程序,界面如下,请使用正交实验法编写测试用例。字体:仿宋、楷体、华文彩云字符样式:粗体、斜体、下划线字体颜色:红色、黑色、绿色字号:20号、30号、40号步骤1:确定因素(字体、字符样式、颜色、字号),因素=4;步骤2:确定水平(每一个因素都有3个水平),水平=3;步骤3:选择合适的正交表;步骤4:把变量的值映射到表中列号列号1234试验号试验号111112122231333421235223162312731328321393321列号列号1- -字体字体2- -字符样式字符样式 3- -颜色颜色4- -
30、字号字号试验号试验号1仿宋粗体红色20号2仿宋斜体绿色30号3仿宋下划线蓝色40号4楷体粗体绿色40号5楷体斜体蓝色20号6楷体下划线红色30号7华文彩云粗体蓝色30号8华文彩云斜体红色40号9华文彩云下划线绿色20号步骤5:加上可疑的测试用例步骤6:根据映射好的正交表编写测试用例(每一行表示一条测试用例)编号编号操作步骤(加测试数据)操作步骤(加测试数据)预期结果预期结果TC-011.在文本框输入“软件测试”,设置字体为“仿宋”,字符样式为“粗体”,颜色为“红色”,字号为“20号”;2.然后点击“确定”按钮。 字体正确设置【案例2】题目:114查询界面中有5个元素,请对其设计测试用例。步骤1
31、:分析因素:音形码、拼音码、路名码、行业类别、特征码步骤2:确定水平:填或不填步骤3:选择合适的正交表列号列号1234567试验号试验号1111111121112222312211224122221152121212621221217221122182212112步骤4:去掉多余的变量(列),并把变量的值映射到表中列号列号12345试验号111111211122312211412222521212621221722112822121列号列号音形码音形码拼音码拼音码路名码路名码行业码行业码特征码特征码试验号1不填不填不填不填不填2不填不填不填填填3不填填填不填不填4不填填填填填5填不填填不填填6
32、填不填填填不填7填填不填不填填8填填不填填不填步骤5:加上可疑的测试用例列号列号音形码音形码拼音码拼音码路名码路名码行业码行业码特征码特征码试验号1填不填不填不填不填2不填填不填不填不填3不填不填填不填不填4不填不填不填填5不填不填不填不填填步骤6:得出测试用例用例编号用例编号操作步骤描述操作步骤描述预期结果预期结果TC-001音形码填写、拼音码填写、路名码填写、行业码填写、特征码地填写正确显示查询结果TC-002音形码填写、拼音码填写、路名码填写、行业码不填、特征码地填写正确显示查询结果TC-003音形码填写、拼音码不填、路名码不填、行业码填写、特征码地填写正确显示查询结果TC-004音形码
33、填写、拼音码不填、路名码不填、行业码不填、特征码地不填正确显示查询结果TC-005音形码不填、拼音码填写、路名码不填、行业码填写、特征码地不填正确显示查询结果TC-006音形码不填、拼音码填写、路名码不填、行业码不填、特征码地填写正确显示查询结果TC-007音形码不填、拼音码不填、路名码填写、行业码填写、特征码地不填正确显示查询结果TC-008音形码不填、拼音码不填、路名码填写、行业码不填、特征码地填写正确显示查询结果TC-009音形码填写、拼音码不填、路名码不填、行业码不填、特征码地不填正确显示查询结果TC-010音形码不填、拼音码填写、路名码不填、行业码不填、特征码地不填正确显示查询结果T
34、C-011音形码不填、拼音码不填、路名码填写、行业码不填、特征码地不填正确显示查询结果TC-012音形码不填、拼音码不填、路名码不填、行业码填写、特征码地不填正确显示查询结果TC-013音形码不填、拼音码不填、路名码不填、行业码不填、特征码地填写正确显示查询结果小结正交实验法能够使用最少的测试过程获得最大的测试覆盖率。目前常见的正交表数量有限。是学习一种均匀选取测试数据的测试思想。5.6 场景法输入正确的账号和密码以及验证码后点击“登录”按钮,程序能正常登录;不输入账号、密码和验证码,直接点击“登录”按钮,程序给出错误提示;输入正确的账号和验证码,错误的密码,点击“登录”按钮,程序给出错误提示
35、;输入正确的账号和验证码,不输入密码,点击“登录”按钮,程序给出错误提示;不输入账号,输入正确的密码和验证码,点击“登录”按钮,程序给出错误提示;场景法的概念场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。Rational公司,在RUP2000中文版中有详尽的解释和应用。基本思想基本流:也叫有效流或正确流,主要是模拟正确的业务操作过程的情景备选流:无效流或错误流,主要是模拟错误的业务操作过程的情景。组建场景场景 1 基本流场景 2 基本流 备选流 1场景 3 基本流 备选流 1 备选流 2场景 4 基本流 备选流 3场景 5 基本流 备选流 3 备选流 1场景 6 基本流 备选
36、流 3 备选流 1 备选流 2场景 7 基本流 备选流 4场景 8 基本流 备选流 3 备选流 4(备注:为方便,只考虑备选流3和备选流1循环执行一次的情况。)识别基本流和备选流的原则一个业务只存在一个基本流基本流只有一个起点,一个终点基本流是主流,备选流是支流备选流可以起始于基本流,也可以起始于其他的备选流备选流的终点,可以是一个流程出口,也可以是回到基本流,还可以是汇入其它的备选流。如果在流程图中出现了两个不相上下的基本流,一般需要分开对待。场景法基本步骤根据需求说明,分析出程序的基本流及各项备选流根据基本流和各项备选流生成不同的场景对每一个场景生成相应的测试矩阵生成测试用例,去掉多余的测
37、试用例,并确定测试数据值。【案例1】根据某公共图书管理系统中的一个用例图和用例规约表,请使用场景法设计测试用例。第1步:根据需求说明,分析出程序的基本流和各项备选流下表是基本流程表参与者动作参与者动作系统动作系统动作1.卡办理人员在注册界面中录入读者的登记信息卡办理人员在注册界面中录入读者的登记信息2.系统对录入信息进行有效性检验3.系统验证读者注册证件号具有唯一性4.卡办理人员录入借阅卡卡号,并收取押金,确认信卡办理人员录入借阅卡卡号,并收取押金,确认信息提交息提交5.系统验证卡号的有效性6.系统向读者信息表中增加一条读者信息,并将借阅卡卡号与读者进行对应后显示成功界面7.卡办理人员将借阅卡
38、和押金收据交于读者卡办理人员将借阅卡和押金收据交于读者分支流程有:2a.系统检查录入信息存在问题,则提示用户相应信息,系统返回到注册界面3a.系统发现读者有效证件号已经存在于已注册的读者信息中,则提示用户“该证件号已经被注册”,系统返回原有注册界面。4a.卡办理人员取消办卡过程,则系统提示用户是否确实要取消操作1.如果卡办理人员确认“取消”操作,则系统返回到初始注册界面2.如果卡办理人员取消“取消”操作,则系统保持原有注册界面5a.系统发现卡号无效,提示重新输入。基本流基本流录入信息有效性检查、证件号的唯一性检查、卡号的有效性检查、生成借阅关系录入信息有效性检查、证件号的唯一性检查、卡号的有效
39、性检查、生成借阅关系备选流备选流1录入信息存在问题备选流备选流2证件号已注册备选流备选流3取消办卡操作备选流备选流4卡号无效第2步:生成场景场景描述场景描述基本流基本流备选流备选流场景场景1:成功注册:成功注册基本流场景场景2:信息存在问题:信息存在问题基本流备选流1场景场景3:证件号已注册:证件号已注册基本流备选流2场景场景4:取消办卡操作:取消办卡操作基本流备选流3场景场景5:卡号无效:卡号无效基本流备选流4第3步:生成测试矩阵ID场景场景信息有信息有效性效性证 件 号证 件 号唯一性唯一性未取消办卡未取消办卡卡号正确预期结果预期结果1场景1:成功注册VVVV成功注册2场景2:信息存在问题
40、In/an/an/a提示信息,返回注册页面3场景3:证件号已注册VIn/an/a提示证件号已注册,返回注册页面4场景4:取消办卡操作VVIn/a提示取消确认,分2种情况处理5场景5:卡号错误VVVI提示“卡号错误,请重新输入”第4步:生成测试用例,并选取测试数据值编号编号场景场景信息有效信息有效性性证件号唯一证件号唯一未取消办卡未取消办卡卡号有效卡号有效性性预期结果预期结果TC-001场景1:成功注册信息有效证件号唯一未取消办卡卡号有效成功注册TC-002场景2:信息存在问题信息无效n/an/an/a提示信息,返回注册页面TC-003场景3:证件号已注册信息有效输入已注册的证件号n/an/a提
41、示证件号已注册,返回注册页面TC-004场景4:取消办卡操作信息有效证件号唯一取消办卡n/a确认取消,分2种情况处理TC-005场景5:卡号无效信息有效证件号唯一未取消办卡卡号无效卡号无效,提示重新输入【案例2】以登录系统界面为例,它的业务流程如图,请设计用例。第1步:分析题目,列出基本流和备选流基本流基本流进入登录界面进入登录界面输入有效的用户名输入有效的用户名输入正确的密码输入正确的密码输入正确的验证码输入正确的验证码点击点击“登录登录”按钮,成功按钮,成功登入。登入。备选流备选流1上次选择自动登录,通过验证,成功登录;备选流备选流2上次未选择自动登录,用户名未通过验证;备选流备选流3上次
42、未选择自动登录,密码不正确,还有输入机会;备选流备选流4上次未选择自动登录,密码不正确,没有输入机会;备选流备选流5上次未选择自动登录,验证码不正确;备选流备选流6上次未选择自动登录,忘记密码。第2步:生成“登录系统”的场景场景描述场景描述基本流基本流备选流备选流场景场景1:成功登录:成功登录基本流场景场景2:自动登录成功:自动登录成功基本流备选流1场景场景3:登录名未通过验证:登录名未通过验证基本流备选流2场景场景4:密码不正确,有输入机会:密码不正确,有输入机会基本流备选流3场景场景5:密码不正确,没有输入机会:密码不正确,没有输入机会基本流备选流4场景场景6:验证码不正确:验证码不正确基
43、本流备选流5场景场景7:忘记密码:忘记密码基本流备选流6第3步:登录系统的测试矩阵编号编号场景场景自动登录自动登录用户名用户名密码密码验证码验证码忘记密码忘记密码预期结果预期结果TC-001正常登录IVVVI成功登录TC-002自动登录验证码正确Vn/an/aVI成功登录TC-003自动登录验证码有错Vn/an/aII提示输入验证码错误TC-004用户名有错IIn/an/aI提示用户名错误TC-005有机会输入密码IVIn/aI提示密码与用户名不匹配,可再次登录TC-006没有机会输入密码IVIn/aI提示密码与用户名不匹配,账号已锁定TC-007非自动登录验证码有错In/an/aII提示输入
44、验证码错误TC-008忘记密码n/aVIn/aV出现忘记密码界面第4步:生成测试用例,并选取测试数据值编号编号场景场景自动登自动登录录用户名用户名密码密码验证码验证码忘记密码忘记密码预期结果预期结果TC-001正常登录未选择正确用户名正确密码正确验证码未选成功登录TC-002自动登录验证码正确选择n/an/a正确验证码未选成功登录TC-003自动登录验证码有错选择n/an/a错误验证码未选提示验证码错误TC-004用户名有错未选择错误用户名n/an/a未选提示用户名错误TC-005没有机会输入密码未选择正确用户名错误密码n/a未选提示密码与用户名不匹配,账号已锁定TC-006有机会输入密码未选
45、择正确用户名错误密码n/a未选提示密码与用户名不匹配,可再次登录TC-007非自动登录验证码有错未选择n/an/a错误验证码未选提示验证码错误TC-008忘记密码n/a正确用户名错误密码n/a选择出现忘记密码界面小结当程序界面上没有太多填写项,主要通过鼠标的点击、双击、拖拽等完成操作的时候可以使用场景法。把自己当做最终用户,分析在使用该软件的时候可能遇到的场景,主要是验证业务流程、主要功能的正确性和异常处理能力。5.7大纲法大纲法是一种着眼于需求的方法,从宏观上检验需求的完成度。大纲是一种组织思维的工具,它汇集了需求文档的核心内容,大纲的每项都可以根据测试人员的喜好以逻辑形式分组。通常会将需求
46、转换为大纲树的形式。迭代过程一开始是从需求中产生的,如果需求中没有功能大纲,那么测试人员需要自行列出,并用需求编号实现需求的可跟踪性。并通过与开发人员和PM的沟通讨论,不断细化扩大大纲,解决需求中不够明确的问题,大纲的每个后续版本都是对前者的细化。说白了,就是通过列大纲的方式,检测未被覆盖的功能点,从而发现系统的缺陷。5.8错误推测法错误推测法是经验丰富的测试人员喜欢使用的一种测试用例设计方法。实际工作中,你可能会发现,有些人貌似天生就是做测试的能手,总能发现别人发现不了的缺陷,他们也没有什么特殊的方法,却似乎天生有发现缺陷的能力。对此的一个解释就是这些人更多是在下意识中,把错误推测法运用的很
47、好的缘故。错误推测法就是基于经验和直觉推测程序中所有可能存在的各种错误,有针对性地设计测试用例的方法。也就是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些情况选择测试用例。它是一项依赖于直觉的非正规的过程,所以无法描述出它的设计步骤。但它的基本思想是列举出可能犯的错误或错误易发情况的清单,然后编写测试用例。测试人员的经验越足,工作越细心,就越容易使用错误推测法来发现缺陷。黑盒测试设计方法,可以发现的缺陷:(1)是否有不正确的功能,是否有遗漏的功能(2)在接口上,是否能够正确的接收数据并产生正确的输入结果(3)是否有数据结构错误或外部信息访问错误(4)性能上是否能够满足要求(5)
48、是否有程序初始化和异常终止方面的错误测试用例设计方法的综合策略测试用例逐级生成的策略:在业务表述层,使用大纲法,对业务表述和功能模块进行整体宏观把控;在剧本层使用场景法来验证业务的触发场景;在对象模型层利用判定表、因果图、正交实验法来测试各种输入条件的组合情况;然后在抽象数据层利用边界值、等价类划分法对具体控件进行边界测试;然后生成详细的测试用例(自动化测试脚本);使用错误推测法弥补测试用例没有覆盖到的部分。Myers在软件测试的艺术一书中说:(1)进行等价类划分,包括输入条件和输出条件的等价类划分,将无限测试变成有限测试,这是减少工作量和提高测试效率的最有效的方法。(2)在任何情况下都必须使
49、用边界值分析方法。经验表明用这种方法设计测试用例发现程序错误的能力最强。(3)采用错误推测法再追加一些测试用例。(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。(5)如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用因果图法。编写测试用例的粒度敏捷模式,留给测试的时间短简化用例,只写测试点学学模块化思维,用例复用找开发聊聊功能是如何实现的,可以把握到测试的注意点走迭代形式常见题目一、单选题(1)若一个通讯录最多可以输入100条记录,则下列哪组测试用例最优?( )A.分别输入1、50、100条记录B.分别输入0、1、50
50、、99、100条记录C.分别输入0、1、100、101条记录D.分别输入0、1、50、99、100、101条记录(2)某系统对每个员工一年的出勤天数进行核算和存储(按每月22个工作日计算),使用文本框的模式进行填写,在此文本框的测试用例编写中使用了等价类。下列关于等价类划分法,划分错误的是()A.无效等价类,出勤日264B无效等价类,出勤日0C有效等价类,0=出勤日=264D有效等价类,0出勤日=0;B.有一个有效等价类为:输入值0;C.有一个无效等价类为:输入值=0;D.有一个无效等价类为:输入值0(3)以下关于错误猜测法的说法正确的是()A.错误猜测法是基于经验和直觉推测程序中所有可能存在