文档库 最新最全的文档下载
当前位置:文档库 › 黑盒测试技术之等价类划分

黑盒测试技术之等价类划分

黑盒测试技术之等价类划分
黑盒测试技术之等价类划分

黑盒测试技术之等价类划分

发布时间: 2008-3-14 14:17 作者: 未知来源: 网络转载

字体: 小中大| 上一篇下一篇| 打印| 我要投稿| 推荐标签:黑盒测试

黑盒测试有多种技术,在不同的场景情况下可以结合使用。主要有等价类划分,边界值,判定表,状态迁移图,正交试验法等。当然这些技术在白盒测试中也可以用,它们只是技术,而白盒黑盒测试只是测试方式。今天先讨论等价类划分。

等价类划分的目的就是为了在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果。有有效等价类盒无效等价类。有效等价类中的数据代表的是一组符合需求文档的正确的有意义数据。无效等价类则正相反。我们来看几个例子来理解怎样划分等价类(注意我不会用书中的例子,而是举实际我们遇到的一些软件或者网页上的例子)

a) 一个取值范围的情况(1个有效等价,2个无效等价)

大家看到密码输入框的限制是密码长度>=4。但是其实还是有个隐含的条件。也就是密码字段在数据库中的限制,当然可以用varchar,但是一般用固定长的字符类型的,比如20。所以有效等价类:密码长度大于等于4小于等于20。无效等价类密码长度小于4或者大于20。所以我们从有效等价类中挑选长度为4的密码形成一个test case。从无效等价类中挑选3,21作为2个test case。(注:也许大家想加入20这个case,但是这个是边界值分析考虑的事情了)

b) 布尔型取值(1个有效等价,1个无效等价)

对于验证码我们很熟悉了,其实是一种布尔型取值。True或者False。这里就是一个有效等价类和一个无效等价类。4828和4827分别作为test case

c) 独立的N种取值(n个有效等价,1个无效等价)

这个是windows中Notepad的选择字体的对话框,其中Font style。可以选择Regular, Italic, Bold, Bold Italic。注意他们可能都是独立的。(注意我这里用独立是因为没有需求文档,我不清楚bold Italic是否是独立的,暂且算作独立)。那么有效等价类是4个,无效等价类是1个,既是非这些里面的取值。d)等价类的划分可能是渐进的。

比如初一看两个1个有效等价类既是有效的email和1个无效等价类一个无效的email。但是如果有更多的要求。比如注册过的email是不允许的,那么无效等价类变为2个。

测试用例编写之等价类划分法

测试用例编写之等价类划分法 一、概念 等价类划分法指把所有可能的输入数据,即程序的输入域分成若干个部分(子集)后,从每个子集中选取少数具有代表性的数据作为测试用例的方法。是一种重要且常用的黑盒测试的测试用例设计方法。 二、等价类划分 等价类可分为两种情况:有效等价类与无效等价类。有效等价类是指:对程序的规格说明是有意义的、合理的输入数据所构成的集合;无效等价类意义与之相反。 三、确定等价类的规则 如何确定等价类,这是使用等价类划分方法的一个重要问题。等价类的划分在很大程度上是试探性的,一般规则如下: 1)如果输入条件规定了取值的范围或取值的个数([0,99]),则可确定一个有效等价类和两个无效等价类(<0 ;[0,99];>99); 2)如果一个输入条件说明了一个“必须成立的”情况(如变量名必须以字母开头),则可划分一个有效等价类(以字母开头)和一个无效等价类(不以字母开头); 3)如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类; 4)如果某个输入条件规定了一个输入值得离合(即离散值),且程序对不同的输入值做不同的处理,那么每个允许的值确定为一个有效等价类,另外还有一个无效等价类。(任意一个不允许输入的值、)例:优、良、中、差,则此时有4个有效等价类和1个无效等价类(非优、良、中、差的值就为无效) 5)如果某个输入条件规定输入数据是整型,那么可以确定3个有效等价类(正整数、零、负整数)和一个无效等价类(非整数)。 6)如果某个输入条件规定处理的对象是表格,那么可确定一个有效等价类(表有1项或多项)和一个无效等价类(空表)。 7)如果能够确知,已划分的某等价类中的各元素在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类。 四、建立步骤 根据已列出的等价类表,按以下步骤确定测试用例: 1) 为每个等价类规定一个唯一的编号; 2) 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,最后使得所有的有效等价类都被测试用例所覆盖;

《软件测试技术》期末A卷及参考答案

单项选择题:共20小题,每小题1 分,满分20分;请将答案填入题后括号中。 1.在软件生命周期的哪一个阶段,软件缺陷修复费用最低() (A)需求分析(编制产品说明书)(B)设计 (C) 编码(D)产品发布 2.单元测试中用来模拟被测模块调用者的模块是() (A) 父模块(B)子模块 (C)驱动模块(D)桩模块 3.为了提高测试的效率,应该() (A)随机地选取测试数据; (B)取一切可能的输入数据作为测试数据; (C)在完成编码以后制定软件的测试计划; (D)选择发现错误可能性大的数据作为测试数据。 4.侧重于观察资源耗尽情况下的软件表现的系统测试被称为() (A)强度测试(B)压力测试 (C) 容量测试(D)性能测试 5.必须要求用户参与的测试阶段是() (A)单元测试(B)集成测试 (C) 确认测试(D)验收测试 6.软件测试员究竟做些什么。() (A)软件测试员的目的是发现软件缺陷 (B)软件测试员的目的是发现软件缺陷,尽可能早一些 (C)软件测试员的目的是发现软件缺陷,尽可能早一些,并确保其得以修复 (D)软件测试员的目的是发现软件缺陷,尽可能早一些,并将其得以修复 7.下面四种说法中正确的是() (A)因果图法是建立在决策表法基础上的一种白盒测试方法; (B)等价类划分法是边界值分析法的基础; (C)健壮性等价类测试的测试用例要求在有效等价类中取值; (D)在任何情况下做黑盒测试皆应首先考虑使用错误推断法。 8.不属于单元测试内容的是() (A)模块接口测试(B)局部数据结构测试 (C) 路径测试(D)用户界面测试 9.划分软件测试属于白盒测试还是黑盒测试的依据是() (A)是否执行程序代码 (B)是否能看到软件设计文档 (C)是否能看到被测源程序 (D)运行结果是否确定 10.下列项目中不属于测试文档的是() (A)测试计划(B)测试用例 (C) 程序流程图(D)测试报告 11.几乎没有产品计划、进度安排和正规的开发过程的软件开发模式是() (A)大棒模式(B)边写边改模式 (C) 瀑布模式(D)快速原型开发模式 12.如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的() (A)判定覆盖(B)条件覆盖 (C) 判定/条件覆盖(D)组合覆盖 13.下列说法不正确的是()

等价类划分法实例

1.某程序规定:"输入三个整数a 、b 、c 分别作为三边的边长构成三角形。通过程序 判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果a 、b 、c 满足条件(1 )~ (4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为" 非三角形" 。 2)如果三条边相等即满足条件(7),则程序输出为" 等边三角形" 。 3)如果只有两条边相等、即满足条件(6),则程序输出为" 等腰三角形" 。 4)如果三条边都不相等,则程序输出为" 一般三角形" 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10)4 4 4 (1)--(7),(11)

覆盖无效等价类的测试用例: 2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1 月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。 现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(不考虑2月的问题) 1)划分等价类并编号,下表等价类划分的结果

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别 为①、⑤、⑧,设计的测试用例如下: 测试数据期望结果覆盖的有效等价类 200211 输入有效①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据期望结果覆盖的无效等价类 95June 无效输入② 20036 无效输入③ 2001006 无效输入④ 198912 无效输入⑥ 200401 无效输入⑦ 200100 无效输入⑨ 200113 无效输入⑩ 3.NextDate 函数包含三个变量:month 、day 和year ,函数的输出为输入日期后一天 的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month 、day 和year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1920≤year≤2050 1)有效等价类为: M1={月份:1≤月份≤12} D1={日期:1≤日期≤31} Y1={年:1812≤年≤2012} 2)若条件①~ ③中任何一个条件失效,则NextDate 函数都会产生一个输出,指明相 应的变量超出取值范围,比如"month 的值不在1-12 范围当中" 。显然还存在着大量的year 、month 、day 的无效组合,NextDate 函数将这些组合作统一的输出:" 无效输入日期" 。其无效等价类为: M2={月份:月份<1} M3={月份:月份>12} D2={日期:日期<1} D3={日期:日期>31} Y2={年:年<1812} Y3={年:年>2012} 弱一般等价类测试用例 月份日期年预期输出 6 15 1912 1912年6月16日 强一般等价类测试用例同弱一般等价类测试用例 注:弱--有单缺陷假设;健壮--考虑了无效值

软件测试习题

一、选择题 1.软件测试的目的是(B )。 A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的( B )来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 3.黑盒法是根据程序的( C )来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 4.为了提高软件测试的效率,应该( D )。 A)随机地选取测试数据B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是(A )。 A)项目开发计划B)需求规格说明书C)设计说明书D)源程序 6.测试的关键问题是(B )。 A)如何组织软件评审B)如何选择测试用例 C)如何验证程序的正确性D)如何采用综合策略 7.软件测试用例主要由输入数据和( C )两部分组成。 A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析 8.成功的测试是指运行测试用例后( B )。 A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是( D )。 A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖 10.在黑盒测试中,着重检查输入条件组合的方法是( D )。 A)等价类划分法B)边界值分析法C)错误推测法D)因果图法 11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是(A )。A)系统功能B)局部数据结构C)重要的执行路径D)错误处理 12.软件测试过程中的集成测试主要是为了发现( B )阶段的错误。 A)需求分析B)概要设计C)详细设计D)编码 13.不属于白盒测试的技术是(D )。 A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析 14.集成测试时,能较早发现高层模块接口错误的测试方法为( A )。

第5次实验等价类划分测试

软件测试实验报告 实验题目:黑盒测试技术之等价类划分测试 姓名:何晓晓 学号:1012210110 班级:10计本1 指导老师:蒋平

一、实验介绍 1.实验技术 等价类划分是一种典型的、常用的黑盒测试方法,这类方法是把所有可能的输入数据划分成若干个部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 2.实验对象 完成一段程序,要求实现这样的功能。输入三个整数a,b,c,分别作为三角形的三条边,取值范围为1-100,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形以及不构成三角形。判断结果打印输出。 #include void main(void) { int a,b,c,k; printf("请输入三角形的三边长(0-100):"); scanf("%d %d %d",&a,&b,&c); if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) { if((a+b>c)&&(a+c>b)&&(b+c>a)) { if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&a!=b)) k=1; if(a==b&&a==c) k=2; if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)) k=3; switch(k) { case 1:printf("等腰三角形\n"); break; case 2:printf("等边三角形\n"); break; case 3:printf("直角三角形\n"); break; default:printf("一般三角形\n"); break; } } else printf("不能构成三角形\n");

等价类划分法实例

分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号 覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10) 4 4 4 (1)--(7),(11) 覆盖无效等价类的测试用例: 2. 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990 年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能 "。(不考虑2月的问题) 1)划分等价类并编号,下表等价类划分的结果

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分 别为①、⑤、⑧,设计的测试用例如下: 测试数据期望结果覆盖的有效等价类 200211 输入有效①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据期望结果覆盖的无效等价类 95June 无效输入② 20036 无效输入③ 2001006 无效输入④ 198912 无效输入⑥ 200401 无效输入⑦ 200100 无效输入⑨ 200113 无效输入⑩ 3.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期 后一天的日期。例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。 要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1920≤year≤2050 1)有效等价类为: M1={月份:1≤月份≤12} D1={日期:1≤日期≤31} Y1={年:1812≤年≤2012} 2)若条件① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相 应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中 " 。显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合作统一的输出: " 无效输入日期 " 。其无效等价类为: M2={月份:月份<1} M3={月份:月份>12} D2={日期:日期<1} D3={日期:日期>31} Y2={年:年<1812} Y3={年:年>2012} 弱一般等价类测试用例 月份日期年预期输出 6 15 1912 1912年6月16 日 强一般等价类测试用例同弱一般等价类测试用例

等价类的定义

等价类划分 商品之间的等价交换 1、价值规律的基本内容 ①商品生产要遵循商品的价值量由社会必要劳动时间决定——商品的价值量 由生产商品的社会必要劳动时间决定。 ②商品交换要遵循等价交换原则——以价值量为基础,实行等价交换。 2、价值规律表现形式:价格受供求关系影响围绕价值上下波动。 ①价值规律的表现形式也称价值规律的实现形式和发生作用的形式。 ②等价交换是商品交换的一个重要原则。“等价”是指交换双方商品的价值都 要相等,即各自商品所消耗的社会必要劳动时间相等。货币出现以后,商品的价格却由货币来衡量,表现为价格。等价交换也就是要求商品的价格应该与价值相符合,因为价格由价值决定。 ③在现实生活中,价格与价值经常不一致,这是由商品的供求关系的变化引 起的,使价格上涨或下跌;反过来,价格的上涨或下跌也会影响供求关系,使供求趋于平衡,从而使价格接近价值。 ④由于价格与供求之间存在着相互制约的关系,这样就会产生以下情况: 第一:价格的上涨和下跌,都不会距离价值太远,它总是围绕价值上下波动。 第二:从一个较长时间来看,从全社会来看,商品的平均价格还是与它的价值相一致。 ⑤价格围绕价值上下波动表明:社会必要劳动时间决定价值量这一内容,始 终作为一种趋势,作为一个规律在贯彻着。所以,价值规律的表现形式不仅不违背规律,反而正是价值规律的表现形式,而且是唯一的表现形式。价值规律基本内容和表现形式是一致的,价格围绕价值上下波动就是价值规律基本内容的外在表现,价格和价值相符的本质,在实际交换中只能通过价格围绕价值波动这种形式才能实现。价格最终还是由价值决定。 等价类划分 等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。等价类划分法是一种系统性的确定要输入的测试条件的方法。由于等价类是在需求规格说明书的基础上进

软件测试题目-附答案

1 一、选择题 1.软件测试的目的是( B )。 A )试验性运行软件 B )发现软件错误 C )证明软件正确 D )找出软件中全部错误 2.软件测试中白盒法是通过分析程序的( B )来设计测试用例的。 A )应用范围 B )内部逻辑 C )功能 D )输入数据 3.黑盒法是根据程序的( C )来设计测试用例的。 A )应用范围 B )内部逻辑 C )功能 D )输入数据 4.为了提高软件测试的效率,应该( D )。 A )随机地选取测试数据 B )取一切可能的输入数据作为测试数据 C )在完成编码以后制定软件的测试计划 D )选择发现错误可能性最大的数据作为测试用例 5.与设计测试用例无关的文档是( A )。 A )项目开发计划 B )需求规格说明书 C )设计说明书 D )源程序 6.测试的关键问题是( B )。 A )如何组织软件评审 B )如何选择测试用例 C )如何验证程序的正确性 D )如何采用综合策略 7.软件测试用例主要由输入数据和( C )两部分组成。 A )测试计划 B )测试规则 C )预期输出结果 D )以往测试记录分析 8.成功的测试是指运行测试用例后( B )。 A )未发现程序错误 B )发现了程序错误 C )证明程序正确性 D )改正了程序错误 9.下列几种逻辑覆盖标准中,查错能力最强的是( D )。 A )语句覆盖 B )判定覆盖 C )条件覆盖 D )条件组合覆盖 10.在黑盒测试中,着重检查输入条件组合的方法是( D )。 A )等价类划分法 B )边界值分析法 C )错误推测法 D )因果图法 11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( A )。 A )系统功能 B )局部数据结构 C )重要的执行路径 D )错误处理 12.软件测试过程中的集成测试主要是为了发现( B )阶段的错误。 A )需求分析 B )概要设计 C )详细设计 D )编码 13.不属于白盒测试的技术是( D )。 A )路径覆盖 B )判定覆盖 C )循环覆盖 D )边界值分析 14.集成测试时,能较早发现高层模块接口错误的测试方法为( A )。 A )自顶向下渐增式测试 B )自底向上渐增式测试 C )非渐增式测试 D )系统测试 15.确认测试以( A )文档作为测试的基础。 A )需求规格说明书 B )设计说明书 C )源程序 D )开发计划 16.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。 A )程序内部逻辑 B )程序的复杂度 C )使用说明书 D )程序的功能 17.程序的三种基本结构是( B )。 A )过程子、程序、分程序 B )顺序、选择、循环 C )递归、堆栈、队列 D )调用、返回、转移 18.结构化程序设计的一种基本方法是( D ) A )筛选法 B )递归法 C )归纳法 D )逐步求精法 19.软件调试的目的是( A ) A )找出错误所在并改正之 B )排除存在错误的可能性 C )对错误性质进行分类 D )统计出错的次数 20.程序三种基本结构的共同特点是( D )

等价类划分方法

1.某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10)4 4 4 (1)--(7),(11)覆盖无效等价类的测试用例

2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。 1) 划分等价类并编号,下表等价类划分的结果 2) 设计测试用例,以便覆盖所有的有效等价类。在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:

等价类测试案例

等价类划分 等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。 由于等价类是在需求规格说明书的基础上进行划分的,并且等价类划分不仅可以用来确定测试用例中的数据的输入输出的精确取值范围,也可以用来准备中间值、状态和与时间相关的数据以及接口参数等,所以等价类可以用在系统测试、集成测试和组件测试中,在有明确的条件和限制的情况下,利用等价类划分技术可以设计出完备的测试用例。这种方法可以减少设计一些不必要的测试用例,因为这种测试用例一般使用相同的等价类数据,从而使测试对象得到同样的反映行为。对于等价类我们从以下几个方面讨论它的划分方法。 有效等价类划分 有效等价类指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明预先规定的功能和性能。有效等价类可以是一个,也可以是多个,根据系统的输入域划分若干部分,然后从每个部分中选取少数有代表性数据当做数据测试的测试用例,等价类是输入域的集合。 无效等价类划分 无效等价类和有效等价类相反,无效等价类是指对于软件规格说明而言,没有意义的、不合理的输入数据集合。利用无效等价类,可以找出程序异常说明情况,检查程序的功能和性能的实现是否有不符合规格说明要求的地方。 等价类划分的方法有 按区间划分。 按数值划分。 按数值集合划分。 按限制条件或规划划分。 按处理方式划分。 等价类划分的原则如下:

测试用例八大设计方法和实例

测试用例设计方法 1等价类划分 1.1 理论知识 等价类划分是一种典型的黑盒测试方法。这一方法完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。 等价类合理地假设:某个等价类的代表值,与该等价类的其他值,对于测试来说是等价的。 因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。 等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 1) 分类: 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能. 无效等价类:与有效等价类的定义恰巧相反. 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性. 2)划分等价类的方法: 下面给出六条确定等价类的原则: ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效

等价类划分法实例教学文案

等价类划分法实例

1.某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序 判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题 的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8)

4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10) 4 4 4 (1)--(7),(11) 覆盖无效等价类的测试用例: 2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年 1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(不考虑2月的问题) 1)划分等价类并编号,下表等价类划分的结果 输入等价类有效等价类无效等价类

等价类划分法

测试用例设计—等价类划分法 2008-10-10 11:41:40| 分类:测试| 标签:|字号大中小订阅 1.相关概念:等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 1.2 等价类 等价类是某个输入域的集合,在这个集合中每个输入条件都是等效的。如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。 等价类分为有效等价类和无效等价类。 有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。 2.划分等价类的方法 划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合。下面给出六条确定等价类的原则。 1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。 例如:成年人每分钟的心跳60-100之间为正常。 有效等价类:60-100 无效等价类:<60 和>100 2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和 一个无效等价类。例如:用户连续输入错误密码的次数最多为3次。 有效等价类:<=3次无效等价类:>3次 3、在输入条件是一个布尔量的情况下,可确定一个有效等价类。例如:单选的选中与不选中。 4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n 个有效等价类和一个无效等价类。例如:输入数据为省份的选择。 5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如:规定必须输入非0的正整数。这种例子应充分考虑规则是否可以拆分为具有单一的子规则,然后得到从不同角度违反规则的无效等价类。 该例子起码可拆分为非0、数字、正数、整数4个子规则,至少每个规则对应一个无效等价类,即0、字符串、负数、小数,甚至可挖掘出输入为空的隐含等价类。

等价类划分

黑盒测试 (一)实验目的 1.掌握用边界值方法设计测试用例和执行测试的过程; 2.掌握用等价划分方法设计测试用例和执行测试的过程; (二)实验内容 测试“NextDate”函数。NextDate返回输入日期后面的那个日期。变量年、月、日都 具有整数值,且满足如下条件: C1: 1912≤年份≤2050 C2: 1≤月份≤12 C3: 1≤日期≤31 (三)实验步骤 用熟悉的语言(如C 语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。参考源代码: #include intnextDate(intyear,intmonth,int day); void main() { //int year, month,day; nextDate(2051,12,30); } intnextDate(intyear,intmonth,int day) { /*如果还有明天,返回1; 如果输入不合法,返回-1; */ switch (month) { case 1: case 3:case 5:case 7:case 8:case 10 : if(day==31) { day=1; month=month+1; } else day=day+1; break; case 4:case 6:case 9:case 11: if(day==30) { day=1; month=month+1; } else

day=day+1; break; case 12: if(day==31) { day=1; month=1; year=year+1; if(year==2012) printf("2012 is over"); } else if(day<31) { day=day+1; } break; case 2: { if(day==28) if(((year%4==0 && year%100!=0) || year%400==0)) { day=29; } else { day=1; month=3; } else if(day==29) { day=1; month=3; } else if(day<28) { day=day+1; } else printf("二月没有%d 号!\n",day); } break; default: ; }

实验二 等价类划分法测试用例设计与执行

实验二 实验的目的和要求: 目的: (1)掌握等价类划分方法的步骤; (2)扩宽测试思维; 要求:能够用等价类划分的思想设计测试用例 实验内容: 问题陈述: 简单版本:三角形问题接受三个整数a、b和c作为输入,用作三角形的边。程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。改进版本:三角形问题接受三个整数a、b和c作为输入,用作三角形的边。整数a、b和c必须满足以下条件: c1:1<=a<=200 c4: a

为“非三角形”。如果三条边相等即满足条件(7),则程序输出为“等边三角形”。如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。

二、设计测试用例

import java.io.*; class sanj{ public static int a,b,c; public static void main(String arg[]) throws IOException{ try{ BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in)); //接收键值System.out.println("输入三边值,每个值输入后回车"); System.out.println("请输入:"); a=Integer.valueOf(stdin.readLine()); b=Integer.valueOf(stdin.readLine()); c=Integer.valueOf(stdin.readLine()); }catch(IOException e){ System.out.println("出现异常!"); System.exit(0); } if(a+b

三角形问题的等价类测试用例

三角形问题的等价类测试用例 四种可能出现的输出:非三角形、不等边三角形、等腰三角形和等边三角形 可以使用这些输出标识如下所示的输出(值域)等价类: R1={〈a,b,c〉:有三条边a、b和c的等边三角形} R2={〈a,b,c〉:有三条边a、b和c的等腰三角形} R3={〈a,b,c〉:有三条边a、b和c的不等边三角形} R4={〈a,b,c〉:三条边a、b和c不构成三角形} 四个弱一般等价类测试用例是: · 测试用例 a b c 预期输出 WN1 5 5 5 等边三角形 WN2 2 2 3 等腰三角形 WN3 3 4 5 不等边三角形 WN4 4 1 2 非三角形 由于变量a、b和c没有有效区间,则强一般等价类测试用例与弱一般等价类测试用例相同。 考虑a、b和c的无效值产生的以下额外弱健壮等价类测试用例: [ 测试用例 a b c 预期输出 WR1 -1 5 5 a取值不在所允许的取值值域内 WR2 5 -1 5 b取值不在所允许的取值值域内 WR3 5 5 -1 c取值不在所允许的取值值域内 WR4 201 5 5 a取值不在所允许的取值值域内 WR5 5 201 5 b取值不在所允许的取值值域内 WR6 5 5 201 c取值不在所允许的取值值域内< 以下是额外强健壮性等价类测试用例三维立方的一个“角”: 测试用例 a b c 预期输出 SR1 -1 5 5 a取值不在所允许的取值值域内 SR2 5 -1 5 b取值不在所允许的取值值域内 SR3 5 5 -1 c取值不在所允许的取值值域内 SR4 -1 -1 5 a、b取值不在所允许的取值值域内 SR5 5 -1 -1 b、c取值不在所允许的取值值域内

测试用例设计方法——等价类划分法

对等价类划分法的感悟 (2016/2/21-2016/2/28)来北京的第一周感觉时间过得好快,新鲜、刺激、充实。在本周内我注重学习了等价类划分法,并结合该方法完成了一个现金管理系统的基版测试。该系统主要包括结算账户管理、账务处理、多级账簿、资金归集、资金池等功能。其中账务处理业务中主要包含三个子业务分别是:现金存入业务处理、现金支出业务处理、账务查询。多级账簿业务主要涉及到多级账簿的开通、开设和注销等功能。 在这个项目中我主要负责现金存入模块的测试用例的设计以及执行。首先是基本功能的实现也就是输入框、选择框等功能是否能够实现,其次针对需求验证其非功能点即可输入字符串的类型以及长度进行验证。在对这些数据类型和字符串的验证中我主要运用了边界值法和等价类划分法。 例如:等价类划分法的使用 在填写现金存入的账单中我们主要输入收款人账号、币种、收款人户名、收款账簿编号、交易金额等项内容。其中收款人账号主要有三种状态无效账号、已注销账号、和有效账号。币种主要有01、02、03 以及其他无效类型。收款人户名主要有存在和不存在两种状态。收款账簿编号主要有有效账簿编号和无效账簿编号两种状态。交易金额主要有输入负数、0、大于0三种类型的选择。

依据这些条件,将各项输入要素划分为有效等价类和无效等价类,效果如下图所示: 等价类划分法的要义: 1)为每一个等价类规定一个唯一的编号; 2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止; 3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。则测试用例的设计为: a3 b1 c1 d1 e2、a3 b2 c1 d1 e3、a3 b3 c1 d1 e2 a1 b1 c1 d1 e2、a2 b1 c1 d1 e2 a1 b1 c2 d1 e2 a1 b1 c2 d2 e2 a1 b1 c2 d2 e1 因此,等价类划分法优点就凸显了了出来,即测试某等价类的代

等价类测试-- 案例分析

一、假设有一个提交订单的方法submitOrder(OrderRequest:Order), OrderRequest是一个XML Schema复杂数据类型,其数据类型结构树如下所示。

内建数据类型等价类划分和相应测试用例集的示例 各节点发生次数的等价类划分和相应测试用例的示例

orderRequest={0,1,3}*custid_string +{0,1,7}*ordid_string +{0,1,6}* price_decimal + {20,0}*({0,1, 4}*itemid_string +{0,1,5}*prodid_decimal +{0,1,9}* quantity_positiveInteger) 为了求解根节点orderRequest的测试用例集,如果组合各叶子节点所有取值以及其发生次数的所有取值,即,采用强健壮等价类测试,将会获取根节点测试用例的个数为个。 用弱健壮等价类测试方法,根节点orderRequest测试用例的过程如下: 1)设计orderRequest的一个新的测试用例,使它能够尽量覆盖各叶子节点(包 括叶子节点的取值和叶子节点的发生次数)尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被该测试用例所覆盖。 2)设计orderRequest的一个新的测试用例,使它仅覆盖一个叶子节点(包括 叶子节点的取值和叶子节点的发生次数)尚未覆盖的无效等价类。即每次让一个叶子节点或该叶子节点的发生次数取异常值,其余的叶子节点以及叶子节点的发生次数取正常值。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。 测试用例由756个缩减为26个,即包括2个有效测试用例,24个无效测试用例。 1.TC1="xx00xx00xx",1,"yy00371102",1,"957.33",1,"c001uddddd",1,"0371102345",0,"45",0,20

等价类测试

三角形问题 满足输入的条件:(1)正数 (2)两边之和大于第三边 (3)在[1,200]范围内 (4)整数 满足的输出的条件:(1)三角形 (2)等腰三角形 (3)等边三角形 (4)直角三角形 (5)等腰直角三角形 等价类划分 有效等价类: (1)正数,两边之和大于第三边,在[1,200]范围内,整数 (2)正数,两边之和大于第三边,在[1,200]范围内,整数,a=b (3)正数,两边之和大于第三边,在[1,200]范围内,整数,b=c (4)正数,两边之和大于第三边,在[1,200]范围内,整数,a=c (5)正数,两边之和大于第三边,在[1,200]范围内,整数, a=b=c (6)正数,两边之和大于第三边,在[1,200]范围内,整数, a*a+b*b=c*c (7)正数,两边之和大于第三边,在[1,200]范围内,整数, a*a+c*c=b*b (8)正数,两边之和大于第三边,在[1,200]范围内,整数, c*c+b*b=a*a 无效等价类: (1)a为负数 (2)a为0 (3)b为负数 (4)b为0 (5)c为负数 (6)c为0 (7)a+b200 (17)b>200 (18)c>200 (19)a为非整数 (20)b为非整数 (21)c为非整数

日期处理问题 输入条件为: 年份范围[1600,2100],月份范围[1,12],日期范围[1,31] 判断闰年: 有效等价类:(1)年份在[1600,2100]中,月份在[1,12]中,日期在[1,31]中 判断下一天,上一天,星期几,距离生日12月31日有多少天 有效等价类:(1)年份在[1600,2100] (2)月份在范围[1,12] (3)闰年,月份为2,日期在范围[1,29] (4)非闰年,月份为2,日期在范围[1,28] (5)月份在{1,3,5,7,8,10,12}范围中,日期在范围[1,31] (6)月份在{4,6,9,11},日期在范围[1,30] 无效等价类: (1)年份小于1600 (2)年份大于2100 (3)月份小于1 (4)月份大于12 (5)日期小于1 (6)闰年,月份为2,日期大于29 (7)非闰年,月份为2,日期大于28 (8)月份在{1,3,5,7,8,10,12}范围中,日期大于31 (9)月份在{4,6,9,11},日期大于30

相关文档
相关文档 最新文档