我们为什么要写测试用例?

翻译 2007年09月25日 21:13:00
 
我们为什么要写测试用例?
 
陈能技
2007-9-25
 
原文: Why do we write Test Cases? - Ainars Galvans
 
测试用例的编写作为QC特定的概念、技能,成为唯一广泛公认的东西,这是我进入测试行业时感到很惊讶的事情。现在,过去10多年了,我终于有点明白了。现在,我是探索性测试(Exploratory Testing)的鼓吹者,我在这之前甚至没有听过这个术语和方法。但是,我现在仍然写测试用例,在一些有意义的地方,相信“银弹”适用于任何地方是错误的。
 
在上年的时候,我曾经把测试用例比喻成盾,而把测试比喻成剑。(http://www.testingreflections.com/node/view/3041),我仍然相信测试用例的创建会有两个用途或目的:
 
1) 测试用例被认为是要交付给顾客的产品的一部分。测试用例在这里充当了提高可信度的作用。典型的是UAT(可接受)级别。
 
2) 测试用例只作为内部使用。典型的是系统级别的测试。在这里测试效率是目的。在代码尚未完成时,我们基于设计编写测试用例,以便一旦代码准备好了,我们就可以很快地测试产品。
 
在转向敏捷开发的过程中,第二条失去了它的价值。我在我们公司和其他公司都看到了这样的事情。看起来要变成以下的方式:
a) 测试用例被内部使用,但是目的是可信度,而不是效率。也意味着测试用例会在测试执行过程中被不断修改和重写。
 
b) 探索性测试会取而代之,不写测试用例
 
我不回进一步去探讨a)的方式,因为很明显这种是很不可靠的测试管理 – 你不能使管理层相信这是低效的利用资源的方式。也有一些时候,测试用例被创建只是用于报告测试进度。比如说,我们有80%的测试用例编写了,而其中70%通过测试。我已经在抨击这种方式,并且还会继续抨击它。因为这是典型的用缺陷数字来衡量质量,用测试用例个数来衡量测试进度的错误方法。
 
上面两种方式是否正确依赖于我们是否需要可重用的测试用例。我相信回归测试用例的编写和自动化测试脚本的编写有很多共同点。甚至可以说它们有3个级别:
 
1、 纯探索性测试
2、 执行编写好的测试用例
3、 执行自动化测试脚本
 
从上到下,设计所需的时间要不断增加,但是测试执行的时间不断减少,因为自动化测试可能仅会验证你在脚本里写好要验证的东西,那就意味着你要预测什么缺陷会出现。而在手工测试过程中,你可能看到间接的证据表明存在某些缺陷。测试用例越详细,测试人员已经测试的时间就会越多(现在会执行得更快了),能找到那些间接验证的问题的可能性越低。
 
讲了这么多理论,现在来点实践性的东西。我在新项目是按下面的方式做的:
 
首先,我会找出所有在第一个版本中界面自动化失效的地方。这可能会与那些只发布一次的项目不一样,但是我在那些方面没有什么经验。当然单元测试像JUnit执行指定的API函数也会很有用,能被开发人员很好地创建,但是测试人员有时候也应该帮助一下他们。
 
接下来,在测试执行周期中,我不会写任何测试用例。我只会在版本发布后更新测试计划,详细地写出被测试功能特性的列表,以及对应有哪些功能特性不生效、对应的缺陷ID。在版本发布后,我创建详细的测试用例文档描述怎样调用每个功能特性,输入什么数据等等。看起来像是文档,但是有着不同的目标和用途:目的是让回归测试执行更快速进行。例如,我把数据附加上去,从而减少准备数据的时间;我细化一些琐碎的测试用例,测试人员(新手除外)会添加错误处理的一些细节。
 
我尝试使用测试白板(Testing Dashboard)去替换正式的包含测试用例执行/通过/失败/未执行等信息的测试报告。有时候,我只是通过非正式的所谓我的感觉之类的东西来沟通进度,而这其实是PM(项目经理)想要知道的,而不是测试用例的数字。
 
 

为什么写测试用例?编写测试用例从何着手?测试用例包含什么内容?

每当写测试用例,就困惑为什么要写?有什么用?个人观点: 1、验证需求是否得到满足,产品使用手册的功能是否无误实现; 2、如果遇到bug,可以记录bug出现的路径,便于复现bug. 3、记录测试经过,也...
  • liu454638324
  • liu454638324
  • 2015年07月21日 18:12
  • 853

开发人员体验测试工作

最近,项目不是henma
  • liusong0605
  • liusong0605
  • 2014年10月19日 12:24
  • 1159

写测试用例的经验总结

在最近的时间里,我学习了如何去写测试用例,在这之前,学习了黑盒测试的方法,等价类、边界值、因果图,并对相应的方法做了案例练习,深刻学习体会了这些方法。接着就开始写测试用例了。(以我学习的航班订票系统登...
  • liweihua1993
  • liweihua1993
  • 2015年09月27日 19:38
  • 493

mybatis项目实战用例

在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用来解决。 是什么,这是XML语...
  • EZ_Lin
  • EZ_Lin
  • 2017年05月27日 10:39
  • 137

优秀的测试用例标准

最近一直在研究软件测试相关理论,个人认为测试其实这是一个复杂的学科,一个优秀的测试工程师需要具备多方面的能力和扎实的计算机理论,软件工程理论和编程思想。测试用例的设计更多地依赖你的逻辑是否完整,还需要...
  • missyouonly
  • missyouonly
  • 2016年05月16日 15:11
  • 991

资源:惊艳全球数据行业的16个数据可视化例子

数据是非常强大的。当然,如果你能真正理解它想告诉你的内容,那它的强大之处就更能体现出来了。通过观察数字和统计数据的转换以获得清晰的结论并不是一件容易的事。必须用一个合乎逻辑的、易于理解的方式来呈现数据...
  • sfM06sqVW55DFt1
  • sfM06sqVW55DFt1
  • 2018年01月11日 00:00
  • 163

如何编写用例?

测试用例的编写最容易体现测试工程师的测试水平,要看一个测试工程师的水平如何,只要看他的测试用例的质量就能看出作者的水平。那么如何编写测试用例呢?         所谓测试用例,就是你测试软件时所执行...
  • lilinfangf
  • lilinfangf
  • 2014年02月20日 16:25
  • 1203

你觉得自己是优秀的技术人员嘛

你觉得自己是优秀的技术人员嘛? 你对自己的团队有哪些期许、定义和要求呢? 你知道管理者心目中优秀的技术人员应该是什么样的嘛?     当一个开发纠结于自己做的一些初级实现的事情的价值的时候,不如多...
  • zhangcanyan
  • zhangcanyan
  • 2016年07月31日 12:19
  • 384

网安--第十二章 网络安全方案设计

第12章 网络安全方案设计 内容提要本章从网络安全工程的角度探讨一份网络安全方案的编写介绍网络安全方案设计的注意点以及网络安全方案的编写框架最后利用一个案例说明网络安全的需求以及针对需求的设计方案以及...
  • lishirong
  • lishirong
  • 2014年12月02日 09:42
  • 920

软件测试-编写测试用例

常见的用例编写方法如下: 一、需求转化法 根据需求转化为基本功能测试点 二、等价类 1、等价类:程序的输入域划分为若干部分,每个部分中选取少数有代表性的数据作为测试用例,每一类的代表性数据在测...
  • zimingzim
  • zimingzim
  • 2016年06月23日 10:39
  • 3908
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我们为什么要写测试用例?
举报原因:
原因补充:

(最多只允许输入30个字)