软件测试基础——常用用例设计方法

  从理论层面来讲,设计用例的方法有很多,如果你去翻阅测试图书或网络教程,会发现一堆让人眼花缭乱的测试方法,比如等价类划分法、边界值分析法、错误推测方法、因果图方法、判定表驱动分析法、正交实验设计方法、功能图分析方法、场景设计方法、形式化方法、扩展有限状态机方法等等,但是从软件企业实际的工程实践来讲,真正具有实用价值并且常用的只有前三种方法。


  测试场景:有一个学生成绩录入框,输入的数值范围是在0 ≥ \geq X ≤ \leq 100 的正整数;现在测试人员要对该输入框进行测试,该如何设计测试用例?

  显然,在上面这个场景中,测试人员不可能对将0~100之间的每个数字都测试一遍,所以为了提高测试效率,减少没有必要的工作量,这时我们会引入等价类划分法的用例设计方法,帮助测试人员设计出合理的用例。

  一、等价类划分法

   等价类划分方法,是将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成了一个等价类。后续只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。

    而等价类分为有效等价类和无效等价类,有效等价类:指的是对程序的规范是有意义的、合理的输入数据所构成的集合,即所有合法的输入。在上面在具体问题中,有效等价类可以是一个也可以是多个;如上面测试场景中的集合[0,100];而无效等价类:是指对程序的规范是不合理的、无意义的,输入后会导致程序出错的输入数据所构成的集合,在具体问题中,有效等价类至少有一个也可能有多个;如上面场景中的集合:[ − ∞ -\infty ,-1)、(101, + ∞ +\infty +],小数、特殊字符、空格、标点符号等;

  局限性:该方法孤立的考虑各个输入数据的测试功效,但没有考虑多个测试数据的组合效应,可能会遗漏了输入数据易于出错的组合情况。且多个输入数据孤立的测试会导致测试用例用例非常庞大,不利于维护和执行。 所以等价类设计法经常会和因果图法结合使用。

  二、边界值分析法

   指的是列出所有单元功能、输入、状态及控制的合法边界值和非法边界值,设计测试用例,包含全部边界值的方法。是选取输入、输出的边界值进行测试。因为通常大量的软件错误是发生在输入或输出范围的边界上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。采用边界值分析法来设计测试用例,可使被测程序能在边界值及其附近运行,有效地暴露程序中的错误。(从方法论上可以看出来,边界值分析是对等价类划分的补充,所以这两种测试方法经常结合起来使用。)在使用边界值设计测试用例时,首先要明确输入域的边界情况,选取的测试数据应该正好等于、刚刚小于和刚刚大于边界值,而不是选取每个等价类内的任意值作为测试数据。如上面场景中,应选取-1、0、100、101这几个数字作为边界值的测试数值;

  三、错误推测法
   基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法,该方法的基本思想是列举出程序中所有可能有错误和容易发生错误的特殊情况,根据他们设计测试用例。常见依据有:以前产品测试中发现过的错误;产品在客户实际使用过程中发现的错误;容易发生错误的情况;一些公共模块、功能;修复了Bug的功能和模块;

  局限性:错误推测法和目前非常流行的“探索式测试方法”的基本思想和理念是不谋而合的,这类方法在目前的敏捷开发模式下的投入产出比很高,因此被广泛应用。但是,这个方法的缺点也显而易见,那就是难以系统化,并且过度依赖个人能力。在软件企业的具体实践中,为了降低对个人能力的依赖,通常会建立常见缺陷知识库,在测试设计的过程中,会使用缺陷知识库作为检查点列表(checklist),去帮助优化补充测试用例的设计。

  熟练掌握以上三种设计测试用例的方法,就相当于拿到了打仗所需要的各种枪支弹药,接下来就是如何在实战中用这些武器的问题了!

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值