• 1
  • 1
分享
  • 10年测试人竟不会写测试用例,简直无地自容——软件测试圈
  • 曼倩诙谐 2024-01-31 11:34:02 字数 1344 阅读 2056 收藏 1

  测试工程师在入行时,都会接触到一个名词——测试用例,都知道测试用例是干什么用的,提到设计测试用例的方法,大部分测试工程师都会侃侃而谈:等价类法、边界值法、判定表法、正交分解法……这些方法说起来都如数家珍,但是似乎在实际工作中,应用起来还不是那么得心应手,甚至还会有测试用例覆盖度不足的问题。

  每当遇到这样的问题时,测试工程师多少都会有些无奈。测试用例写的已经尽可能详细了,但是评审时候,参与评审的角色,要么是因为用例太繁复而草草浏览一下,要么是说完后面忘了前面。而测试工程师的思路从思维导图转化为测试用例的时候,也往往达不到测试用例最初的目的——哪怕让小白来遵照执行,也应该可以看得懂。

  那么作为测试工程师基本功的测试用例编写,应该怎样上手呢?遵循着设计方法的测试用例,为什么写出来会那么晦涩难懂,让人很难理清思路呢?

  一般说来,测试用例的覆盖设计和思路,同操作流程和开发思维是有极大不同的,除了实现验证这样的正向思路方向外,还需要针对异常情况进行逆向验证,而这里往往是很容易出现遗漏的地方。因为场景实现是有明确的操作流程的,而异常处理的场景,则是需要测试工程师自己进行分析的。

  测试用例一般来说,分几大模块组成,主要的有操作步骤,输入数据,期望结果。需要注意的是,操作步骤是必须的,但输入数据允许留空,因为在很多时候,步骤仅仅只是一个动作,比如检视页面。对于测试用例的理解来说,操作步骤应该是非常细致的。以如下一个界面为例,详细了解一下测试用例到底该怎么写。

1-1.png

  这是Slackflow的官网页面,选取了最常见的“注册”模块来进行UI的测试用例设计。首先按照场景分析,要先分为正常和异常两种情形,异常情况则是分析如下:

1-2.png

  那么按照测试用例编写思路,需要形成如下表格:

1-3.png

  在表格中体现的则是测试用例书写的一些规范和注意点:

  1)操作步骤叙述必须足够简练明确,不得出现断层或无法执行的操作;

  2)操作步骤必须具有由上至下的连贯性;

  3)输入数据必须有具体示例,如字符串等等,如果没有具体示例,则需要说明输入的规范;

  4)期望结果是需要一目了然的结果,而不是需要进行其他操作之后才能查看的内容,不可以包括多余的动作,也不可包括含混不清的判断,如仅注明“显示正常”,没有进一步的描述,或“顺利登录”这样的描述。

  5)每一步都要进行的操作步骤,可以提炼为前置条件,写在“Pre-Condition“栏内

  6)每一步骤和结果的描述必须精准洗练,不可以冗余和重复

  7)每一个测试用例只覆盖一个检查点,如果多个用例都需要覆盖中间某一个检查点,则需将该检查点作为一个独立的测试用例,其余测试用例将该检查点的结果作为前置条件。

  测试用例作为测试的输入文档,以及自动化测试的基础依据,应该是简洁优美的,它体现了测试工程师思维的逻辑性和递进性,它的质量直接关系到测试执行的质量,而执行时所能够达到的覆盖度则往往是测试工程师基本功的体现。

  所以,在不断将眼光投向自动化代码能力和其他测试领域扩展的时候,还是需要先夯实自己的业务基础,先编写出简洁、全面的测试用例。


作者:苗条小胖    

来源:http://www.51testing.com/html/96/n-7799496.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • web兼容性概述定义:软件兼容性测试是指检查软件之间能否正确地进行交互和共享信息。随着用户对来自各种类型软件之间共享数据能力和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越来越重要。软件兼容性测试工作的目标是保证软件按照用户期望的方式进行交互。平台的兼容性:硬件平台:pc手机pad等,操作系统:AndroidiOSWindowsmaclinux。浏览器:谷歌浏览器火狐浏览器IE浏览器等。web兼容性测试:以浏览器兼容性为主,操作系统和分辨率为辅。明确需求:根据用户需求去找浏览器,市场占有率的浏览器(浏览器最近的三个版本)操作系统:安装虚拟机。浏览器市场占有率浏览器内核阵营操...
            0 0 934
            分享
          •   背景  在现代的开发模式中,基于微服务的开发模式越来越常见,但是随着项目规模的扩大,服务与服务之间的依赖越来越密切,当不同的开发团队去开发不同的服务时,服务的提供者的变动会影响到众多消费它的消费者,为了保证系统的正确性和一致性,这将需要大量的沟通成本和代码修改的时间成本。  之前遇到的某个客户内部就是因为服务与服务之间依赖过多,且存在各种的物理依赖,再加上其他种种原因,使得在集成测试时bug激增。对于他们而言集成测试需要依赖于各个服务版本的一致性以及真实的物理环境,因此他们的集成测试通常需要用上几个小时才可以完成,这就使得整体的效率大大缩减。除此之外,在集成测试中发现的问题也会使得他们花很...
            0 0 719
            分享
          • 现在代购、网红、主播等行业的兴起,因其行业特殊性,往往他们的微信账号上拥有海量的客户资源,这时候,号主想将这些账号出售,那这笔交易可以达成吗?对此,江阴市人民法院就有一起关于微信账号买卖的典型案例。据江阴市人民法院公众号消息,医美行业网红程某拥有好几万粉丝,微信上有好多优质客户资源,2019年9月,她以50万元的价格将9个微信号(每个微信号均有两到三千的微信好友)转让给赵老板用于商业运作,约定当天付款30万元,2020年3月22日、9月22日各付款10万元。协议签订当天,赵老板如约支付了30万元,程某也随即将9个微信号交付赵某并完成了微信号的密码、绑定手机号信息变更。但赵某未支付剩余的20万元...
            0 0 955
            分享
          •   1. 前言  前段时间Airtest更新了1.3.0.1版本,里面涉及非常多的iOS功能新增和改动,今天想详细跟大家聊一下里面的iOS设备接口。  PS:本文示例均使用本地连接的iOS设备,Airtest版本为1.3.0.1 。  2. 安装接口:install、install_app  Airtest支持通过本地.ipa文件安装APP,也支持通过下载链接安装APP,以本地ipa文件为例:  # -*- encoding=utf8 -*-   __author__ = "AirtestProject"      from...
            0 0 1203
            分享
          • 一、什么是Appium?1. Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。2. Appium支持iOS、Android及FirefoxOS平台测试。3. Appium使用webdrive的底层协议,来驱动iOS系统的XUCITest库、Android系统的UIAutomator框架。二、有哪些特点?跨设备跨架构(不同版本的Android和ios)跨语言,支持多种程序语言开发测试程序,基本上 Selenium 支持开发的语言,appium 都支持,比如:pyhton、java、Ruby、js、php、C# 等。跨app,可以在多个A...
            0 0 1920
            分享
      • 51testing软件测试圈微信