• 2
  • 2
分享
  • 从3个方面带你写一个合格的测试用例——软件测试圈
  • 曼倩诙谐 2022-11-09 13:23:43 字数 2550 阅读 2019 收藏 2

  51Testing软件测试网正在收集测试行业问卷结果,如果你也想为测试行业的前景助力,就点击下方的链接提交答案吧,还有精美礼品等你拿(测试课程五选二)。链接:http://vote.51testing.com/


  前言

  作为一个测试新人,刚开始接触测试,对于怎么写测试用例很头疼,无法接触需求,只能根据站在用户的角度去做测试,但是这样情况会导致不能全方位的测试APP,这种情况就需要一份测试用例了。

  在介绍如何编写测试用例之前,先看一个软件系统登录功能的测试(如下截图所示):

1-1.jpg

  要做这个登录页面的测试用例,你会从哪些方面思考进行测试呢?

  看似简单的页面功能能够设计多少条测试用例完成较全面的测试呢?10条以内?20条?.......

  那么在给出上述答案之前,先带大家熟悉一下什么是测试用例?测试用例有什么作用? 然后在结合上述抛出的案例抛砖引玉一起讨论如何编写测试用例?

  下面就是此文目录截图:

1-2.jpg

  一、什么是测试用例

  测试用例:为了特定的目的(证明软件存在某问题)而设计的一组由测试输入、执行条件、预期结果构成的文档。

  1、测试用例简单来说就是指导如何做测试的文档,该文档主要记录需要验证被测软件的是否满足需求。

  2、测试用例表现形式常见的有两种,可以以模板形式展示:

  1)一种是通过Excel直接编写

  · 大多数项目中都需要按照这种方式设计编写

  2)一种是通过xmind直接整理测试点

  · 时间紧迫,项目没有强制要求时,可以设计测试点的形式编写

  · 对于业务流程类的测试,也可以整理为测试点进行测试

  3、设计及执行人员:测试工程师

  4、用例的模板:描述编写用例核心内容,一般项目都有自己的设计用例的模板,常见测试用例模板可参照如下:

1-3.png

  二、为什么要写测试用例

  为什么要写测试用例,实际中产品出现问题,第一责任人首先想到的是测试为啥没有测到?

  产品出现问题了,你为啥没有测出来呢?

  当然,除了避免“甩锅和背锅”,其实写测试用例更重要的作用如下:

  · 技术上将需求转化为具体可验证的指标

  · 以文档的形式记录软件可能存在的问题

  · 防止测试过程的活动出现遗漏,提高工作效率

  · 测试工作量的展示

  三、如何编写测试用例

  既然写测试用例如此重要,那么如何更好的编写测试用例呢?个人认为需要满足如下几点: - 常规思考,设身处地的从用户角度出发(比如:实际用户是这么使用的么,会不会遇到异常情况呢?) - 测试理论方法的支撑(比如:根据需求设计测试用例时,能用到哪些常见的测试用例设计方法?) - 产品的熟悉和经验的积累(比如:已经有过类型项目经验,曾经在某个方面有过问题,当时是如何处理的呢?) 上述的设计用例过程,有个前提,就是对于测试有耐心和毅力,加上日常有意识的思维训练,才会写出全面的用例。

  1、常规思考

  回归到开篇的问题,对于一个基本的登录页面,按照常规思路能否会想到如下截图的测试点呢?实际,这些测试点都是源于从用户角度出发,结合需求进行细化设计的过程。实际测试中是不是只有这些测试点呢?

1-4.jpg

  2、学习积累

  相信大多数测试工程师都能够想到上述基本的测试点,然在实际工作中面对的项目不同,设计测试用例的颗粒度也有不同的要求,如果针对上述登录的模块,更深入一层考虑呢?此时需要对产品的熟悉程度及测试经验的加持,而且这些点的设计是不断学习、熟悉项目、测试积累中得到的。

1-5.jpg

  3、理论支撑

  有了常规的思考,有了经验的积累,还需要理论的支撑。测试用例毕竟是通过人去思考设计,这个过程不可避免有疏漏。如何规避?实际就需要测试理论的支撑,个人认为深入思考设计用例不外乎以下两方面:

  1)测试用例的设计方法

  测试理论中很关键一块就是将需求拆分为具体的测试点,然后根据用例设计方法进行具体的设计,其中拆分需求的关键是熟悉需求,将文档中已有的描述内容,按照用户使用场景、个人测试经验的积累(如果有的话)、把大段的内容拆分成能够直接用用例设计方法的测试点,这样就直接可以通过简明扼要的文字描述转化为Excel的测试用例,在这个过程通俗理解就是拆分细化的过程,直到可以直接写用例验证一个具体的功能点即可。

  其中熟知的设计用例方法有:

  - 观察法

  - 等价类、边界值

  - 判定表、因果图

  - 流程图、场景法

  - 错误推测法等

  2)测试设计的思路开拓

  倘若按照需求将已有的描述信息都已经拆分完毕了,是不是就可以确保测试没有问题了呢?

  其实不然,在上述基础上如果还需要再拓展全面测试,还需要借助于软件质量模型的特性,从这些特性出发,给予测试用例设计者更多的思考空间。这样的设计就更加的全面可靠。

  常见软件质量模型特性说明:

  - 功能性:功能有没有,好不好用

  - 性能效率:对应系统的资源耗费程度及响应时间

  - 易用性:容易理解、学习、使用

  - 兼容性:能够兼容不同的软硬件平台

  - 可靠性:不易出问题,万一出问题容易恢复

  - 安全性:对于用户的安全保障(外在的人生安全、内在的信息安全等)

  - 可移植性:能否在不同环境条件下无故障运行

  - 可维护性:对于后期的修复维护是否方便快捷

  因此,对于上述登录功能,按照上述质量模型的思路指导,就得到如下的测试点:

1-6.jpg

  四、写在最后

  此时的你再回过头来看看,还会认为登录这个百试不爽的功能就设计十几条甚至几十条测试用例了吗?显然不是那么简单,需要在熟悉需求基础上,进行拆分细化,将常规的思考、经验的积累、理论的支撑结合起来使用,最终才能转化为测试待验证的结果。

  熟悉需求上第一步,在此基础上进行测试点的拆分细化,这个过程如果对于复杂一点的功能点,需要借助于测试用例的设计方法,对于页面级的测试点应用最多的不外乎是等价类、边界值。

  仅仅熟悉了需要,还需要结合经验的积累,从质量模型的特性出发,进行全面的思考功能点的设计,是否出现遗漏的,是否有项目特殊要求的。

  用例的设计不是一蹴而就的事情,好的用例也是需要不断的练习,反复的修改评审,才能编写出卓越的用例。



作者:程序员小濠    

来源:http://www.51testing.com/html/08/n-4478908.html


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   提起自动化测试,大家脑中立即能浮现的大多数是Python开发语言、JAVA开发语言、Appium测试框架、Selenium测试框架等,大部分WEB公司只要做自动化测试基本上都离不开上面谈到的开发语言和框架。  不过仍然有很多公司会有不一样的自动化测试需求,例如万次级别断常电、手机行业的开关机、功耗满负载测试等。  笔者在工作中就遇到过以上“另类”自动化测试,会遇上很多沟沟坎坎,但是非常有意思,各位看官且慢慢往下看。  进行断常电测试的背景与需求  笔者供职于国内某新能源汽车企业,以前听到汽车两个字,能联想到的肯定是外观、加速、舒适、油耗等等,进入新能源时代,不得不提互联网、安卓、科技等等词...
            13 13 3356
            分享
          • 自2014年成立以来,新浪金融评测室已连续成功举办六届手机银行APP测评,积攒了丰富的测评经验,获得了业界的广泛认可。2019年,新浪金融研究院对21家主流手机银行APP从用户体验、产品功能、性能安全和发展创新四个方面进行测评分析,并对各个APP的亮点和存在的问题进行了梳理。测评结果显示,工农中建四大行和招商、平安、民生、光大等股份制银行排名靠前,测评结果基本代表了目前银行业资金实力和科技实力最强的银行群体。用户使用APP过程中最直观的印象几乎都来自用户体验和产品功能。新浪测评中,这两项分值占比高达75%,基本上可以代表测评总分值。得分高的手机银行,用户体验和产品功能一定做得好。带给用户最丰富...
            0 0 2688
            分享
          • 作为一名测试人,掌握数据库常用的操作不可缺少,下面就一段mysql 查询语句梳理几个相关语法知识。 本篇文章主要包括两方面内容常用的sql语法开发代码中如何和sql进行关联案例代码` select a.blastid,d.apptime,a.charge_approve,             a.blast_batch,            ...
            0 0 1573
            分享
          •   随着金三银四的来临,经济的复苏,各行各业也在复苏,相信无论是即将毕业的大学生,还是想换工作的小伙伴,想必都蠢蠢欲动。  但想找到一份适合自己的工作,实际上没有想像中的那么简单。  想做或是喜欢的工作  你要明白自己想要从事或是喜欢做的行业是什么。很多即将毕业或是已经好多年的小伙伴,一直不知道自己想要从事什么样的工作。  面包前面,随便选择了一份自己也不知道是什么的工作,等到醒悟过来的时候,又觉得自己没有能力改行,就这样,在一份自己没有兴趣的工作中浑浑噩噩好多年,浪费了好多时间。虽说面包很重要,为了目前的面包,可以做暂时的妥协,但自己也要清楚自己在多长时间后可以做自己喜欢的事情。  一份自己...
            0 0 428
            分享
          •   应用场景:设想要集中测试一个Web服务器的性能表现, 我们用一台机器模拟上千个用户不断地访问被测试的服务器,可能会遇到一些瓶颈,模拟的用户不够,服务器设置了安全措施、拒绝接收(当有超量的数据来自同一台机器在短时间内,服务器就会认为这是外来的攻击行为),测试机的配置过低、不能完成上千个用户的请求。  解决方案:利用JMeter的分布式测试配置,就可以很轻松的解决上述问题。如下图所示,我们选择一台主机(Master),然后配置一些节点服务器(Slaves),主机发送测试运行指令,节点服务器在同一时间模拟用户对终端服器发送请求。这样总模拟的用户数量 = 单个节点用户数 * 节点服务器个数  学习...
            5 4 5165
            分享
      • 51testing软件测试圈微信