基础测试用例的作用

发表于:2012-1-04 10:13

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:chenkunlong    来源:51Testing软件测试博客

  某天在逛论坛的时候,看到有个大神写的一段关于测试用例的作用,感触颇深。原文如下:

  4年前我刚入职测试的时候也是对测试用例的实际价值和具体应用有过相当一段时间的不解,不过当时没人能给我一个真正合理并具有说服性的理由,只知道很重要,就这样一直做下来,直到4年后现在的我,当带别人的时候我也会说测试用例很重要,是一个测试人员的核心能力,测试的好坏一半取决于你对测试用例的编写能力,另一半来自于你对业务的发散性思维,来自于测试人员测试时的状态。

  不要说时间紧迫,需求变化较快,如果你提前在心里就为自己找好了不去做的理由,那么对这项工作你会永远都保持着抵触的情绪,进而越发的觉得测试用例没用。我具体说几点希望能让你对测试用例有所改观:

  1、先说说你所说的编写用例和临时的灵感之间的区别,这也是现在很多测试人员的困惑,因为工作中所有的感觉都在告诉我们,临时的发挥往往发现更多更隐蔽的bug,而测试用例中往往也都是开发人员已经注意过的地方,能出现让你感觉很有成就感的bug实属不易,但我前面说了,这仅仅限于我们的感觉,举个大学时的例子来解答你这个困惑,我记得我大学的时候我的高数老师在讲课的同时不忘提醒我们该以怎样的态度对待目前的知识,我想大多数同学都会有我这样的想法,看看书本上的东西,这么简单还用学么,临时看看就会了,况且学了能有什么用呢?有一天老师在讲一个简单的公理时突然说了一句话,他说这个公理是很简单,是最基础的,但我提醒大家最基础不是不重要,相反它是最重要的,如果没有这个基础公理后续课程中所有的理论都不存在。这句话我一直记在心里,基础的是最重要的,这也是我一直很痛心的地方,因为平时我看着都会的东西,一个学期过去,我居然什么都不会了,我很鄙视同学平时不断的做着我看着都会的题目,可到最后我都答不上来了,可同学却很轻松的交卷了。

  不知道你对我所说的能否理解,编写测试用例我们都很不耐烦,觉得自己到时候也知道这些,写了又有什么用呢?可真正到了测试的时候你凭什么说你都知道呢,这不过是一厢情愿的想想罢了,就像我面对刚开始简单的公理,我反复做这个公理的题有什么用呢,多简单啊,可对简单的都无法理解吃透,又如何在简单的基础上进行发散性思考?一个系统连基本的保障都没有,仅靠临时的灵感去挖掘我们不太容易发现的问题,我想你自己心里对系统都没底吧。简单的说,编写是基础,临时的灵感是深度挖掘。

  2、如果说上面的理由不足以说服你,那么再看看这一点如何。不靠谱的灵感——如论是哪个测试人员,都会承认,测试与我们本身的状态有相当紧密的关系,如写 文章一样,状态好时文思如泉涌,状态不好时提笔忘字,甚至生厌,毕竟我们大多仍然还执行着手工测试,工作的单调和枯燥不会让你像一直打了兴奋剂一样,此时你如何保障你的测试是有效的?

  3、盲点。不知道你是否听过这个词,由于每个人的逻辑思维迥异,看待事物必然不同,针对一个测试点每个人编写的测试用例也会有不同,我不相信一个人可以把一个系统想得方方面面滴水不漏,bug总是源源不断超出你的想象,这些你想不到的即是你的盲点,当你把编写好的测试用例上交评审时,你会发现别人总是会提出这样那样的问题,你会发现你原有的逻辑竟然暗藏N多漏洞,更可怕的是随着工作的进行,当你对系统进行多次的回归,你会发现你可测的越来越少,为何?不是你的错,每个人在持续的重复同样的活动时,都会渐渐失去原有状态,渐渐麻木,那么我们的盲点也会偷偷的加大,如果没有提前的测试用例保证,你可以保证你在系统交付前的测试与你第一遍测试的内容完全一致么?如果不完全一致,那些落下的测试点,你测试过吗,测试几次呢?现在是正确的吗?

  4、管理成本。这个应该说和部门对项目的长期管理有关,面对现今IT业人员流动大的特性,每个部门对项目的管理成本在加大,老员工离职留下一堆问题,新员工入职业务不熟,无法马上接手,之前的系统如何,由谁去给他讲解?对于测试,我想如果我是管理者,我会直接给他一些模块的测试用例,按着这些用例去测试,从这些用例中去理解系统,即增加了一点人手,也极大提高他学习的速度,4年的经历告诉我一个新入职的测试人员仅仅是看需求说明来学习,效率异常低下,并且一旦实际接手测试任务,之前所学习的基本还得对着系统重来一遍,记得,企业招聘员工,要尽可能要你来创造更多的效益,当然这个效益创造的越早越好,而不是真的让你来学习。

  或者整体来说,测试用例是测试对系统的一个基本的质量保障,是一个项目可持续化管理的有效手段之一,当然,不是说写了测试用例就万事大吉,软件就毫无问题,还是我老师那句话,这是最基础的,也是最重要的,你的那些灵感会使你的测试大放异彩,但绝不要被这色彩蒙住你的眼睛,导致你看不清基石而摔下来。

  最后回到我开始说的,“不要说时间紧迫,需求变化快”,这个问题我不想多说,因为这个问题只要我们想解决,总会有办法,关键是看你以什么样的态度对待,想克服就不是什么大问题,不想克服,那就无解。

  以上只是简单说了下测试用例实际的好处与作用,当然不止这些,既然有这些好处,至于你执行多少全在自己,现在很多企业都想采用敏捷开发的方式,对测试也发起了新的挑战,也有人用测试点或者需求列表的形式来代替,无论什么形式都无所谓,选择一条最适合当前部门状况的方式,但你所说的灵感是绝不靠谱的事情,两者无法比较。

  自己也曾经疑惑过用例和作用,并想方设法提高用例对于异常场景的覆盖。其实这类灵光一现的异常场景有用例设计初期是无法做到太多的覆盖,只能根据以往的测试经验来写。在测试过程中如果有新的场景想到,一定要及时补充到用例中,而不是测试过一次就忘了~~还是那句老话:测试用例是需要维护的,不是死的!

版权声明:本文出自 chenkunlong 的51Testing软件测试博客

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • Ruby0312
    2012-2-21 16:29:59

    测试用例确实是基础,只有将最基本的功能保证了,才能更好的去发现隐藏的问题

  • heaven7253
    2012-2-02 11:04:29

    不好意思  文章太长  就看了最后一段。。。
    关于异常场景的测试用例的设计
    我觉得 现在很多用例的设计都是纵向的 涉及到某个具体的功能点 比如实现一个播放功能  之后去 bla  bla bla
    一般来说  我设计用例都是切蛋糕,先抛开业务层的各种功能点   先按照系统架构图去设计一些横向的切片

    比如  数据策略  输入策略 UI 业务逻辑 业务处理逻辑 反射区域 内部交互 外部交互 业务优先级 等等   可以根据你所在的平台去定制你的横切片。
    之后再把所有可能影响的因素都列出来(再把各个因素的每个子集也列出来)  做个 排列  交叉相乘的值设定为 大体的测试全集,算出可执行与lad的为真实测试覆盖率

    测试计划也有架构,不是说哪天想到一个东东没测 立刻写个用例就玩完的事,如果一开始写用例就这样,那以后都是在补洞。不能升高一个层次去看问题。

    个人浅见 仅供参考

  • 薄荷
    2012-1-20 10:40:24

    对于刚测试的新人,很有帮助,

  • moonlhy
    2012-1-12 11:01:13

    很有启发

  • 莲藕之家
    2012-1-12 10:39:30

    看后感触颇深

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号