设计测试用例的6种基本原则
设计测试用例的基本原则,对于软件测试非常重要,这些原则有助于设计出高质量、全面、有效的测试用例,从而提高软件测试的效率和准确性,维护软件的质量和稳定。如果在设计用例时没有遵循基本原则,这会影响用例的全面性、准确性和简洁性,不利于尽早发现潜在的缺陷和及时避免冗余和重复测试相同功能或场景,降低了测试效率,影响项目质量。
因此,我们需要严格遵循设计用例基本原则,一般来说有以下6种基本原则:

1、需求为主、设计为辅的原则
设计测试用例时应遵循的基本原则:以需求为主,以设计为辅,避免过度设计。遵循该原则设计测试用例,所需的注意事项如下:
(1)从需求出发,设计能有效验证需求的测试用例
(2)明确不在需求范围内的功能,不设计测试用例
(3)在需求范围内的功能,不过度设计。
(4)一些没有明确提出、但属于共识或隐含的需求,应设计测试用例
如,对于一个集成系统之间用于同步数据的更新接口,如果需求规定接口只允许单独调用,设计并发量的测试就属于过度设计。

遵循需求为主、设计为辅的原则,同时为进一步提高测试用例编写效率和确保测试覆盖率,CoCode开发云使用AI,自动生成每个需求的正向反向多维度测试用例,提高测试覆盖度和全面性,保障测试质量,减轻测试人员工作量,提高20%-30%工作效率。
2、场景化原则
设计测试用例时应遵循场景化原则,即尽可能贴近真实用户的使用场景,包括各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等。
遵循该原则设计测试用例,注意事项如下:
(1)应全覆盖真实用户的使用场景
(2)围绕场景进行更多的探索
(3)以第一人称的主观视角描述用例,从客户使用角度构建思维导图
(4)按照用户使用的自然顺序设计用例

如,某车载导航一过隧道地图就失灵了,车机不能连WiFi,信号差导航没法用……在软件测试阶段这些问题都没暴露,而嵌入式软件的功能验证不能不考虑真实的使用场景,能在需求分析时就考虑到当然很好,如果前期缺失这些关键信息,在测试设计时进行使用场景的思考就显得尤为重要。
3、原子化原则
测试用例应该具备原子性,应有单独的测试点,确保每个用例只测试一个功能点或场景。
遵循该原则设计测试用例,注意事项如下:
(1)复杂的功能拆分成多个原子化的测试用例,以便更好地管理和定位问题
(2)每个测试用例包含的测试步骤尽量不超过10个
(3)避免将多种情况塞在一个用例里
如,对于一个购物车功能的测试,可以将添加商品、删除商品、修改商品数量等功能拆分成多个原子化的测试用例。

4、独立性原则
测试用例应该相互独立,一个用例的执行结果不应该影响其他用例的执行结果,进而确保测试结果的准确性和可靠性。即用例B的执行不应该依赖于用例A的执行结果。
测试用例之间不应该有任何依赖关系,即使前一个测试用例的执行结果会影响后一个测试用例的执行,也应该通过在每个测试用例中设置初始状态来实现独立性。测试用例之间应该避免顺序依赖、数据依赖、资源依赖、时间依赖以及环境依赖,以保持每个测试用例能够独立执行,从而提高测试的可维护性和可重复性。

5、可重复性原则
可重复性原则是指测试用例应该能够在不同的测试环境和执行时间重复执行,并产生一致的结果。这个原则的目的是确保测试结果的可靠性和稳定性,以便进行回归测试和统计覆盖率等工作。
为了遵循可重复性原则,我们需要确定测试环境、准备特定的测试数据、清理测试环境、隔离测试用例、记录测试过程以及自动化测试。
通过执行这些测试用例,我们可以重复验证登录功能的正确性,并确保在不同的测试环境和执行时间下都能产生一致的结果。这样可以提高测试的可靠性和稳定性,帮助开发团队及时发现和修复问题。

6、可判定原则
测试用例可判定原则,是指测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。通过定义明确的预期结果,可以判断测试是否通过或失败。应给出可判定的期望执行结果,在没有缺陷的情况下,多次执行应保持结果一致性。
遵循该原则设计测试用例,注意事项如下:
(1)判定准则应明确可判,避免模糊或笼统的描述
(2)除非业务规则变化,否则判定准则应不变
(3)同一条件下,多次执行结果判定应一致
只要测试用例有单一的判定规则,可以按照预期结果和实际结果来判断用例是否通过,就满足了可判定原则。如,对于一个登录功能的测试用例,预期结果可以是成功登录后跳转到指定页面,或者登录失败后显示错误提示信息。

设计测试用例时,应遵循以上6大原则,帮助我们设计出全面的测试用例,从而提高测试的效率和质量,降低软件的风险和成本。
相关文章:

设计测试用例的6种基本原则
设计测试用例的基本原则,对于软件测试非常重要,这些原则有助于设计出高质量、全面、有效的测试用例,从而提高软件测试的效率和准确性,维护软件的质量和稳定。如果在设计用例时没有遵循基本原则,这会影响用例的全面性、…...

java的Exception.getMessage为null
之前捕获异常后调用异常的getMessage写日志,日志写的竟然是null,不可思议。发现要调用异常的getCause().getMessage()才能得到异常信息 刻意把密码改错,让异常直达界面,免得有问题时候只能猜...

EXTI (2)
增强版实验简介 EXTI5和EXTI9共享一个中断源 下面的类似 EXTI0到4各自拥有一个中断源 改变引脚 PA0和PA1改变为PA5 和PA6 EXTI的重映射 之前是把PA0映射到EXTI0 PA1映射到EXTI1上 现在是要把PA5和PA6分别映射到EXTI5和6上 EXTI进行初始化 NVIC初始化 编写中断函数 因为EXTI…...

Django实战项目-学习任务系统-任务完成率统计
接着上期代码内容,继续完善优化系统功能。 本次增加任务完成率统计功能,为更好的了解哪些任务完成率高,哪些任务完成率低。 该功能完成后,学习任务系统1.0版本就基本完成了。 1,编辑urls配置文件: ./mysi…...

安卓调用手机邮箱应用发送邮件
先来看看实现效果: 也不过多介绍了,直接上代码: private void openMail() {Uri uri Uri.parse("mailto:" "");List<ApplicationInfo> applicationInfoList getPackageManager().getInstalledApplications(Packa…...

Vue-Pinia
目录 Pinia状态管理库 使用步骤 1、安装Pinia 2、在vue应用实例中使用pinia 3、在src/stores/token.js中定义stores 4、在组件中使用store axios请求拦截器 代码实现 Pinia状态管理库 Pinia是Vue的专属状态管理库,它允许你跨组件或页面共享状态 一般在登录时…...
C语言,编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出
以下是一个使用C语言编写的程序,用于输出半径为1到15的圆的面积,并且如果面积在30到100之间,则输出该圆的半径和面积。 #include <stdio.h> #define PI 3.14159265358979323846int main() {int radius;double area;for (radius 1; ra…...

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感
利用ANSYS Electronics Desktop,可在综合全面、易于使用的设计平台中集成严格的电磁场分析和系统电路仿真。按需求解器技术让您能集成电磁场仿真器和电路及系统级仿真,以探索完整的系统性能。 HFSS(High Frequency Structure Simulator&#…...
对数据库密码使用MD5加密算法加密,并进行登录验证
实现步骤: 修改数据库中明文密码,改为MD5加密后的密文 打开employee表,修改密码 修改Java代码,前端提交的密码进行MD5加密后再跟数据库中密码比对 打开EmployeeServiceImpl.java,修改比对密码 /*** 员工登录** param …...

关于Chrome中F12调试Console输入多行
在chrome 浏览器中使用console调试的时,如果想在console中输入多行代码,需要进行换行。 这时我们可以使用 [ Shift Enter ] 。也叫: 软回车。...
C# 集合用法介绍
在C#中,集合是一种特殊的数据类型,允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型: List:它是一个有序的元素列表,用户可以添加、删除或查找元素。Dictio…...

linux三次握手、四次挥手
TCP协议是一个安全的、面向连接的、流式传输协议,所谓的面向连接就是三次握手,对于程序猿来说只需要在客户端调用connect()函数,三次握手就自动进行了。先通过下图看一下TCP协议的格式,然后再介绍三次握手的具体流程。 1.tcp协议…...
C# 泛型介绍
C# 中的泛型(Generics)是一种强类型参数化的特性,它允许你编写不具体指定数据类型的代码,而在实际使用时再指定具体的类型。泛型的引入使得代码更加灵活、可重用,并提高了类型安全性。 C#泛型基本用法 以下是一个简单…...

Windows如何正确设置PHP环境变量以在Git Bash中运行命令
1、随便找一个目录,鼠标右键打开git bash here 2、cd的根目录 3、找到php安装目录 4、 在根目录下打开 vim .bash_profile ,添加环境变量,php地址根据自己的本地地址而定 PATH$PATH:/d/phpstudy_pro/Extensions/php/php7.3.4nts 添加后保存…...

[代码实战和详解]VGG16
VGG16 详解 我的github代码实现:vgg16 我们在vgg16神经网络上训练了SIGNS数据集,这是一个分类的数据集,在我的github上有介绍怎么下载数据集以及如何训练。 VGG16是一个卷积神经网络(CNN)架构,它在2014年…...

x3daudio1_7.dll错误:解决方法和丢失原因及作用
x3daudio1_7.dll是Windows操作系统中的一个动态链接库(DLL)文件,主要作用是为DirectX音频提供支持。DirectX是微软推出的一套多媒体应用程序开发接口,广泛应用于游戏、多媒体制作等领域。x3daudio1_7.dll文件包含了许多与三维音频…...

pipeline + node +jenkins+kubernetes部署yarn前端项目
1、编写Dockerfile文件 # Set the base image FROM node:16.10.0# WORKDIR /usr/src/app/ WORKDIR /home/option# Copy files COPY ./ /home/option/# Build arguments LABEL branch${BRANCH} LABEL commit${COMMIT} LABEL date${BUILD_DATE} ARG ENV# Set ENV variables ENV …...
计算机网络中的面向连接与无连接
目录 面向连接和无连接在计算机网络中是如何理解的面向连接和无连接的通信在路由选择上有哪些区别 面向连接和无连接在计算机网络中是如何理解的 在计算机网络中,面向连接和无连接是两种核心的网络通信方式,它们决定了数据包如何传输和接收。 面向连接&…...
EventEmitter3在vue中的使用
前提 vue中的组件传递方式有很多,包括父子组件之间的传值(props,emit)、事件总线($ bus)、状态管理模式(vuex,pinia),现在推荐一种可以替代$bus的一种传值方…...

双剑合璧:基于Elasticsearch的两路召回语义检索系统,实现关键字与语义的高效精准匹配
搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...