“好的”测试用例必须具备哪些特征?

一个“好的”测试用例,必须具备以下三个特征。

1.整体完备性: “好的”测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求。

2.等价类划分的准确性: 指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过。

3.等价类集合的完备性: 需要保证所有可能的边界值和边界条件都已经正确识别。

三种最常见的测试用例设计方法

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

第一,等价类划分方法

等价类中任意一个输入数据对于揭露程序中潜在错误都具有同等效果。后续我们只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。

举一个例子,比如:学生信息系统中有一个“考试成绩”的输入项,成绩的取值范围是 0~100 之间的整数,考试成绩及格的分数线是 60。

可以在 0~59 和 60~100 之间各随机抽取一个整数来进行验证。这样的设计就构成了所谓的“有效等价类”。

你不要觉得进行到这里,已经完成了等价类划分的工作,因为等价类划分方法的另一个关键点是要找出所有“无效等价类”。显然,如果输入的成绩是负数,或者是大于 100 的数等都构成了“无效等价类”。

在考虑了无效等价类后,最终设计的测试用例为:

有效等价类 1:0~59 之间的任意整数;

有效等价类 2:59~100 之间的任意整数;

无效等价类 1:小于 0 的负数;

无效等价类 2:大于 100 的整数;

无效等价类 3:0~100 之间的任何浮点数;

无效等价类 4:其他任意非数字字符。

第二,边界值分析方法

边界值分析是对等价类划分的补充,你从工程实践经验中可以发现,大量的错误发生在输入输出的边界值上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。

我们继续看学生信息系统中“考试成绩”的例子,选取的边界值数据应该包括:-1,0,1,59,60,61,99,100,101。

第三,错误推测方法

错误推测方法是指基于对被测试软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例的方法。这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,当然还有个人的能力。

错误推测法和目前非常流行的“探索式测试方法”的基本思想和理念是不谋而合的,这类方法在目前的敏捷开发模式下的投入产出比很高,因此被广泛应用。但是,这个方法的缺点也显而易见,那就是难以系统化,并且过度依赖个人能力。

参考:极客时间《软件测试52讲》(茹炳晟)

什么是“好的”测试用例?相关推荐

  1. JMeter自学笔记3-创建自己的第一个测试用例

    一.写在前面的话: 上篇我们已经认识了JMeter的图形界面,大家应该都是很懵的.那么这篇,我们将学习使用JMeter创建第一个属于自己测试用例. 二.创建自己的第一个测试用例: 1.新建一个Thre ...

  2. python 文案自动生成_Python自动化测试如何自动生成测试用例?

    原文作者:陈安妮annie1 原出处:简书 上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰,我们将立即处理. 传统的测试用例需要测试或者开发人员将用户的操作用代码表示出来,通过断言判断 ...

  3. 软件测试--利用正交表设计测试用例

    输入条件如下: 姓名:填.不填 性别:男.女 学历:小学.初中.高中.专科.本科.硕士.博士 等级:普通.VIP 用正交表设计测试用例 Allpairs安装及使用 输入数据时要用tab键,或者使用ex ...

  4. 【★更新★】高性能 Windows Socket 服务端与客户端组件(HP-Socket v2.0.1 源代码及测试用例下载)...

    HP-Socket 以前为某大型通信项目开发了一套通用 Windows Socket TCP 底层通信组件,组件代号为 HP-Socket.现在把 HP-Socket 的所有代码向大众公开,希望能对大 ...

  5. TestLink1.9.3测试用例:Excel转换XML工具一

    最近在整理测试用例,所以想找一个合适的工具来完成对测试需求.测试用例的管理.对比了一翻,发现开源工具中扩展比较好的还属TestLink,而且还可以与JIRA进行对接,这样就引起了我更大的兴趣.加上之前 ...

  6. 怎样设计出优秀的测试用例?看看下面就知道了

    想要成为一名合格的软件测试工程师,一份合格软件测试报告是非常重要的,软件测试的核心也就是测试的用例了,我们通过用例可以看出怎么设计出来可以发现问题,可以有效的覆盖需求的,没有冗余的用例是每个测试工程师 ...

  7. 测试用例设计方法基础理论知识

    一.什么是测试用例 测试用例设计:将软件测试的行为活动,作为一个科学化的组织归纳. 测试用例:设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果. 因为我们不可能进行穷举 ...

  8. 测试用例设计白皮书--正交实验设计方法

    一.方法简介 利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到.往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试 ...

  9. 接口测试用例测试模板

    < [返回目录] 编写人员 场景1说明 测试用例编号 服务名_操作名_01(服务名.操作名来源于规范服务编码和操作编码,需全部大写,编号由2位组成) 测试用例类型 正常 简要描述 数据准备 说明 ...

  10. 软件测试 单元测试用例设计,单元测试的用例设计

    首先,我们先来思考一个问题:单元测试中,哪一个环节更重要? 要回答这个问题,我们先需要了解单元测试到底有哪些环节,读到这里,请暂停一分钟,回忆一下我们平时的单元测试实践(请最小化浏览器). 对于单元测 ...

最新文章

  1. Java 5种字符串拼接方式性能比较。
  2. UA PHYS515A 电磁理论V 电磁波与辐射10 简单辐射问题 一根通电电线的辐射
  3. The World is a Theatre(组合数学)
  4. 计算机安全模型研究与应用,软件哨兵安全动态检测模型的研究与实现-计算机应用研究.PDF...
  5. 对比学习:充分利用有限的医学标注数据 |NeurIPS 2020
  6. 神经网络之文本情感分析(三)
  7. 通信(2)---5G网络到底能带来什么?
  8. mysql 自定义函数教程_MySQL自定义函数
  9. docker搭建lnmp环境
  10. python熵权法求权重
  11. Windows7安装VC2015-2019_redist.x64提示“设置失败0xc8000222-未指定的错误”
  12. linux下部署selenium爬虫程序
  13. 电脑网络连接正常,但浏览器无法打开网页的原因和解决方法
  14. 代码写得很牛逼但UI界面却搞得很丑?来,杨工带你!
  15. 《刻意练习》读书笔记
  16. Kubeadm 部署企业级高可用Kubernetes(适用于ECS)
  17. Python一行代码能做什么,30个实用案例代码详解
  18. 2018年北大软微考研复试面试问题精选
  19. 不用找,你想要的建筑场景游戏素材素材都在这里
  20. linux vt码的学习和使用

热门文章

  1. FLASH AS3 TextField
  2. uuid表示时间的部分_基于时间UUID的妙用
  3. linux7解绑bond命令,linux多网卡的7种bond模式原理配置
  4. css easyui,对比easyui和jwwui css
  5. python bind_all_【Python】__all__ 暴露接口
  6. OpenCV模板匹配函数:matchTemplate()介绍
  7. Python yaml模块
  8. docker删除私有仓库中的镜像
  9. BZOJ 1492 货币兑换Cash
  10. React.js入门基础一