浅说《测试用例》----给测试新手的

     在此之前我搜集一些关于测试用例的知识,后来在我们的QQ群里专门定了一期讨论,来探讨测试用例,毕竟这是一个很大的话题,很难做到面面俱到,但我会尽量全面,用通俗的语言来说测试用例。

---------------------------------------------------------------------------------------

注:我们这里要说的测试用例指功能测试用例。

一、什么是测试用例?

     测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

     通俗的讲:就是把我们测试系统的操作步骤用按照一定的格式用文字描述出来。

二、写测试用例有什么好处?

  • 理清思路,避免遗漏

        这里是我们认为最重要的一点,假如我们测试的项目大而复杂,我们可以把项目功能细分,根据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉要测试的功能点。

  • 跟踪测试进展

        通过编写测试用例,执行测试用例,我们可以很清楚的知道我们的测试进度。

  • 历史参考

        在我们所做的项目中,也许会有很多功能是相同或相近的,我们对这类功能设计了测试用例,便于以后我们遇到类似功能的时候可以做参考依据。

  • 重复性

        我们测试一个系统不是一个人测一遍就算测完的,需要多人反复的进行测试,那么我们就需要测试用例来规范和指导我们的测试行为。

  • 告诉领导,这事俺干过,不然别人怎么知道你测没测,测的全面不全面,拿测试用例给他们看呗!俺就是照着这个干活,呵呵!

三、测试用例的方法

     好吧,咱知道啥是测试用例了,也是知道为什么要写测试用例了,那到底应该怎么写?无从下手啊。我们在写测试用例之前,先学习几种方法,它是我们写测试用例的指导思想。

    1.  等价类划分

         在某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等价的。假如有一个输入框要求输入1-10000个
数,我们不可能用每一个数去试,我们输入5
和输入6去验证和揭露输入框的错误可以看做是等价的。那么这个时候我们就可以随机的抽取一些数据来进行验证。如:10 、99、7777......

       等价类分:有效等价类和无效等价类

       输入框要求输入1-10000的数

       有效等价类:可以输入1-10000之间的数来验证,如:2、5、99、8495......

       无效等价类:可以输入1-10000之外的任意字符验证,如:20000、字母、下划线、特殊符号、空格、回车.....

    2.  边界值

       边界值是对等价类的补充,测试工作经验告诉我们,大量的错误是出在输入输出的边界价上。我们还拿上面的例子,一个输入框要求输入
1-10000之间的数。我们要测它有没有超出这个范围,如:0、-1、-2、1000、10001.....等等,来判定是否超出了我们的范围。

    3.  因果图

       因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。举个例子:原因:A=0,B=0,结果我就可以判定:A=B。确切的说他是一种因果关系思想。它会无形中指导这我们的测试。当然了,我们为了以免遗漏,可以把系统中的因果关系用图画出。不过系统大而复杂的话就是个体力活了。呵呵。

    4.  错误推测法

     基于经验和直觉推测出系统可能存在的错误,从而有针对性的设计测试用例的方法。

   5.  其它

      设计测试用例的方法有很多,我们常用就上面几种,其它的方法还有:状态迁移图、流程分析法、正交验证法等等。

 

四、测试用例的格式与要素

   一个测试用例应该包括:编号,标题,测试场景,测试步骤,预期结果。

   当然还可加入一些它选项,如:优先级、测试阶段....

注:上面的格式取自《微软的软件测试之道》,它并不一定适合你,我只是让大家对测试格式有个了解。

关于测试用例的存放管理:

1.  项目管理系统自带的用例管理,一般用例会与项目挂钩,有固定的格式,搜索、修改等功能,使用起来非常方便。如:禅道项目管理、QC、bugfree 等等都带的有用例管理功能。

2.  通过world\Excel文档形式管理,这样的好处就是自己定义测试用例的格式。

-----------------------测试用例例子--------------------------------------------------------

基础知识了解的差不多了,下面来看一个具体的测试用例。我们会有更深刻的认识。

 注:这不是一个完整的测试用例,格式也不是固定必须这样的,你们可以根据自己的需求编写设计测试用例。

==========================================================================

------------------------------------我们还需要知道的,关于测试用例的-------------------------------

一、.我们在什么时候可以设计测试用例?

    当根据客户的需求整理出项目需求分析文档时,我们就可以根据需求文档来编写测试用例了。但是,一般我们(国内大多小公司)项目需求文档都非常“简陋”,所以,很难根据需求文档设计测试用例。

    我们只有等到项目开发人员把项目开发出来,给我们系统文档、部署环境、数据库结构(如果系统牵涉到数据库的话),我们根绝这些文档来设计测试用例。

二、测试用例的评审与更新

     我们设计的测试用例设计完成之后,是否完整?是否符合系统?符合客户要求?对用例做一个评审是必不可少。关于评审的方式,不同的公司有不同的流程。

     我们编写的测试用例也不是经过评审之后就不变了,随着需求的变更、功能的改进,测试用例当然也需要更新和变动。

三、什么情况下不适合写测试用例

  •      文件时间

       如果一个功能我很快就测试完了,而且只需要测试一遍,但我们设计测试用例时却比较麻烦,花时间也长。这个时候就没必要编写测试用例了。

  •      需求变动大且频繁

      需求的功能变动非常频繁,而且变动很大,之前编写的测试用例根本没法使用,必须要重新编写,这个时候也没必要去设计测试用例了。

  •      项目时间不允许

      这一项是不太厚道的做法,如果不是急需交付客户的话,尽量不要这样做;当然了,如果只是给客户展示或试用,可以在之后进行补充和完善测试用例。

  • 不要编写不完整或别人看不懂的测试用例,那样就没有意义了。

============个人闲聊内容,欢迎指正========

四、停止软件测试的标准。

      语句覆盖最低不能小于80%,测试需求覆盖率达到100%,测试用例覆盖率达到100%,一、二级缺陷修复率达到100%,三、四级修复率达到80%。

      (上面一句是再网上找的,不是标准,只是个参考)

      bug等级:

      一级:非常严重的bug

      二级:严重的bug

      三级:一般性的bug

      四级:建议性问题

五、关于探索性测试

       完全的执行测试用例时一件非常枯燥的事情,个人在执行测试用例时会做一些,其它的非常规性的操作,看系统是否会有相应的处理和提示。我的一部分bug就是再这种非常规操作下发现的。

       当然了真正的探索性测试需要对产品的深入了解,以及软件开发技术有一定的深度和宽度。姑且把我们的探索性测试看成是瞎捣鼓吧!呵呵。

六、 交叉测试

     有木有发现,当我们第一遍测试系统时,会非常认真,但要我们测试第二遍时,我们不愿意像第一次那样认真的去测了,这不能说明我们不负责,而是每个人都有的心理现象。这个时候,我们可以和其它测试人员交换功能来测试,提高效率,而且更容易发现问题。

七、测试的目的

    1.  我们让它做的它必须会做。

   2.  我们不让它做的它必须不会做。

   可能你会发现有附加功能的时候,就是客户没有要求,我们加了这样的功能,可能加了这点功能系统看上去会更好。这时怎么办?算问题么?

   作为开发人员,中规中矩的做东西最好,如果真的有非常好的功能要加的话,需要和客户沟通,然后写到需求里。毕竟多一点功能多一点风险。呵呵

   作为测试人员,凡是不符合需求文档的都需要当问题点提出。责任分明,以免后续麻烦。   

----------------------------------------------------

 修改:

 1.测试用例的格式的要素,去掉“实际结果”

 2.关于测试方法“等价类划分”的解释。

时间: 2024-09-20 14:52:50

浅说《测试用例》----给测试新手的的相关文章

我要告诉测试新手的(转)

  因为已经带领和训练测试团队多年,所以按惯例我总有些东西确定需要传达给测试新手.不管你是一个测试新手还是一个经验丰富的测试专家,都有不少有益的东西需要牢记在心. 1.你是一个检查者,你不需要为质量负责 很多测试人员误入歧途,不明白他们是评测产品的而不是控制产品的.这两者之间有着天壤之别.例如,一个测试团队花费好几周时间测试并发现很多缺陷,只是为了看着管理层决定发布一个有已知严重缺陷的产品.测试团队经常会感到士气受挫,置疑他们测试的目的. 我 询问团队中的成员他们是否被支付薪水了,通常得到的回答

测试-新手关于android alarm的一个无法理解的错误,查了很多文章,求大神,求解决!!!

问题描述 新手关于android alarm的一个无法理解的错误,查了很多文章,求大神,求解决!!! 小弟我想设置3个时段的每天提醒.但是我发现一个错误.我设置三个时代为12:00,16:00 和 20:00.不过我发现我的手机给我分别在11:59:34, 12:00:12,12:0056都发送了alarm. 我查了很多文章,没有提过这个问题,是否是小弟设置的问题.我的代码如下: //首先设置PendingIntent. Intent alarmIntent = new Intent(conte

软件测试用例对于测试进度的可控性建议——理论篇

从接触软件测试工作开始,相信所有人都希望减少软件测试后漏测的问题(tester希望,开发经理希望,老板希望),但事实是一直以来都没有很好的真正解决产品漏测的问题以及如何减少功能组合爆炸的问题.过去几年因为工作任务的缘故,我在历经几年自动化测试.系统测试和缺陷预防工作后,又回到测试的本源开始思考功能缺陷的测试应该如何做好?从2011年版本到2012年版本直到2013年终于优化完善出了自己的功能测试方法体系,没想到居然在软件测试行业从业近10年时才搞明白了10年前就开始的问题.过去的5年通过实践补充

探索式测试的问与答(2)

接探索式测试的问与答(1) 既然学习非常重要,那么如何才能高效地学习呢?软件专家Andrew Hunt指出:"一种高效的学习环境应该允许你安全地做三件事情:探索.创造和应用."Andrew的解释如下: 探索就是在陌生的环境中玩(Play).你需要自由地探索才能学习.我们不仅仅接受信息,而是亲自探索和构建思维模型.玩引入了一种新奇的感觉,也就是 乐趣.用一种好玩的方式学习新资料或者解决问题,可以让这个过程变得更让人享受,也让学习变得更容易.为了更好地学习,请更好地玩. 你需要自由地创造-

测试用例之度——系列之颗粒度(上)

测试用例是测试工作的核心.测试工作是讲究投入产出比的工作,这也是测试用例设计的指导思想. 测试用例有度的概念,正如亚里士多德在<伦理学>中讨论道德为例:道德意味着过与不及之间的状态.面向测试用例,网上流传着这么一句话:"不同的机构会有不同的测试目的:相同的机构也可能有不同测试目的,可能是测试不同区域或是对同一区域的不同层次的测试" 下面就列举测试用例设计的方方面面,看不同的团队,不同的测试目的,如何把握测试用例设计之度. 颗粒度: 颗粒度的粗细,有无标准?什么是粗?什么是细

新加入一个团体,如何能尽快的展开测试工作(转载)

作为一名测试新人加入团队,大多数情况下,项目组成员都是一种热情欢迎的态度,并且主动提供力所能及的支持和帮助,如何快速熟悉项目业务和测试环境,尽快投入到实际工作中去,我谈谈个人的经验和一些看法,供同行参考: 1.寻找新公司的团队元老:      一般来说,一个新人进入新公司,都要指定一个师傅带一段时间,这也就是我们说的测试前辈.很多时候,测试前辈都是经验非常丰富的测试高人,如何您和他相处融洽,关系不错,凭他个人丰富的业务经验,给您指点迷津,也许会比你自己摸索10倍的时间效果还好.很多的测试新手,刚

我们需要测试!

有测试朋友对陈皓 同学的这篇文章比较气愤,因为他否定了我们广大测试员存在的意义.如果有人跳出来对某人说,你做的工作毫无意义,有你没你公司一样运转,项目一样进行,这无疑是对这个人最大的打击,这是对一个人辛苦工作的完全否定. 如果那人就只是简单的否定,我们对其曰:"此人SB,不解释~!"然后不屑都走开.但此人不但给出了否定,而且还给出了比较充分的说明,这样不少测试工程师就不淡定了,就像年初的时候,方舟子说韩寒造假,还弄了不少"证据",韩寒自然就不淡定了.扯远了. 身为一

基于模型的测试和Spec Explorer简介

要生成高质量的软件,需要在测试阶段进行大量的工作,这可能是软件开发过 程中成本最高.工作量最大的部分. 从最简单的功能黑盒测试到重量级的方法, 包括定理证明程序以及形式化需求说明,有很多方法可以提高测试可靠性和效率 . 但是,测试并不总是能达到必要的细致程度,经常缺乏规范和方法体系. 十多年来,Microsoft 在其内部开发流程中成功应用了基于模型的测试 (MBT) . 事实证明,对于各种内部和外部软件产品而言,MBT 是非常成功的方法. 这 些年来,这种方法采用得越来越多. 相对来说,它在测

测试中经常会遗漏的几个地方

做测试也有段时间了.在网上随便找了下.发现有些人也有些个类似的东西.就干脆做了点整理,其中对于功能方面的东西见前人大多已经有整理过就直接拖了些进来,还望见谅,当然基本还是属于原创. 希望大家给予补充. 个人认为软件出现的BUG首先第一个责任一般都是测试用例的问题.其次是测试方法(本身的知识).最后则是态度问题.如果测试用例不完善,不论测试人员自身的水平多好,态度多好,都必然会出问题,除非测试人员对测试用例进行了很好的完善.而如果测试用例是完好的,如果自身知识点比较贫乏也是很容易出问题的.例如说测