精华内容
下载资源
问答
  • 知乎问题:常见测试用例设计方法有哪些呢? 有什么比较好的基础理论书籍推荐吗?   [我的回答]2018年8月25日 测试用例设计技术和方法,其目的是为了解决测试分析与设计过程中碰到的问题,纯粹的理论只是应用...

    知乎问题:常见的测试用例设计方法有哪些呢?

    有什么比较好的基础理论书籍推荐吗?

     

    [我的回答]2018年8月25日

    测试用例设计技术和方法,其目的是为了解决测试分析与设计过程中碰到的问题,纯粹的理论只是应用技术和方法的基础,但不是目的。测试用例分析与设计过程,需要我们不断的应用结构化思维、发散性思维和可视化思维,以构建系统化的测试分析与设计框架。

     

    我将2011年写的《软件测试设计》书中的一些测试用例技术与方法的思维导图分享给大家,同时结合多年的测试咨询课程《问题驱动的软件测试设计》内容,希望对大家有所帮助。测试用例分析与设计过程中,大家需要注意的是:

    1. 解决问题是目的,技术与方法是帮助解决问题的基础,但不要本末倒置;
    2. 通过分析与设计得到测试用例的过程,必须要在其中构建测试模型,其中的主要输入来自被测对象的领域知识和题主所说的测试技术与方法;
    3. 每个测试用例分析与设计的方法,其在过程中能解决的问题是不同的,或者其作用是不同的。实践过程中,绝对不是技术的堆积,而是应用。例如:
    • 基于质量属性构建质量模型、功能交互模型、用户场景模型,其主要目的是尽量多的识别测试点;
    • 基于规格说明的技术,其主要目的是对上面得到的测试点进行细化,选择测试输入和测试输入的组合;
    • 基于风险的测试技术,主要目的是选择测试重点,在有限时间内平衡测试质量、范围、时间和成本的限制关系;
    • 测试用例的分析与设计,与后续的测试执行是不断反馈和改进的过程,因此测试执行过程中,除了前期设计的测试用例开展之外,还需要不断的进行探索性测试,以平衡结构化和发散性思维的不断集成。

    随着测试经验和技能的不断提升,现在回头看2011年的《软件测试设计》,还是存在不少不成熟的思考。对我自身而言,这几年的不断学习和实践,在测试用例分析与设计的实践和解决问题能力方面,也在不断有新的收获。这也体现了我们测试过程中的“持续改进”!

     

    图1 测试用例分析与设计的框架

     

    展开全文
  • 软件测试面试 转载自软件开发网 www.mscto.com 想知道常见测试用例设计方法有哪些吗?请看
  • 等价类划分法就是将所有测试用例划分为几个互不相交的子集,他们的并集就是全集,再从每个子集中选取若干具有代表性的值作为测试用例。.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据...

    1、等价类划分

    划分等价类:

    等价类是指某个输入域的子集合.等价类划分法就是将所有测试用例划分为几个互不相交的子集,他们的并集就是全集,再从每个子集中选取若干具有代表性的值作为测试用例。.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

    也就是说,输入值归类,比如测试登录的用户名是否合法,
    用户名的定义为:1-5位数字组成的字符。
    我们可以先划分子集:
    空用户名,1-4位数字,5位数字,6位或以上数字,非数字。
    然后再从每个子例中挑选若干代表值:
    1、 空用户名:""
    2、1-5位数字:123(有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
    4、6位或以上数字:123456 (无效等价类实例)(123456和1234567没有本质上的区别)
    5、非数字:!!(无效等价类实例)
    到底划分到何种程度才算合适呢,这个就需要看你有的资源和时间,以及是否值得的问题了,因为你总会有未发现的缺陷存在,所以我们能做的就是尽量发现问题并解决

    有效等价类:
    对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明书中规定的功能和性能

    无效等价类:
    根据规格说明书 ,不符合需求的集合

    2、边界值分析法

    边界值分析法是对等价类划分方法的补充,大量的错误是发生在输入或输出范围的边界上,而不是输入范围的内部,因此针对各种边界情况设计测试用例,可以查出更多的错误。

    使用边界值分析法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试边界情况。应当选取正好等于,刚刚大于或者刚刚小于的值作为测试数据,而不是选取等价类中的典型值或者任意值作为测试数据例如,对于在区间[min,max]的值,测试用例可以记为min,min+,max,max-

    例如:假定X为整数,5 ≤X≤ 10,写出合适的边界测试用例
    根据题目的要求,设计用例主要如下:
    1、小于5的值(无效等价类):可以选择数字4,因为大于4的数字一定大于所有小于5的用例
    2、边界值(有效等价类):可以选取数字5和6,9和10,5-9的任何一个数字
    3、大于10的值(无效等价类):选取11因为11是大于10中数的最小下限

    3、错误推测法

    基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
     错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例

    -例如, 在单元测试时曾列出的许多在模块中常见的错误-以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有,
    输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行-这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.

    4、因果图方法

    等价类划分方法和边界值分析方法都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等,考虑输入条件之间的相互组合,可能会产生一些新的情况。
    因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。
    因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况

    常见的因果表达关系有:
    恒等:如果原因为真,那么结果必定为真。
    与:只有2个原因都为真,那么结果为真
    或:2个原因中有一个为真时,结果就为真。
    非:只有原因为假,结果才为真。


    因果图法设计测试用例的步骤如下:
    (1)分析所有可能的输入和可能的输出。
    (2)找出输入与输出之间的对应关系。
    (3)画出因果图。
    (4)把因果图转换成判定表。
    (5)把判定表对应到每一个测试用例。

    5、正交表分析法

    有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

    正交法测试用例的设计步骤:
    1、有哪些因素(变量)
    2、每个因素有哪几个水平(变量的取值)
    3、选择一个合适的正交表
    4、把变量的值映射到表中
    5、把每一行的各因素水平的组合作为一个测试用例
    6、加上你认为可疑且没有在表中出现的用例组合

    6、场景分析方法

    概述:从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。通过运用场景来对系统的功能点或业务流程进行描述,从而提高测试效果。
    在这里插入图片描述

    场景:由一系列相关活动组成,且场景中的活动还能由一系列场景组成。
    基本流:是经过用例的最简单的路径,无任何差错, 程序从开始直接执行到结束。
    备选流:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不再加入到基本流中。

    在这里插入图片描述

    场景 1 基本流
    场景 2 基本流 备选流 1
    场景 3 基本流 备选流 1 备选流 2
    场景 4 基本流 备选流 3
    场景 5 基本流 备选流 3 备选流 1
    场景 6 基本流 备选流 3 备选流 1 备选流 2
    场景 7 基本流 备选流 4
    场景 8 基本流 备选流 3 备选流 4

    场景设计法测试用例:
    (1)根据说明,描述出程序的基本流及各项备选流
    (2)根据基本流和各项备选流生成不同的场景
    (3)对每一个场景生成相应的测试用例
    (4)对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

    展开全文
  • 常用测试用例设计方法-不常见设计方法输入域测试用例设计方法输出域测试用例设计方法异常分析测试用例设计方法错误猜测测试用例设计方法 输入域测试用例设计方法 输入域测试法是一种综合的方法,其综合考虑了等价类...

    输入域测试用例设计方法

    输入域测试法是一种综合的方法,其综合考虑了等价类划分法、边界值分析法等,针对输入可能存在的各种情况进行考虑,关于输入域测试法主要考虑以下三个方面:
    (1)极端测试,需要选择测试数据覆盖输入域的极端情况。
    (2)中间范围测试,选择域内部的数据进行测试。
    (3)特殊值测试,根据要计算的功能特性的基础来选择测试数据,这个过程尤其适合于数学计算。所有计算功能的属性可以有助于选择能够验证被计算方案正确的测试数据。例如Sin()函数的周期,可以使用2Π不同倍数的测试数据。
    等价类与边界分析法是输入域测试的一部分,在实际测试过程中还需要考虑以下两方面:
    (1)特殊值:特殊值与输入的特点有关,需要充分了解该输入的存储和处理过程
    (2)长时间输入:对于一些没有指定长度的输入,测试时需要长时间持续的输入,以验证输入的数据是否会引起内存越界,从而导致系统故障的情况

    输出域测试用例设计方法

    上面介绍了输入域的测试,但是系统输出与输入之间并不一定是线性关系,所以从输出的角度来说,覆盖了输入域并不代表一定能覆盖输出域,故测试时需要对输出域进行测试。
    测试时需要分析各输出的等价类,通常需要先缺点输出域所有可能情况,然后再对输出域的结果进行分类,最后需要设计输入的数据来覆盖所有输出的结果。
    同时分析各输出的边界值,通常需要先确定输出域的所有边界值,再设计不同的数据来覆盖所有输出域的边界值,这样可以保证所有输出域的边界值都可以被有效覆盖到。这样可以保证系统功能最大和最小的输出条件都已被检查。

    异常分析测试用例设计方法

    异常分析法是针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依次设计测试用例,验证系统的容错能力,以及当系统出现异常时故障恢复的能力。测试时可以人为地制造一些异常的情况(如安装程序时断电、数据损坏等情况),来验证系统的处理情况。

    错误猜测测试用例设计方法

    错误猜测法是根据以往的测试经验和对系统内部知识的了解,列出系统中各种可能存在的错误和容易发生错误的特殊情况,并设计出测试用例。随着对产品了解程度的加深和测试经验的丰富,使用错误猜测法设计测试用例往往非常有效,但是错误猜测法只能作为测试设计的补充,而不能单独用来设计测试用例,否则可能导致测试不充分。
    错误猜测不是瞎猜,不是没有根据和目的地猜测,它需要了解系统薄弱的地方和开发人员的盲点,也可以根据以往缺陷分析的报告来分析系统最容易出错的地方,作为错误猜测法的依据。

    展开全文
  • 常见测试用例设计方法

    千次阅读 2018-11-12 15:32:07
    测试用例常见设计方法有:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。 一.等价类划分法 顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集...

    测试用例常见的设计方法

    测试用例常见的设计方法有等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。

    一.等价类划分法

    顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
      例如,我们要测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。
      我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字。
      然后从每个子集选出若干个有代表性的值:
      空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
      1-7位数字:“234” (无效等价类实例)
      8位数字:“00000000” (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
      9位或以上数字:“1234567890” (无效等价类实例)
      非数字:“abc&!!!” (无效等价类实例)
      他们5个,就是用等价类划分选出的测试用例。实际上,对于1-7位数字的子集来说,选“234”和“11111”没有本质的区别。
      等价类的划分,最关键的是子集的划分。实际上,非数字还可以继续划分子集:字母,特殊字符。
      究竟要划分到何种程度才合适呢?我请教过做测试的朋友,他的意见是,看你有多少资源和时间,还有,看是否值得。
      对此,我表示赞同,毕竟无论你怎么测试,总会有未发现的缺陷存在,所以,先解决容易被发现的问题再说。

    二.边界值分析法

    长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
      例如,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取的边界值为:10,11,99,100。
      注:上面只是说边界值,如果是完整的测试,除了边界值外,还需要一个正常值,即12-98之间的任意值。

    三.错误推测法

    错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
      这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

    四.判定表法

    又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
      例如,某公司的对客户分类标准如下:
      顾客每次订货额在 1000元以上(含1000元),信誉好的,订单设“优先”标志;
      信誉不好,但是老客户的,订单设“优先”标志;
      信誉不好,但是新客户的,订单设“正常”标志;
      每次订货额在 1000元以下,订单设“正常”标志。

      绘制的决策表如下:

    此表分两大行,两大列,分别用不同的颜色区别。
      浅蓝:列出所有条件(或称为输入)
      浅灰:列出所有结果(或称为输出,行动或决策)
      浅黄:穷举所有条件的组合
      浅绿:根据每一列的条件,判断出结果
      因为穷举了所有条件,所以可以说这个判断是100%正确的。下一步是对这个表进行合并优化。
       例如,从编号为1,2的列可以看出,顾客订单>=1000,信誉好,不管是新顾客还是老顾客,都设为优先,于是上面的表合并整理后,得到下表

    这样,我们就可以得到更清晰的逻辑判断,也可以更好的协助我们编写测试用例。而决策表,对于开发人员来说一样有用。
      从上面的表格,我们就可以写出更简洁的判断语句。

    五.正交实验法

    用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
      其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
      虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。
      例如:
      某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询。
      按照传统的方式,我们将会穷举所有的组合,来编写测试用例,组合个数是222=8。
      排列组合参见下表

    当组合条件不多的时候,穷举暂时没问题,但是,一旦条件多了,组合个数就会以指数形式增长。
      这个时候,就要用到正交表了,通过选出有代表性的测试实例,达到以少数代替全面的效果。
      正交表如何设计呢,这个问题实际很复杂,涉及到组合统计的数学知识,有的正交表甚至到目前为止,还未得出算法。
      我们只能通过已知的模型套上去。
      例如,Dr. Genichi Taguchi 设计的正交表
      https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
      Technical Support ( support.sas.com ) com 提供的
      http://support.sas.com/techsup/technote/ts723_Designs.txt
      首先,我们来看看基本的概念。
      因素:被测的元素称为因素,例如上面的性别,班级,成绩,均为因素,因素的个数我们记为k,此处k=3
      水平:因素的可能值,称为水平。例如班级的可能值为1或2。水平的个数我们记为m,此处正好每个因素的水平都是2,此处m=2。
      那么正交表的行数n的计算公式为,n=k*(m-1)+1,此处为n=3*(2-1)+1=4。即共有4行。
      我们通常用L表示这个正交表,完整的表示为Ln(mk)
      如果每个因素的水平数相等,我们称之为单一水平正交表,例如本例子就是,L4(23)
      各列水平数不完全相同的正交表称为混合水平正交表。如L8(4124),表示有一个因素的水平为4,有4个因素的水平为2。
      按照这个表达式,我们可以去套用已知的正交表。例如本例子是L4(23),从上面提供的两个链接均可以查到例子,虽然表达方式略有不同,但实际是一样的,我们从http://support.sas.com/techsup/technote/ts723_Designs.txt 查到,其正交表的格式为:
      23 n=4
      000
      011
      101
      110
      此处0,1是对可能值的编号,例如,我们可以将(0,1)分别映射为(女,男)(1班,2班)(及格,不及格)
      按照上面的格式,
      000:女 1班 及格
      011:女 2班 不及格
      101:男 1班 不及格
      110:男 2班 及格
      这就是我们所得到的正交表。

    六.总结

    功能测试方法还有很多,例如因果图法,状态转换测试法等,他们都略为复杂,像正交实验法一样,有各自的一套东西,不过本质都是通过画图,让我们更好的思考,最后转化成判定表。
      实际上常用的是前面五种方法,包括:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。

    展开全文
  • 测试前准备 作为一个测试人员,软件测试的流程首先是要非常熟悉的,何时何地都能脱口而出,避免一切翻车... 5种常见测试用例设计方法  一、等价类划分  1)概念  某个输入域的集合,在这个集合中每个输入条件都是
  • 1. 等价类划分  等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某...等价类划分可两种不同的情况:有效等价类和无效等价类. 2. 边界值分析法 边界值
  • 适合初建测试团队或者给测试新人做软件测试功能测试基础培训资料,通过实例浅显易懂的解释常见测试用例设计方法
  •  常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入...
  • 测试用例设计方法

    2019-11-20 19:03:30
    测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果,以便测试某个程序路径或核实是否满足某个特定需求。通过大量的测试用例来检验软件的运行效果,它是指导测试工作进行的依据。 测试...
  • 1. 等价类划分 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的....等价类划分可两种不同的情况:有效等价类和无效等价类. 2. 边界值分析法 边界值...
  • 一、测试用例的切面设计  所谓测试切面设计,其实就是测试用例大项的划分。测试用例划分的经典方法是瀑布模型,也就是从上到下,逐渐细分,大模块包括小模块,小模块包括更小的模块。但仅仅如此是不够的,我们还要...
  • 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。 等价类划分法 概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个...
  • 常见测试用例的设计方法 软件测试的核心是测试用例的编写,测试用例的编写对软件测试的过程来说十分重要。 黑盒测试和白盒测试是两类不同的测试方法。 1.我们为什么要做好测试用例设计 1)测试用例的好坏,...
  • 白盒测试用例设计技术可分为逻辑覆盖和路径覆盖,逻辑覆盖又可分为以下几种,从弱到强:语句覆盖(SC):设计足够多的测试用例,确保每条语句都被执行过。判定覆盖(DC):设计足够多的测试用例,确保每个判定都分别...
  • 请分别以具体的例子来说明这些方法测试用例设计工作中的应用。 1)等价类划分 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就...
  • 方法是一种重要的,常用的黑盒测试用例设计方法。 2.划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就
  • 1. 等价类划分常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以...
  • 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。 (一)等价类划分法 定义:等价类划分法是把所有可能输入的数据,即程序的...
  • 在进行测试分析和设计之前,测试人员首先需要确定测试的需求来源,即测试用例设计需要参考哪些测试依据文档? 测试用例设计的输入文档是什么?测试人员头脑中第一个蹦出的参考依据就是需求规格说明。确实,需求文档...
  • 软件测试黑盒测试用例设计方法 黑盒测试是一种功能测试,有时也被成为数据驱动的测试。它把程序看做一个完全封闭的黑盒子,在测试者完全不了解,或不考虑程序的内部结构和逻辑处理过程的情况下,根据规格说明书规定...
  • 针对各个功能点,主要内容包括设计测试用例,列出常见问题,分析结果
  • a)当测试用例使用无效等价类,应单独测试,即不能与其他无效等价类组合; b)要实现100%覆盖率,测试用例必须通过使用每个等价类中至少一个值来覆盖所有已识别的等价类(包括无效等价类)。 2. 边界值分析 a)边界...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,849
精华内容 15,939
关键字:

常见的测试用例设计方法有哪些