SWTBOK测试实践系列(9) -- 设计的测试用例是否越详细越好?

测试人员设计测试用例的时候,面临的第一个问题就是测试用例的步骤是否越详细越好?或者如何把握测试用例的详细步骤?在这个问题上,赞成测试用例详细化的人肯定有不少,因为详细测试用例可以提供如下优点:

1)缺乏经验或者技能的测试人员,可以按照测试用例的步骤顺利开展测试执行工作。这是脚本化测试实践中的思维:有经验与技能的测试人员设计测试用例,而缺乏经验的人员去执行测试用例。

2)缺乏经验的测试人员,按照详细测试用例的步骤执行的过程,不仅可以帮助他们了解测试对象的功能与业务知识,也可以帮助他们了解测试设计技术与方法。

3)更好的一致性。由于设计的测试用例提供了详细了步骤,每个测试人员按照这个步骤可以得到一直的测试结果,因此保证测试一致性。

3)有助于测试用例的自动化。因为详细的测试用例提供了详细的步骤和期望的结果,因此将它们转化为自动化测试用例会相对比较简单。

4)有时候提供详细的测试用例,是为了满足法律法规的要求,特别是针对安全关键系统,在有审计的情况下。

尽管详细化测试用例可以有上述的优点,但是反对测试用例详细化的也大有人在,因为详细化测试用例也会导致一系列的问题:

1)设计成本高:测试人员需要花费大量的时间投入到测试用例的编写上面。同时测试用例文档的页数越多,被完整阅读的可能性就越少。

2)效果差:穷尽测试不可能,好的测试用例设计是从无穷的测试中选择合理测试输入、测试组合、测试数据等,以相对有限的测试用例数目尽量达到理想的覆盖率。而详细的测试用例设计很难完全定义这些组合和场景,实践中需要测试设计不断迭代和更新。

3)维护成本高:测试用例的输入参考,例如:需求文档是经常变更的,这就会导致测试用例越详细,其维护的工作量更大。

因此,测试用例的详细程度要求,并没有一个标准的答案,尽管我是轻量级测试用例设计的拥护者。测试用例详细与否,会受到各种因素的因素,例如:

1)测试目标。测试人员测试该产品或者系统的目标是什么。假如测试用例文档不能支持这个目标,或者无助于达到这个目标,那么这样的测试用例设计文档价值就会降低很多。

2)测试用例文档是产品还是工具。假如测试用例文档是软件系统或者产品的一部分,那么这些文档是需要发布给客户使用的,这时候测试用例文档就需要按照客户的要求遵循某种表尊。而假如它们只是内部使用的工具,那么就不必太完整、太整齐,能够在最低限度上有助于达到目标即可。

3)软件设计变更是否频繁。如果软件设计变更很频繁,则不要将许多细节写入测试用例文档中,因为这些细节很快就会过时。这种情况下,不要编写大量的测试用例文档,它们被修改或者放弃的速度太快,不值得在测试用例文档上投入太多。

4)采用的测试方法。假如目前采用的软件开发模型是V模型之类的线性模型,那么采用的测试方法通常是依赖于预先定义的测试,这时候需要详细的测试用例的操作和维护文档。假如采用的是探索性测试,则更需要策略方面的文档,例如:关于某个测试领域的想法,但不是具体的测试用例。

5)测试用例文档给谁看。假如测试用例文档是主要给新的测试人员或者没有经验的测试人员看,那么需要足够详细使得他们能够正常开展工作。

时间: 2024-12-27 19:34:45

SWTBOK测试实践系列(9) -- 设计的测试用例是否越详细越好?的相关文章

SWTBOK测试实践系列(7) -- 测试用例设计的参考输入有哪些?

不管是文档化的测试用例,还是存在于测试人员头脑中的测试想法和思维,针对测试对象的分析和设计都是整个测试过程的重要测试活动之一.在进行测试分析和设计之前,测试人员首先需要确定测试的需求来源,即测试用例设计需要参考哪些测试依据文档? 测试用例设计的输入文档是什么?测试人员头脑中第一个蹦出的参考依据就是需求规格说明.确实,需求文档是我们测试设计的最主要参考文档.但是,由于时间限制.成本限制和个人能力限制等方面的原因,提供完备的需求规格说明几乎是不可能的.现实情况是,需求规格说明常常是不全的.模糊的,甚

SWTBOK测试实践系列(2) --你会把开发人员提交测试的版本打回去吗?

开发人员奋斗了很多个夜晚,终于把版本提交测试了.他们可以松一口气了.但是噩耗很快传来,软件没有通过测试团队的预测试(为了保证测试进程,对开发人员提交的代码进行基本功能或业务流程的验证).开发经理老王,迅速找到负责预测试的测试经理老张. 老王说:老张啊,怎么回事?出什么问题了?我们好不容易开发完成了,你们怎么不测试还把版本打回来了? 老张说:你们提交的版本质量太差,没有我们的预测试,需要重新修改后,符合我们的要求,我们才能测试.你看看我们发现的这两个问题. 老王并没有看这两个问题,而是直接质疑老张

SWTBOK测试实践系列(6) -- 开发人员为什么不做静态分析?

场景 某年某月某日,产品环境的2000多封自动发出的Email让我们项目组许多人的邮箱爆了.追查下来根源是一个很不起眼的缺陷.我们的程序对一个布尔值做了if(XXX = true)的判断,可来自上游系统的这个值不光是有true和false,还有空.也就是说上游系统中使用的是一个大布尔,是有true, false,null三态的,  而我们程序使用的是小布尔,只有true和false两态. 掉在大小布尔这个坑里也不是头一回了.记忆中前两年我们也掉进来过.有执著的QA一枚,翻箱倒柜地找,终于找到了当

SWTBOK测试实践系列(3) -- 既然计划永远赶不上变化,我们还要测试计划干嘛?

一天,测试经理老马迟疑着点下了Email的"发送"按钮,长叹一声,往后一仰靠到椅背上.发送这个主题为"回归测试将推迟一周"的通知实为无奈之举啊!一些重要的缺陷开发团队还来不及修复,加上最近几天测试环境的部署经常出现莫名的异常,导致半天都无法测试,原定下周开始的回归测试不得不推迟了!几分钟后,测试人员小王兴冲冲地跑到老马跟前,满脸疑惑地问:"经理,我刚看到你的Email了.又要延期啊!既然我们的测试计划老是在变,干嘛还要定计划?"老马坐正,略带欣慰

SWTBOK测试实践系列(1) -- 测试在项目前期的评审投入划算吗?

测试策略:静态测试还是动态测试? [对话场景] 成功发布某个软件版本之后,项目团队召开了项目的经验教训总结大会.在会议期间,项目经理小项和测试经理小测进行了如下的对话: 小项:"小测,我们的项目时间压力很大,测试执行是我们的关键路径,测试团队是否可以在测试执行阶段投入更多的人力和物力?"限定时间和人力资源同等条件. 小测:"啊!假如增加我们的测试执行时间,在整个周期不变的情况下,我们就需要压缩前期的学习和评审投入的时间和工作量,是吗?" 小项:"是的,你看

[ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis

上一章 [ 搭建Redis本地服务器实践系列一 ] :图解CentOS7安装Redis 详细的介绍了Redis的安装步骤,那么只是安装完成,此时的Redis服务器还无法正常运作,我们需要对其进行一些配置,这个章节我们重点来讲解下如何对Redis配置文件进行配置才能顺利的启动Redis服务. 要了解Reids的配置项,我们需要先来认识一个脚本文件redis_init_script,从名字我们就能看出来,他就是Redis的初始化脚本,那么这个脚本文件长什么样子,里面有什么内容,又该怎么找到他呢?哈哈

按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,根据程序流程图,写出代码,用JUnit生成单元测试,并利用前面设计的测试用例进行测试。

语句覆盖:路径:abc ,测试用例:x=3,y=2 分支覆盖:路径:aeg ,测试用例:x=4,y=-1 /** * 2016-04-09 * @author 吴思婷 * DoWork类用来根据程序流程图,写出代码(定义一个类和方法来实现) */ public class DoWork { public void doWork(int x,int y){ int k=0,j=0; if((x<4 || y>0)&&(y>1)){ y=y+1; } else { if(x&

测试小白基础知识---常用的测试用例设计方法

软件测试的核心是测试用例的编写,是每个测试人员必须掌握的技能!! «««测试第一原则:所有的测试,都必须追溯到需求: «««测试第二原则:测试是无穷尽的,测试必须终止 «««测试用例的设计方法: 一.等价类划分法 某个输入域的子集合,在该子集合中,所有的输入数据对揭露软件中的错误都是等效的. 等价类划分有效等价类和无效等价类 有效等价类:输入的数据,是符合需求的,是合理的合法的. 无效等价类:输入的数据,是不符合需求的,是不合理的. «««等价类划分法用例设计原则: 1.划分有效和无效等价类,为

SWTBOK測试实践系列(6) -- 开发者为什么不做静态分析?

场景 某年某月某日.产品环境的2000多封自己主动发出的Email让我们项目组很多人的邮箱爆了.追查下来根源是一个非常不起眼的缺陷.我们的程序对一个布尔值做了if(XXX = true)的推断,可来自上游系统的这个值不光是有true和false,还有空. 也就是说上游系统中使用的是一个大布尔,是有true, false,null三态的.  而我们程序使用的是小布尔,仅仅有true和false两态. 掉在大小布尔这个坑里也不是头一回了.记忆中前两年我们也掉进来过. 有执著的QA一枚,翻箱倒柜地找.