首页 > 其他分享 >如何编写一个好的测试用例?才能防止背黑锅

如何编写一个好的测试用例?才能防止背黑锅

时间:2024-01-19 20:33:14浏览次数:26  
标签:模块 编写 检查 测试用例 测试 软件 背黑锅 软件测试

如何编写一个好的测试用例?才能防止背黑锅_软件测试

五星上将麦克阿瑟曾经说过“老夫干测试,测试用例不过删用例!“

让我们来讲一个故事


今天和女朋友吵架了,(假设你有女朋友)。

今晚又是一个人睡沙发,这天晚上,你躺在沙发上,夜不能寐

决定学习一下这个事情——如何编写好的测试用例?


测试用例

什么是测试用例?

在这之前,思考一个问题,下面这个简单的QQ登录页面,一共又多少条测试用例?

如何编写一个好的测试用例?才能防止背黑锅_软件测试_02


答案是100条以上。


那么,什么是测试用例?

测试用例是用于检查特定应用程序/软件是否正常工作所需的软件测试的定义格式。测试用例由需要检查以测试应用程序或软件的一组特定条件组成,即,更简单地说,当检查条件时,它会检查结果输出是否满足预期输出。测试用例由ID、条件、步骤、输入、预期结果、结果、状态、备注等各种参数组成。


如果我们有时间能把所有的情况都试一下的话,肯定是不会存在漏测的情况。但是现在的问题就是时间真的是不允许,尤其现在都在走敏捷的路子,大家恨不得一天上一个新功能,所以说能留给测试的时间真的很少。

怎样既能覆盖到所有的测试场景,测试的执行数量又能控制在一个比较合适的数字,这个就是我们设计测试用例的过程。

一个好的测试用例包含什么?

先来谈谈测试用例的作用

  • 检查软件是否满足客户期望:测试用例有助于检查特定模块/软件是否满足指定要求。 
  • 检查软件与条件的一致性:测试用例确定特定模块/软件是否可以在给定的一组条件下工作。 
  • 缩小软件更新范围:测试用例有助于缩小软件需求和所需更新的范围。
  • 更好的测试覆盖率:测试用例有助于确保覆盖并记录所有可能的场景。 
  • 为了测试执行的一致性:测试用例有助于保持测试执行的一致性。记录良好的测试用例可以帮助测试人员查看测试用例并开始测试应用程序。 
  • 在维护过程中很有帮助:测试用例很详细,这使得它们在维护阶段很有帮助


其实,它最重要的作用是这个

避免背黑锅!!!!

当出现生产bug的时候,直接甩他测试用例,这个我明明覆盖过了,为什么还会有


如何编写一个好的测试用例?才能防止背黑锅_应用程序_03


一个标准的测试用例,应该包含以下内容

  • 模块名称:定义测试功能的主题或标题。 
  • 测试用例 ID:分配给测试用例中每个条件的唯一标识符。 
  • 测试者姓名:将执行测试的人员的姓名。 
  • 测试场景:测试场景为测试人员提供了简短的描述,例如提供一个小的概述以了解需要执行的操作以及测试的小功能和组件。 
  • 测试用例描述:给定软件需要检查的条件。例如。检查年龄输入框是否只有数字验证有效。 
  • 测试步骤:检查状况所需执行的步骤。 
  • 先决条件:测试过程开始之前需要满足的条件。 
  • 测试优先级:顾名思义,优先考虑必须首先执行的测试用例,或者更重要且可以稍后执行的测试用例。 
  • 测试数据:检查条件时要采取的输入。 
  • 测试预期结果:测试结束时应预期的输出。 
  • 测试参数:分配给特定测试用例的参数。 
  • 实际结果:最后显示的输出。 
  • 环境信息:进行测试的环境,例如操作系统、安全信息、软件名称、软件版本等。 
  • 状态:测试的状态,例如通过、失败、NA 等。 
  • 评论:关于测试中关于软件改进的评论。 

但是,又有人会说了,老夫干测试,就是一把梭,直接用户思维去测试

如何编写一个好的测试用例?才能防止背黑锅_软件测试_04

其实是不对的

软件测试过程不仅限于查找当前软件中的错误,还包括在效率、可用性和准确性等各个方面寻找升级软件的措施。因此,为了测试软件,软件测试提供了一种称为测试用例的特定格式

测试用例的编写思路

1、划分功能模块

2、正向功能验证:正常操作功能是否实现

3、单个功能项验证:正向+异常

4、功能之间交互验证:模块之间的数据传递

5、隐形需求:熟悉业务

如何编写一个好的测试用例?才能防止背黑锅_测试用例_05

按照模块划分,光是正向的用例就已经这么多条了,这还是没有考虑弱网测试,恶意登录等一些特殊情况


总结

写好一个清晰可用的测试用例,具有非常重要的意义。它们是验证和确保软件产品或系统符合其预定需求和规格的关键工具,是我们的基本功之一。

如何编写一个好的测试用例?才能防止背黑锅_测试用例_06


以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️  支持。 咱们下篇文章见,Bye~

标签:模块,编写,检查,测试用例,测试,软件,背黑锅,软件测试
From: https://blog.51cto.com/u_15717981/9336220

相关文章

  • Adobe InCopy 2024 v19.1 (macOS, Windows) - 编写和副本编辑软件
    AdobeInCopy2024v19.1(macOS,Windows)-编写和副本编辑软件Acrobat、AfterEffects、Animate、Audition、Bridge、CharacterAnimator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、LightroomClassic、MediaEncoder、Photoshop、PremierePro、AdobeXD......
  • 测试用例设计方法(一)
    输入数据的设计方法和测试用例设计方法输入数据的设计方法与测试用例的设计方法混为一谈,其实,测试用例中输入数据的设计方法只是测试用例设计方法的一个子集。如:(1)等价类划分法(2)边界值法(3)功能图与判定表法(4)错误推测法(5)用户场景法(6)......上面几种方法都是确定黑......
  • Google的Jax框架的JAX-Triton目前只能成功运行在TPU设备上(使用Pallas为jax编写kernel
    使用Pallas为jax编写kernel扩展,需要使用JAX-Triton扩展包。由于Google的深度学习框架Jax主要是面向自己的TPU进行开发的,虽然也同时支持NVIDIA的GPU,但是支持力度有限,目前JAX-Triton只能在TPU设备上正常运行,无法保证在GPU上正常运行。该结果使用kaggle上的TPU和GPU进行测试获得。......
  • 编写可读代码的艺术
    写让人理解的代码代码的写法应该使理解代码的人所需要的时间最小化变量名使用专业的词避免使用空泛的词给变量名带上附加信息为作用域更大的变量起一个长的名字有目的的使用大小写和下划线让人不会误解的名字不会误解的名字是最好的名字————阅读代码的人应该理解你......
  • Woodpecker CI 设计分析|一个 Go 编写的开源持续集成引擎
    一、前言大家好,这里是白泽。随着Go语言在云原生领域大放异彩,开发者逐渐将目光转移到了这门语言上,而容器则是云原生时代最核心的载体。《WoodpeckerCI设计分析》系列文章将分析开源CI引擎Woodpecker的架构设计,探究Go协程是如何支持由Workflow定义的大量Task的频繁......
  • 42 干货系列从零用Rust编写负载均衡及代理,wmproxy中配置tcp转websocket
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • 22. 从零用Rust编写正反向代理,一个数据包的神奇HTTP历险记!
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy数......
  • 23. 从零用Rust编写正反向代理,流控小姐姐的温柔一刀!
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy温......
  • 使用Go语言编写HTTP代理服务器
    在Go语言中,编写一个HTTP代理服务器相对简单且直观。代理服务器的主要职责是接收客户端的请求,然后将请求转发到目标服务器,再将目标服务器的响应返回给客户端。下面是一个简单的示例,展示如何使用Go语言编写一个基本的HTTP代理服务器:go复制代码package mainimport ("io" "log" "......
  • 基于rest_framework的ModelViewSet类编写登录视图和认证视图
    背景:看了博主一抹浅笑的rest_framework认证模板,发现登录视图函数是基于APIView类封装。优化:使用ModelViewSet类通过重写create方法编写登录函数。环境:既然接触到rest_framework的使用,相信已经搭建好相关环境了。1建立模型编写模型类#models.pyfromdjango.dbimportmodel......