精华内容
下载资源
问答
  • 等价类划分法

    2021-02-20 08:50:53
    什么是等价类划分法等价类划分法是一种典型的、重要的黑盒测试方法,等价类是指某个输入域的子集合。 在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的,一般分为有效等价类和无效等价类。 ...

    什么是等价类划分法?

    等价类划分法是一种典型的、重要的黑盒测试方法,等价类是指某个输入域的子集合。
    在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的,一般分为有效等价类和无效等价类。

    展开全文
  • 本篇文章,来分享大家比较熟悉的测试用例设计方法——等价类划分法。首先,我们可以使用上一篇文章介绍的场景法来梳理业务流程。其次,根据流程中的每个节点的需求说明,使用等价来划分来设计用例。定义等价类划分:...

    本篇文章,来分享大家比较熟悉的测试用例设计方法——等价类划分法

    首先,我们可以使用上一篇文章介绍的场景法来梳理业务流程。

    其次,根据流程中的每个节点的需求说明,使用等价来划分来设计用例。

    定义

    等价类划分:

    依据需求,将输入域划分为若干部分,再从每个部分中选取少数代表性数据当做测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其他值。

    在同一个等价类中的数据,如果该测试用例通过,则代表该等价类的所有数据都通过测试,否则,都不通过测试。

    cdec0b67a0dc6656eb1e5668d293215d.png

    图片中的输入框,是一个公司的用户 ID 输入框,限制输入3位数的整数。

    由此可以分为3个等价类:

    1. 100-999
    2. 少于100
    3. 大于999

    第一个等价类 100-999,输入数据:202 通过测试,则代表其他100-999中的其他数据也通过测试。

    适用场景

    对于等价类划分法,一般适用于有无限多种输入,但又不可能完全穷尽测试,此方法可以使得我们用较少的测试用例,尽可能多地将功能覆盖掉。

    分类

    在等价类划分法中,可以将数据分为有效等价类和无效等价类。

    有效等价类:

    有意义的输入构成的集合,对于需求规格说明书是合法的

    前面的例子中,100-999 属于有效等价类。

    无效等价类:

    不满足需求的集合,对于需求规格说明书是不合法的

    前面的例子中,后面两项分类,都属于无效的等价类。

    设计步骤

    1. 明确测试对象,非测试对象保证正确
    2. 为每一个等价类规定一个唯一的编号

    ac129f370665c2039989593f8907b20b.png

    基于等价类划分的用例设计:

    1. 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,最后使得所有有效等价类均被测试用例所覆盖
    2. 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步,使所有无效等价类均被覆盖

    等价类的特点

    1. 测试相同的内容
    2. 如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷
    3. 如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷
    4. 如果正确的划分等价类,可以大大降低测试用例的数量,测试会准确有效
    5. 如果错误地将两个不同的等价类当做一个等价类,那就会遗漏一种测试情况
    6. 相反,把同一个等价类看作两个不同的等价类,那么测试就会是冗余的

    注意事项:

    1. 不但要考虑有效等价类,也要考虑无效等价类
    2. 仔细划分,审查划分
    3. 过于粗略可能会遗漏掉软件缺陷
    4. 组织评审

    以上就是本篇文章所要分享的内容,欢迎各位大牛指正。你的指正,能让我在测试之路上快速成长。

    Leo Never Stop Fighting!

    展开全文
  • 等价类划分测试方法在很多情况下,很多人想到的测试方法是穷举测试,穷举测试是最全面的测试,但是数据量很大的情况下不太现实,测试效率太低实现目标:用最少的测试数据,比较高的效率,以达到最好的测试质量所以便...

    等价类划分测试方法

    在很多情况下,很多人想到的测试方法是穷举测试,穷举测试是最全面的测试,但是数据量很大的情况下不太现实,测试效率太低
    实现目标:用最少的测试数据,比较高的效率,以达到最好的测试质量
    所以便有了等价类划分的测试方法

    等价类划分是非常常用的测试方法,现就这一方法做出简单总结:

    一、应用条件

    只要有输入框输入数据的地方,就可以用等价类划分这一方法来测试,从大量数据中挑选少量代表数据进行测试

    二、等价类类型

    等价类划分为有效等价类和无效等价类

    有效等价类:有意义的、合理的输入数据集合,程序可以接收到有效等价类的数据并正常执行
    无效等价类:无意义的、不合理的输入数据集合,程序接收到无效等价类的数据,弹出错误提示或者不允许用户输入的数据

    三、等价类划分具体测试步骤

    以下图控件为例:

    f5d795dad7d8ba58b9c1d34d399e37ac.png

    需求如下
    输入长度范围:1-30的整数,且不能为空
    输入宽度范围:1-15的整数,且不能为空
    点击确定按钮,弹出所求长方形面积对话框

    测试思路:
    初学者来说,一般是按照从上到下、从左到右的先后顺序依次测试,测试第一个控件的时候,保证其他控件是正确的

    下面以第一个方框为例:第一步:根据需求,划分等价类
    (1)有效等价类:1-30的整数
    (2)无效等价类:非整数、小于1的整数、大于30的整数、空

    第二步:细分等价类
    有效等价类:1-30之间的整数
    无效等价类:其中非整数可以包含:字母、汉字、小数、特殊字符;
    以及小于1的整数、大于30的整数、空

    等价类表如下:

    75775b44c65e988df30718e0b125a99f.png

    第三步:编写测试用例

    从每个等价类范围中挑选至少一个代表数据进行测试

    856ea88b5a2f43687d31216116975aae.png

    备注:
    1、在测试有效等价类时,当测试对象为多个输入框时,会出现测试用例冗余的问题,此时可以优化测试用例来实现
    2、当测试无效等价类时,需要考虑多个输入框都为无效的情况

    展开全文
  • 目录:定义(What)为什么使用该方法?...采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。所谓等价类,是输入条件的一个子集合,该输入集合中的数据对于揭示...

    a2e48c09db69d2bbec94a5c3d9e9940d.png

    目录:

    1. 定义(What)
    2. 为什么使用该方法?(Why)
    3. 如何划分等价类?(How)
    4. 设计测试用例
    5. 使用场景
    6. 根据测试用例的完整性划分
    7. 等价类划分注意事项
    8. 等价类划分的优缺点
    9. 实战演练

    1. 定义(What)

    等价类划分法是一种典型的,并且是最基础的黑盒测试用例设计方法。采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。

    所谓等价类,是输入条件的一个子集合,该输入集合中的数据对于揭示程序中的错误是等价的。从每一个子集中选取少数具有代表性的数据,从而生成测试用例。

    等价类又分为有效等价类无效等价类。有效等价类代表对程序有效的输入,而无效等价类则是其他任何可能的输入(即不正确的输入值)。有效等价类和无效等价类都是使用等价类划分法设计用例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输入,也能接受无效输入的考验。

    2. 为什么使用该方法?(Why)

    理想的测试,是从所有可能的输入中找出某个小的子集,并且是可能发现错误最多的子集。即:使用最少的测试数据,达到最好的测试质量(最高性价比)。

    这个子集如何确定?可以借助测试用例的两个特性:测试用例数量达到最少;某个测试用例要能覆盖大部分其他测试用例。第二个特性就暗示我们,应该尽量将程序输入范围进行划分,将其划分为有限数量的等价类,这样就可以合理地假设测试每个等价类的代表性数据等同于测试该类的其他任何数据。这两种特性形成了称为等价类划分的黑盒测试方法。

    因此,等价类划分是黑盒测试最基本的方法

    3. 如何划分等价类?(How)

    在给定了输入或外部条件之后,等价类的划分原则如下:

    • 如果输入条件规定了一个取值范围(例如,“数量可以是1到999”),那么就应确定出一个有效等价类(1<数量<999),以及两个无效等价类(数量<1,数量>999)。
    • 如果输入条件规定了取值的个数(例如,“汽车可登记一至六名车主”),那么就应确定出一个有效等价类和两个无效等价类(没有车主,或车主多于六个)。
    • 如果输入条件规定了一个输入值的集合,而且有理由认为程序会对每个值进行不同处理(例如,“交通工具的类型必须是公共汽车、卡车、出租车、火车或摩托车”),那么就应为每个输入值确定一个有效等价类和一个无效等价类(例如,“拖车”)。
    • 如果存在输入条件规定了“必须是”的情况,例如“标识符的第一个字符必须是字母”,那么就应确定一个有效等价类(首字符是字母)和一个无效等价类(首字符不是字母)。
    • 以上是基于字面上的需求划分的等价类,而细化等价类依据的是数据在内存或数据库中存储的类型。(举例,测试加法器,两个文本框,要求输入-99~99之间的整数。整数的存储在计算机底层中会使用不同的算法,正整数和负整数算法不同。所以测试时正整数和负整数应该分开来测(一般对有效等价类数据应用,无效等价类数据一般不需要正、负分别测)。所以将有效等价类细分为:-99--(-1)负整数、0—99 正整数。

    Tips:如果有任何理由可以认为程序并未等同地处理等价类中的元素,那么应该将这个等价类再划分为小一些的等价类。

    划分等价类的标准:
    • 完备测试、避免冗余;
    • 划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
    • 并是整个集合:完备性;
    • 子集互不相交:保证一种形式的无冗余性;
    • 同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。

    4. 设计测试用例

    Step1.确定等价类

    确定等价类是选取每一个输入条件(通常是规格说明中的一个句子或短语)并将其划分为两个或更多的组。注意,我们确定了两类等价类:有效等价类代表对程序的有效输入,而无效等价类代表的则是其他任何可能的输入条件(即不正确的输入值)。这样,我们就遵循了测试原则,即要注意无效和未预料到的输入情况。

    Step2.建立等价类表

    划分等价类后,应建立等价类表,列出与每一个输入条件对应的有效等价类和无效等价类,并为每个等价类设置一个唯一的编号。

    0854eb96285617f726264e5c6a9a37c3.png

    Step3.生成测试用例

    现在利用等价类表来生成测试用例,其过程如下:

    • 编写新的测试用例,尽可能多地覆盖那些尚未被涵盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖(包含进去)。
    • 编写新的用例,每次覆盖一个(仅一个)尚未被涵盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖(包含进去)。

    Tips:用测试用例每次只覆盖1个无效等价类,是因为某些特定的输入错误检查可能会屏蔽或取代其他输入错误检查。举例,如果规格说明规定了“请输入书籍类型(硬皮、软皮或活页)及数量(1~999)”,代表两个错误输入(书籍类型错误,数量错误)的测试用例“(XYZ,0)”,很可能不会执行对数量的检查,因为程序也许会提示“XYZ是未知的书籍类型”,就不检查输入的其余部分了。

    5. 使用场景

    数据输入(编辑框)的地方,可以使用等价类划分法。例如用户登录、注册、新建、查询。

    a1cf8b6023b6b3d5b39f4a0fd2d083ea.png
    用户登录

    de3bbd71b0bfbc56038e06dc0bd4560c.png
    注册

    6. 根据测试用例的完整性划分

    日常逼叨叨:解释一下啥叫根据完整性划分。测试用例没有完美的,不是必须列到多少条才叫100分,再怎么测试都不可能找出所有bug。测试行为是一个精益求精的过程,100分是理想国,测试工程师以这个理想国为目的地,始终在朝拜它的路上,不问何时抵达,只求更接近一步。设计测试用例的目的,图的就是有逻辑得有规律得找出更多bug,那么就有理由认为,测试用例设计的越完整,逻辑性就越强,考虑得就越周到,就可以找出更多bug。小王设计4条用例,小张在这4条基础上,又增加了3条,一共设计7条,那么小张的测试用例一定比小王的更完整。

    完整性从弱到强排序:弱一般等价类测试、弱健壮等价类测试。强一般等价类测试、强健壮等价类测试。下面逐一定义。

    • 弱一般等价类:遵循单缺陷原则,要求用例覆盖每一个变量的一种取值即可,取值为有效值。

    cec64cae9caad52c66ff38e38f55487b.png
    • 弱健壮等价类:在弱一般等价类的基础上,增加取值为无效值的情况。“健壮”意味着程序要有容错性,取到无效值也要正确识别出来。对于有效输入,使用每个有效值类的一个值。对于无效输入,测试用例将拥有一个无效值,并保持其余的值是有效的。

    bb88950370a97cbde52ea62e54dd4c87.png
    • 强一般等价类:遵循多缺陷原则,要求用例覆盖每个变量的每种取值之间的迪卡尔乘积,即所有变量所有取值的所有组合,取值为有效值。例如变量X有3个等价类,变量Y有2个等价类,那么应设计3*2共6个用例。要覆盖所有的有效等价类组合。

    afbfc1919caab92a7c80d1bc71eaf1da.png
    • 强健壮等价类:在强一般等价类的基础上,增加取值为无效值的情况。(不仅取单个无效值,也要取多个无效值。)

    019a5b886bce65aa3ffc07bcab35a46f.png

    7. 等价类划分注意事项

    不仅要针对输入域进行等价类划分,也应针对输出域进行等价类划分(见“实战演练”的“三角形问题”),这点一定不要忘记了!此外,如果考虑将端到端场景进行细分,等价类划分法同时也适用于中间过程的输入、输出域进行划分。

    8.等价类划分的优缺点

    • 优点:等价类划分的测试用例设计方法减少了穷举法带来的大量测试用例,保证测试效果和测试效率,一般是有输入性需求的被测对象可以采用的方法;
    • 缺点:输入与输入之间的关系考虑少,可能产生一些逻辑错误。还需要其他用例设计方法来补充测试。

    9.实战演练

    例1.注册邮箱

    邮箱名要求6~18个字符,可使用字母、数字、下划线、需以字母开头。

    9f6b6fc2e4a34c54497350768bc87661.png

    445e2901196777d1b03b5b65ec0cda7d.png

    9587993b96a4e1863b4cbd62043f77aa.png

    例2. 三角形问题

    程序要求:输入三个整数a、b、c分别作为三角形的三边长度,通过程序判定所构成的三角形的类型;当三角形为一般三角形、等腰三角形或等边三角形时,分别作处理。

    <问题分析>

    • 输入值域的显/隐式要求:A整数、B三个、C正数、D两边之和大于第三边、E三边均不相等、F两边相等但不等于第三边、G三边相等;(D~G由输出值域的等价类隐性确定)
    • 输出值域的等价类:R1={不构成三角形}、R2={一般三角形}、R3={等腰三角形}、R4={等边三角形};

    <问题解答>

    (1)列出等价类表并编号

    84bdbe5786f6e93f2179ef0ad59fa310.png

    (2)设计覆盖有效等价类的测试用例

    0be836049f5046447126490848302da8.png

    (3)设计覆盖无效等价类的测试用例

    d5cfc19e2edb1e2f14ca164e08cd3208.png

    例3.NextDate 函数

    函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2020年3月 7日,则函数的输出为 2020年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:1≤month≤12,1≤day≤31,1920≤year≤2050。

    <问题分析>

    该函数的主要特点是输入变量之间的逻辑关系比较复杂,具体体现在:输入域的复杂性;闰年规则。如,变量year和变量mouth取不同值时,对应的变量day会有不同的取值范围,或1~30或1~31或1~28或1~29。

    <问题解答>

    (1)划分等价类

    等价关系的要点是:等价类中的元素要被“同样处理”,即要么都在有效层次上进行,要么都在无效层次上进行。因此,更详细地有效等价类为:

    • 变量mouth:M1={mouth: mouth有30天}、M2={mouth: mouth有31天,除去12月}、M3={mouth: mouth是2月}、M4={mouth: mouth是12月};
    • 变量day:D1={day: 1≤day≤28}、D2={day: day=29}、D3={day: day=30}、D4={day: day=31};
    • 变量day:Y1={year: year是闰年}、Y2={year: year是平年}。

    (2)一般等价类测试

    • 弱一般等价类测试

    考虑到单边假设,机械地以对称方式来选择对应类的有效输入:

    bc10c52d6cd4a85123e1803873ec29a2.png
    • 强一般等价类测试

    从弱等价类测试到强等价类测试,不管是一般类还是健壮类,都做要独立性假设,都要以等价类的笛卡尔积表示。

    在本问题中,变量mouth等价类数量为4、变量day等价类数量为4、变量year等价类数量为2,故强一般等价类测试用例数量为4*4*2=32。

    8c687a3bccb1930446cf2a557d4cd83a.png

    (3)健壮等价类测试

    • 弱健壮等价类测试

    79939ea821a19d2a9030df9767bb75a3.png
    • 强健壮等价类测试

    c85767dabbdb0faf970025cf9e5bf026.png

    269651ac2a0c663c6caef2a27d0feeb3.png
    展开全文
  • 等价类划分测试用例等价类划分法设计测试用例测试用例测试用例(Test Case):是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、...
  • 4.2.1 等价类划分等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。等价类是...
  • 等价类划分法测试用例

    千次阅读 2019-07-31 15:41:55
    等价类划分法 边界值分析法 错误推测法 因果图法 判定表驱动法 正交试验设计法 功能图法等` ` 等价类划分法概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据...
  • 温故而知新-等价类划分法软件测试  刚刚看了下‘软件测试技术经典教程’,其中黑盒技术中的重要方法之一:等价类划分方法  题目是这样的,编写一个c语言程序,功能是计算两个1~100之间整数的和。然后只是按照需求...
  • 等价类划分法实验

    2020-05-05 22:28:24
    一、使用等价类划分法分析三角形问题 要求一:需包含有效等价类及无效等价类划分表格 以及 测试用例表格 要求二:代码实现 实现 方式一:设计 三个输入框 一个判断按钮 点击按钮后显示结果 实现方式二:Java控制台...
  • 【STMT】等价类划分法

    2019-06-11 22:40:44
    文章目录等价类划分法题目解答 等价类划分法 等价类划分法是一种典型的黑盒测试方法,通过划分输入数据集来减少测试所需的用例,包括划分等价类和构造测试用例两个步骤: 划分等价类 划分等价类就是将输入数据集...
  • 等价类划分法是常用的黑盒测试用例设计方法,测试用例设计时的唯一依据是产品需求文档。 一、定义 所谓等价类,是把所有可能的输入数据,即程序的输入域划分为若干子集,然后从每一个子集中,选取少数具有代表性...
  • 等价类划分法的介绍和概念 ②等价类的类型划分 ③等价类测试用例的类别 ④等价类划分的原则 ⑤等价类划分法的测试用例应用 ⑥边界值分析法的实例分析 1、等价类划分法的介绍和概念 划分 指互不相交的...
  • 软件测试方法的讲义考试题等价类划分法.ppt
  • 实验一 黑盒测试法——等价类划分法 实验目的:1.掌握等价类划分的方法 2.掌握按等价类方法设计测试用例
  • 黑盒测试技术之等价类划分法一、 等价区间与等价测试原理二、等价类划分三、常见等价类划分形式四、应用 一、 等价区间与等价测试原理 在描述等价类法之前,先来解释等价测试原理。正是基于这个原理,才有了等价类...
  • 等价类划分法测试用例设计举例

    万次阅读 多人点赞 2018-02-27 00:12:25
    等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例...
  • §5.4黑盒测试的测试用例设计 5.4.1 等价类划分法(等价分配) 把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类别或等价区间), 使得每个子集中的一个典型值在测试中的作用与这一子集中所有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,874
精华内容 749
关键字:

等价类划分法