全部科目 > 软件评测师 >
2015年下半年 上午试卷 综合知识
第 57 题
知识点 等价类划分法  
章/节 测试技术的分类  
 
 
以下关于等价划分法的叙述中不正确的是(57)。
 
  A.  如果规定输入值string1必须是‘\0’结束,那么得到两个等价类,即有效等价类{string1|string1以‘\0’结束},无效等价类{string1|string1不以‘\0‘结束}
 
  B.  如果规定输入值int1取值为1、-1两个数之一,那么得到3个等价类,即有效等价类{int1|int1=1}、{int1|int1=-1},无效等价类{int1|int1≠1并且int1≠-1}
 
  C.  如果规定输入值int2取值范围为-10~9,那么得到两个等价类,即有效等价类{int2|-10<=int2<=9},无效等价类{int2|int2<-10 或者int2>9}
 
  D.  如果规定输入值int3为质数,那么得到两个等价类,即有效等价类{int3|int3是质数},无效等价类{int3|int3不是质数}
 
 




 
 
相关试题     测试用例设计方法 

  第60题    2019年下半年  
以下关于边界值分析法的叙述中,不正确的是( )。

  第59题    2018年下半年  
以下关于因果图法测试的叙述中,不正确的是( )。

  第34题    2010年下半年  
设计功能测试用例的根本依据是(34)。

 
知识点讲解
· 等价类划分法
 
        等价类划分法
        等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例完全不考虑程序的内部结构,只根据对程序的要求和说明,即需求规格说明书。我们必须仔细分析和推敲说明书的各项需求,特别是功能需求。把说明中对输入的要求和输出的要求区别开来并加以分解。
        由于穷举测试工作量太大,以至于无法实际完成,促使我们在大量的可能数据中选取其中的一部分作为测试用例。例如,在不了解等价分配技术的前提下,我们做计算器程序的加法测试时,测试了1+1,1+2,1+3和1+4之后,还有必要测试1+5和1+6吗,能否放心地认为它们是正确的?我们感觉1+5和1+6,与前面的1+1,1+2都是很类似的简单加法。
        等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误(除非等价类中的某些例子属于另一等价类,因为几个等价类是可能相交的)。使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。
               划分等价类和列出等价类表
               等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试。
               因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。
               有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
               无效等价类:与有效等价类的定义恰巧相反。
               设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
               下面给出6条确定等价类的原则:
               ①在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
               ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
               ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
               ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
               ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
               ⑥在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。
               在确立了等价类之后,建立等价类表,列出所有划分出的等价类如下表所示。
               
               等价类表示例
               确定测试用例
               根据已列出的等价类表,按以下步骤确定测试用例:
               ①为每个等价类规定一个惟一的编号。
               ②设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。
               ③设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。
               在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组。这些组就是等价区间。请看一些例子。
               在两数相加用例中,测试1+13和1+99999999似乎有点不同。这是一种直觉,一个是普通加法,而另一个似乎有些特殊,这个直觉是对的。程序对1和最大数值相加的处理和对两个小一些的数值相加的处理有所不同。后者必须处理溢出情况。因为软件操作可能不同,所以这两个用例属于不同的等价区间。
               如果具有编程经验,就可能会想到更多可能导致软件操作不同的“特殊”数值。如果不是程序员,也不用担心,你很快就会学到这种技术,无须了解代码细节就可以运用。
               如下图所示是复制的多种方法,给出了选中编辑菜单后显示复制和粘贴命令的计算器程序。每一项功能(即复制和粘贴)有5种执行方式。要想复制,可以单击复制菜单命令,键入C,按Ctrl+C或Ctrl+Shift+C组合键。任何一种输入途径都会把当前数值复制到剪贴板中,一一执行同样的输出操作,产生同样的结果。
               
               复制的多种方法
               如果要测试复制命令,可以把这5种输入途径划分减为3个,单击菜单命令,键入C和按Ctrl+C组合键。对软件质量有了信心之后,知道无论以何种方式激活复制功能都工作正常,甚至可以进一步缩减为1个区间,例如按Ctrl+C组合键。
               再看下一个例子。看一下在标准的另存为对话框(如下图所示)中输入文件名称的情形。
               
               存盘对话框
               Windows文件名可以包含除了“、”、“/”、“:”、“.”、“?”、“<>”和“\”之外的任意字符。文件名长度是1~255个字符。如果为文件名创建测试用例,等价区间有合法字符、非法字符、合法长度的名称、过长名称和过短名称。
               例题:根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。“一个程序读入3个整数,把这3个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的”。
               我们可以设三角形的3条边分别为A, B, C。如果它们能够构成三角形的3条边,必须满足:
               A>0,B>0,C>0,且A+B>C, B+C>A, A+C>B。
               如果是等腰的,还要判断A=B,或B=C,或A=C。
               如果是等边的,则需判断是否A=B,且B=C,且A=C。
               列出等价类表,如下表所示。
               
               等价类表
               设计测试用例:输入顺序是【A, B, C】,如下表所示。
               
               测试用例
               请记住,等价分配的目标是把可能的测试用例组合缩减到仍然足以满足软件测试需求为止。因为,选择了不完全测试,就要冒一定的风险,所以必须仔细选择分类。
               关于等价分配最后要讲的一点是,这样做有可能不客观。科学有时也是一门艺术。测试同一个复杂程序的两个软件测试员,可能会制定出两组不同的等价区间。只要审查等价区间的人都认为它们足以覆盖测试对象就可以了。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有