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

2024-01-20 04:36

本文主要是介绍如何编写一个好的测试用例?才能防止背黑锅,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

    • 什么是测试用例?
    • 一个好的测试用例包含什么?
    • 测试用例的编写思路
    • 总结

什么是测试用例?

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

Alt

答案是100条以上。

那么,什么是测试用例?

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

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

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

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

先来谈谈测试用例的作用

检查软件是否满足客户期望:测试用例有助于检查特定模块/软件是否满足指定要求。

检查软件与条件的一致性:测试用例确定特定模块/软件是否可以在给定的一组条件下工作。

缩小软件更新范围:测试用例有助于缩小软件需求和所需更新的范围。

更好的测试覆盖率:测试用例有助于确保覆盖并记录所有可能的场景。

为了测试执行的一致性:测试用例有助于保持测试执行的一致性。记录良好的测试用例可以帮助测试人员查看测试用例并开始测试应用程序。

在维护过程中很有帮助:测试用例很详细,这使得它们在维护阶段很有帮助

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

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

在这里插入图片描述
一个标准的测试用例,应该包含以下内容

模块名称:定义测试功能的主题或标题。

测试用例 ID:分配给测试用例中每个条件的唯一标识符。

测试者姓名:将执行测试的人员的姓名。

测试场景:测试场景为测试人员提供了简短的描述,例如提供一个小的概述以了解需要执行的操作以及测试的小功能和组件。

测试用例描述:给定软件需要检查的条件。例如。检查年龄输入框是否只有数字验证有效。

测试步骤:检查状况所需执行的步骤。

先决条件:测试过程开始之前需要满足的条件。

测试优先级:顾名思义,优先考虑必须首先执行的测试用例,或者更重要且可以稍后执行的测试用例。

测试数据:检查条件时要采取的输入。

测试预期结果:测试结束时应预期的输出。

测试参数:分配给特定测试用例的参数。

实际结果:最后显示的输出。

环境信息:进行测试的环境,例如操作系统、安全信息、软件名称、软件版本等。

状态:测试的状态,例如通过、失败、NA 等。

评论:关于测试中关于软件改进的评论。

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

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

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

在这里插入图片描述其实是不对的

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

测试用例的编写思路

1、划分功能模块

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

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

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

5、隐形需求:熟悉业务
+
以上面的登录页面,举一个例子,思维导入如下
在这里插入图片描述按照模块划分,光是正向的用例就已经这么多条了,这还是没有考虑弱网测试,恶意登录等一些特殊情况

总结

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

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

一个正经的测试,专注于AI与软件测试技术和宝藏干货分享,每天准时更新原创技术文章,每月不定期赠送技术书籍,让我们在测试会所在测试社区这个大家庭一起学习交流。喜欢记得星标⭐我,每天及时获得最新推送,

这篇关于如何编写一个好的测试用例?才能防止背黑锅的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624798

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA

PHP防止SQL注入的方法(1)

(1)mysql_real_escape_string – 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_r

防止缓存击穿、缓存穿透和缓存雪崩

使用Redis缓存防止缓存击穿、缓存穿透和缓存雪崩 在高并发系统中,缓存击穿、缓存穿透和缓存雪崩是三种常见的缓存问题。本文将介绍如何使用Redis、分布式锁和布隆过滤器有效解决这些问题,并且会通过Java代码详细说明实现的思路和原因。 1. 背景 缓存穿透:指的是大量请求缓存中不存在且数据库中也不存在的数据,导致大量请求直接打到数据库上,形成数据库压力。 缓存击穿:指的是某个热点数据在

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

Wondows dos下怎么编写bat批处理文件

最近搞php,在运行时,以Nginx+php-cgi.exe方式运行Wordpress项目 打开dos,先cd到php-cgi.exe文件当前目录下执行启动命令:php-cgi.exe -b 127.0.0.1:9001再打开一个dos,再cd到nginx.exe文件当前目录下执行启动命令:start nginx 大概过程要经过这些步骤,觉得很麻烦,就学下怎么编写一个bat文件,以双击运行代替

用Python编写倒计时程序:详细教程

目录 引言 环境准备 基本概念 代码实现 步骤一:导入必要的库 步骤二:获取用户输入 步骤三:实现倒计时逻辑 步骤四:整合代码 运行程序 高级功能 扩展功能示例:支持分钟和小时输入 扩展功能示例:图形用户界面 (GUI) 总结 引言 倒计时程序是一个非常常见的小工具,广泛用于各种应用场景中,例如考试时间提醒、烹饪计时器、会议倒计时等。Python 作为一种

【Spring boot】编写代码及测试用例入门之 Hello Spring boot _踩坑记

先贴下目录: 这是我从 start.spring.io 里下载的依赖Web的模板 // DemoApplication.javapackage com.abloume.springboot.blog.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autocon