如何编写一份高质量测试用例

简介: 如何编写一份高质量测试用例

大家好,我是阿娟,一位从业 7 年的软件测试程序媛

测试用例编写是软件测试中非常重要的一个环节,今天给大家分享如何编写一份高质量测试用例


一、需求拆解


一)整体了解需求


仔细阅读需求文档,对整体需求进行的充分理解,例如遇到业务相关联的需求,需要查询相关文档或是询问相关同学,尽全力做到不遗漏。


二)识别功能点


将整体的需求拆分为具体的功能点,例如注册,除了正常的注册流程,还要考虑不同注册的方式,手机号注册、邮箱注册、微信注册等等。


三)确定边界和约束


确定每个子功能的边界和约束条件,包括输入、输出、数据格式等,例如邮箱注册,支持的邮箱类型,密码输入的格式等等。


四)结合业务


很多测试场景是要和业务相结合的,例如登录,常见的一般有手机号登录、邮箱登录。但是还有很多需求方要求授权码登录,一些绑定在主帐号上的公共帐号只能通过这种方式进行登录等。


二、测试用例的编写


一)组成要素


1、测试用例名称:用于描述测试用例的目的或功能点,例如登录、注册等。

2、测试前提:测试用例执行的前提条件,例如登录功能的验证前提网络正常等。

3、测试步骤:测试用例的操作流程。包括所需的输入和操作等,例如输入正确的帐号和密码,点击登录。

4、测试数据:测试用例执行的输入数据,包括输入值、边界条件等。

5、预期结果:测试用例的预期执行结果,例如点击登录按钮,预期结果是登录成功,进入到app首页等。

6、实际结果:测试用例的实际执行结果,

7、优先级:标识测试用例的优先级或重要性级别

8、测试状态:标识测试用例验证通过或失败

9、备注:记录其他和用例执行相关的数据信息


二)呈现方式


1、Excel:包含如上所述的要素,用例编写更详细一些,每一条用例验证一个功能点

2、XMind:如果业务场景不是很复杂,可以尝试使用XMind编写,结构比较清晰

3、其他工具

使用开源或是自研的工具,编写方法是一样的,优点是项目或是团队各成员之间用例可以实现共享,并且能看到具体的执行记录


三)编写测试用例的常用方法


1、等价类划分法


一般是指一个输入域的集合,在这个集合中每个输入条件都是有效的,一般分为有效等价类和无效等价类。

举例:计算1~10之间两个整数的和。

有效等价类:1~10,无效等价类:<1和>10、非整数、其他字符


2、边界值法


输入值的边界情况,包括最小值、最大值和临界值。一般是对等价类划分的一个补充。

举例:计算1~10之间两个整数的和。

产生了1和10这两个边界值(闭区间,1和10都有效)


还有一些场景是开区间的,例如(1,10],[1,10)等,根据实际情况进行调整


3、场景法


事件触发形成了场景,而同一事件的不同触发条件或是顺序或处理结果形成事件流,最后要形成闭环


例如登录流程:

基础流:输入正确的账户和密码登录成功

基础流+备用流1:账户需要二次验证,输入正确的账户和密码,进入二次验证界面,验证成功,登录成功

基础流+备用流2:输入错误的账户和密码,提示账户或密码错误等。


4、因果图法(判定表法)


输入条件比较多的情况下,所有的输入条件的排列组合

举例:注册流程,a. 输入手机号或者电子邮箱作为账户名 b. 输入正确验证码  

两项都验证成功,填写账户信息

如果一项验证不正确(输入手机号或电子邮箱格式错误),提示账户错误

验证码输入错误,提示验证码错误

❌表示不输入

根据整理好的表数据,编写测试用例


5、错误推测法


基于测试人员的测试经验,猜测系统中可能存在的错误和缺陷,并编写相应的测试用例来验证这些猜测。


6、正交表法


举例:一个样式控件

字体包含宋体和楷体

颜色包含黑色和红色

样式基于正文和标题

找出控件个数(因素数)以及每个控件的取值个数(水平数)

根据正交表查询链接(http://support.sas.com/techsup/technote/ts723_Designs.txt),选择一个水平为:2,因素为:3的正交排列表,如下图所示:



将每个控件及其取值进行编号,并填入正交表中,如下图所示:



根据整理好的正交表,编写测试用例,每一行对应一条用例


三、其他


一)独立性和可重复性


每个测试用例应该是相互独立的,不依赖于其他用例的执行结果。用例应该是可重复执行的,以便在需要时重复验证结果。


二)可验证性


每个测试用例的预期结果应该是可验证的,能够判断测试是否通过或失败。


三)可复用性


很多功能组件都是复用的或是同一个功能展示在不同入口,所以有些用例是可以复用的,通过修改或扩展,减少冗余的测试用例编写。


四)及时更新和维护


随着项目的发展或是需求的变化,及时更新和维护测试用例,以确保其与系统的最新版本功能保持一致。


以上就是今天的分享,谢谢你的阅读呀~


相关文章
|
6月前
|
JSON Java 测试技术
面向初学者的JMeter实战手册:从环境搭建到组件解析
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。
320 0
|
人工智能 自然语言处理 机器人
对话阿里云 CIO 蒋林泉:AI 时代,企业如何做好智能化系统建设?
10 月 18 日, InfoQ《C 位面对面》栏目邀请到阿里云 CIO 及 aliyun.com 负责人蒋林泉(花名:雁杨),就 AI 时代企业 CIO 的角色转变、企业智能化转型路径、AI 落地实践与人才培养等主题展开了讨论。
23010 69
对话阿里云 CIO 蒋林泉:AI 时代,企业如何做好智能化系统建设?
|
10月前
|
人工智能 机器人 API
阿里云百炼xWaytoAGI共学课 DAY2 - 更好用的文本知识库应用跟学,快速上手阿里云百炼
本课程是阿里云百炼平台的第二天课程内容,旨在帮助用户了解如何通过阿里云百炼构建和发布自己的AI应用。介绍了如何利用大模型和智能体应用来创建具备强大语言理解和生成能力的AI助手,并通过不同的渠道(如网站、钉钉、微信公众号等)发布这些应用。
1757 8
|
存储 人工智能 数据处理
阿里云CTO周靖人:全面投入升级AI大基建
9月19日,在2024杭州云栖大会上,阿里云CTO周靖人表示,阿里云正在围绕AI时代,树立一个AI基础设施的新标准,全面升级从服务器到计算、存储、网络、数据处理、模型训练和推理平台的技术架构体系,让数据中心成为一台超级计算机,为每个AI和应用提供高性能、高效的算力服务。
22462 15
|
安全 测试技术
不会写测试用例咋办?牢记这5点,你也能写出高逼格案例
不会写测试用例咋办?牢记这5点,你也能写出高逼格案例
452 1
|
运维 监控 架构师
如何进行系统架构评审:全面指导与实践
【8月更文挑战第18天】系统架构评审是确保软件项目成功的关键环节之一。通过科学合理的评审流程和严格的评审要点控制,可以显著提高架构设计的质量和项目的整体成功率。
|
Windows
Acunetix——本地计算机上的Acunetix服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
Acunetix——本地计算机上的Acunetix服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
536 0
|
敏捷开发 人工智能 测试技术
提升软件质量的关键——高效软件测试策略与实践
在软件开发过程中,测试是一个至关重要的环节。它不仅决定了产品的可靠性和用户体验,还直接影响到企业的声誉和市场竞争力。本文将详细探讨如何通过科学的测试策略和方法,确保软件质量达到高标准的要求。从测试流程的设计、自动化测试工具的应用,到持续集成和持续部署的实践,我们将全面解析如何在软件开发中实施有效的测试,以降低错误率,缩短上市时间,并提供优质的软件产品。
569 0
|
测试技术 数据安全/隐私保护
软件测试的艺术:如何高效地编写测试用例
【9月更文挑战第2天】在软件开发的海洋中,测试用例是导航灯塔,指引着质量保障的航向。本文将带你航行于测试用例编写的技巧之海,从理解需求到设计思路,再到实际执行,我们将一起探索如何高效而精准地构建测试用例,确保软件的稳健与可靠。
312 0
|
监控 网络协议 算法
在Linux中,如何进行网络性能调优?
在Linux中,如何进行网络性能调优?