• 1
  • 1
分享
  • 如何优雅编写测试用例——软件测试圈
  • quinn 2024-05-14 14:19:16 字数 2236 阅读 799 收藏 1

  当你学会了如何设计测试用例之后,接下来便是开始用例的编写。

  在设计阶段,更准确的说应该是识别测试点的过程,而编写阶段则是将测试点细化成一条条测试用例的过程,有了比较全的用例场景后,如何让别人更舒服、更方便、更清晰地去使用你的测试用例,如何更优雅地展示你的测试用例,如何让领导对你的测试用例满意呢?(“降本增效”,这里的“效”有时也指的是“效果”)

  测试用例的编写是每一个测试工程师安身立命的家伙,也是测试的基础,更是软件测试的核心内容,正所谓“基础不牢,地动山摇”,所以一定要掌握好,有些转行的小伙伴一上来就开始自动化、性能的学习,却忽略了最基础的东西,这是不对的。

  正好最近有小伙伴问到关于用例模板的问题,借此机会来聊一聊“如何优雅编写测试用例”这个话题。

  编写测试用例之前,首先应该根据所在公司、项目组的特点,提前制定好对应的测试用例模板以及用例维护方式,比如:Excel、XMind、TestLink、禅道等。

  测试用例的组成通常包含以下内容(具体字段根据业务需要取舍):

  · 用例编号

  作为测试用例的唯一标识。编号取值规则可以根据项目名称各中文首字母大写+六位数字构成,例如:“蔡坨坨电商项目”在登录功能子模块的第一条用例编号可取值为CTTDS_000001。

  · 用例标题

  又称之为测试点,用一句话来描述测试用例的关注点,每一条用例对应一个测试目的。

  一个好的测试用例应该关注标题的规范性,一般来说如果设计用例标题不规范,别人在使用你的测试用例时,就无法做到清晰明了,就会浪费很多时间在沟通上。

  并且需要控制用例的粒度,从测试执行者的角度来说,过细的测试用例会让执行者感到疲惫繁琐,过粗的测试用例又容易导致检查点遗漏。所以测试用例标题一般控制在30个字以内。

  · 功能模块

  根据项目模块层级关系填写,例如:组织权限。

  · 测试目的

  简要的测试目的,例如:账号密码功能校验。

  前置条件

  用例在执行之前需要满足的一些条件,否则用例无法执行,如测试环境,需要提前执行的操作等,例如:进入到某一页面。

  测试用例其实就是在某种场景下,执行一定的动作,达到什么样的结果。而前置条件决定了“在某种场景下”,所以是不可或缺的。

  · 优先级

  根据需求的优先级来定义,高优先级要覆盖核心业务,重要特性以及使用频率比较高的部分。

  级别的枚举值也有多种形式,比如:P0\P1\P2\P3,1\2\3\4,高\较高\中\低。

  冒烟测试(高)、基础用例(较高)、特殊场景用例(中)、错误场景用例(低)。

  · 操作步骤

  测试用例的步骤描述,执行人员可以根据测试步骤完成测试的执行,一般只需要写和测试目的密切相关的步骤,一些基础的步骤可以放在前置条件中,例如:1.输入正确的账号2.输入错误的密码3.点击登录按钮4.查看结果。

  用例步骤一般不多于7步,不少于2步。

  操作步骤也是不可或缺的一部分,因为它关系到如何执行。

  · 测试数据

  在执行测试时,需要输入一些外部数据来完成测试。这些数据根据测试用例的统计情况来确定,有参数、文件或数据库记录等,例如:账号:admin,密码:123456。

  · 预期结果

  测试用例中最重要的部分,主要用来判断被测对象是否正常,例如:提示用户名或密码错误。

  预期结果关系到用例需要达到什么样的结果,所以也是不可或缺。

  · 执行结果

  每条用例的实际执行结果,只有三个枚举值:PASS(通过)、FAIL(不通过)、N/A(未执行)。

  预期结果一般不超过5个,不少于1个。

  · 对应的 Bug Id

  每条测试用例执行不通过后再记录对应一条Bug,例如:BUG-1219。

  · 编写人

  用例对应的编写人员,填写编写人员姓名,例如:测试蔡坨坨。

  · 执行人

  用例对应的执行人员,填写执行人员姓名,例如:测试蔡坨坨。

  · 备注

  每条测试用例的备注,备注内容可以按实际情况填写,一般有备注的测试用例都比较重要,需要格外关注。

  测试用例的编写并没有好坏和对错之分,每个人编写用例的思路也是各不相同,适合当前团队就是最好的,不要盲目把所有的字段都加上,应根据实际场景进行取舍。

  除此之外,还有一些注意事项值得关注。

  例如:

  标题要清晰,推荐采用 场景+预期结果 进行描述,比如:输入正确的用户名和密码,成功登录系统;

  控制用例的粒度,比如:标题字数不超过30个字、步骤数控制在2-7步、预期结果数在1-5个;

  用例之间要解耦,日常工作中经常遇到几个用例有先后顺序的情况,比如:在测试编辑之前肯定要先新建一条数据,最好把新建放在编辑用例的前置条件中,每条用例都能实现闭环;

  预期要明确,不要出现一些模糊字眼,对于不明确的点应该跟产品沟通;

  拒绝冗余,用例可以多,但不要冗余,尽可能以最小场景覆盖最全的范围,同一个等价类只需测一条数据,当然,因为测试不可穷尽性,测试场景肯定不会最全面,往往会受限于时间和资源等成本,这时需要在有限的资源下,寻求质量和效率之间的平衡点,优先级这个字段就起到了作用,再引申就是测试策略的问题了,整体上采取基于风险驱动的模式,有侧重点地去验证一些场景,优先核心功能,或者增加资源和延长周期,同时寻求自动化相关技术去提升整体效率。


作者:测试蔡坨坨    

来源:http://www.51testing.com/html/63/n-7799163.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   苹果公司首席执行官蒂姆-库克正在越南河内进行为期两天的访问,期间他将会见供应商、应用程序开发人员和学生。越南和印度是苹果公司减少对中国过度依赖的受益国之一。除了增加AirPods和Apple Vision Pro 的生产外,苹果还将一些iPad的开发工作转移到了越南。  据当地出版物VNExpress 报道,库克于 2024 年 4 月 15 日星期一抵达河内,开始为期两天的访问。库克告诉当地媒体,他很高兴能与河内的客户、学生和应用程序开发人员见面。  据报道,苹果公司还公布了加强对越南承诺的计划。具体细节尚未公布,但苹果将增加对供应商的支出,并资助一项学校清洁水计划。  库克本人也在社交...
            0 0 562
            分享
          • 天风国际分析师郭明錤于8月29日表示,苹果确实在为iPhone14/Pro系列开发卫星通信,并在量产前完成了该功能的硬件测试。此外,华为Mate50/Pro系列新机也可能通过北斗系统支持的卫星通信提供紧急短信服务。除了苹果和华为,谷歌似乎也在发力卫星连接功能。昨日,谷歌平台与生态系统高级副总裁HiroshiLockheimer在一条推文中表示,在2008年发布第一款安卓手机HTCG1时,让3G+WiFi正常工作是一件非常困难的事情。如今,谷歌已经开始致力于让手机与卫星进行连接,谷歌将在下一版本的安卓系统中提供该功能。据9To5Google报道,谷歌确认下一版本的安卓系统即为安卓14,这意味着谷...
            0 0 1149
            分享
          • 性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数据量测试,网络性能测试,服务器性能测试五大部分,具体编写测试用例时要根据实际情况进行裁减,在项目应用中遵守低成本,策略为中心,裁减,完善模型,具体化等原则;一、WEB 全面性能测试模型Web 性能测试模型提出的主要依据是:一种类型的性能测试可以在某些条件下转化成为另外一种类型的性能测试,这些类型的性能测试的实施是有着相似之处的;预期指标的性能测试系统在需求分析和设计阶段都会提出一些性能指标,完成这些指标的相关的测试是性能测试的首要工作之一,这些指标主要诸于“系统可以支持并发用户200个;”系统响应时间不得超过20秒等,对这种预先...
            12 14 2805
            分享
          •   在SDV的大趋势下,汽车零部件智能化水平不断提高,车辆内部搭载的软件也越来越多。毫无疑问,车辆复杂度的提高必将带来维护上的困难,车企要如何面对更新迭代速度越来越快的软件、固件系统?OTA(over the air)技术在软件定义汽车中扮演了核心角色,帮助车企远程实现车辆功能升级、性能优化、缺陷修复,为用户带来更好的服务和体验。车企也得以和用户建立更好、更深远的联系。  OTA安全风险  作为车企修复软件固件漏洞、迭代改进软件功能的重要途径,OTA的快速普及让其成为黑客的重点研究对象。总体上OTA常见的安全风险包括以下几个:  身份假冒  攻击者伪装OTA通信中的发送方或接收方身份。  窃听...
            0 0 627
            分享
          • python通用测试框架大多数人用的是unittest+HTMLTestRunner,这段时间看到了pytest文档,发现这个框架和丰富的plugins很好用,所以来学习下pytest。pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:简单灵活,容易上手;支持参数化;能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html...
            15 15 1754
            分享
      • 51testing软件测试圈微信