软件测试用例(3)

目录

什么样的测试用例是一个好的测试用例

什么是测试用例的有效性?

测试用例的粒度和评价

粒度

 评价


什么样的测试用例是一个好的测试用例

什么是测试用例的有效性?

测试用例的有效性指的是测试用例是否能够有效地检测出软件系统中的错误或问题.

一个有效的测试用例应该具备以下特点:

1.覆盖率: 测试用例应该覆盖尽可能多的代码路径, 条件和边界情况, 以确保对系统的各个方面进行全面的测试. (差不多可以理解为白盒测试)

2.准确性: 测试用例的设计应该准确地反映出系统的实际需求和预期行为. 测试用例应该基于正确的需求和规范编写, 确保测试的结果是可信的.

3.独立性: 测试用例应该相互独立, 即一个测试用例的执行不应该影响其它测试用例的结果. 这样可以确保每个测试用例都能够独立地发现问题, 而不会因为其它因素的干扰而遗漏错误.

4.可重复性: 测试用例应该能够重复执行, 即在相同的环境和条件下, 多次执行同一个测试用例应该得到相同的结果. 这样可以确保问题可以被准确地重现和定位.

5.可维护性: 测试用例的编写应该具有良好的可维护性, 即易于理解, 修改和扩展, 随着系统的变化和演进, 测试用例也需要相应地进行更新和维护, 以保持测试的有效性.

测试用例的粒度和评价

粒度

好的测试用例是一个不熟悉业务的人也能根据用例来很快地进行测试

粒度: 指测试用例编写的详细程度.

测试用例可以写得很简单, 也可以写得很复杂. 最简单的测试用例是测试的纲要, 仅仅指出要测试的内容, 如探索性测试中的测试设计, 仅指出需要测试产品的哪些要素, 需要达到的质量目标, 需要使用的测试方法等. 而复杂的测试用例就像飞机维修人员使用的工作指令卡一样, 会指定输入的每项数据, 期待的结果及检验方法, 具体到界面元素的操作步骤, 指定测试的方法和工具等.

(1)测试用例写得过于复杂或详细, 会带来两个问题: 一个是效率问题, 另一个是维护成本问题. 另外, 测试用例设计得过于详细, 留给测试人员得思考空间就比较少, 容易限制测试人员思维.

(2)测试用例写得过于简单, 则可能失去了测试用例的意义. 过于简单的测试用例的设计其实并没有进行"设计", 只是把需要测试的功能模块记录下来而已, 它的作用仅仅是在测试过程中作为一个简单的测试计划, 提醒测试人员测试的主要功能包括哪些而已. 测试用例的设计本质应该是在设计过程中理解需求, 检验需求, 并把对软件系统的测试方法的思路记录下来, 以便指导将来的测试.

大多数测试团队编写的测试用例的粒度介于两者之间. 而如何把握好粒度是测试用例设计的关键, 也将影响测试用例设计的效率和效果应该根据项目的实际情况, 测试资源情况来决定设计出怎样粒度的测试用例.

主要考虑可以包含以下内容:

产品的质量要求.

项目对用例的要求.

测试时间和资源是否充分.

但不管用例怎么简化, 都不应该省略

 评价

测试用例设计出来了, 如何提高测试用例设计的质量? 就像软件产品需要通过各种手段来保证质量一样. 测试用例的质量保证也需要综合使用各种手段和方法. 评审分为正式和非正式评审.

同行评审

用户检查

项目组评审

(1)测试用例的检查可以有多种方式, 但是最敏捷的应当属于临时的同行评审. 同行评审, 应该演变为类似结对编程一样的方式. 从而体现敏捷的"个体和交互比过程和工具更有价值",  要强调测试用例设计者之间的思想碰撞, 通过讨论, 协作来完成测试用例的设计, 原因很简单, 测试用例的目的是尽可能全面地覆盖需求, 而测试人员总会存在某方面的思维缺陷, 一个人的思维总是存在局限性. 因此需要一起设计测试用例.

(2)除了同行评审, 还应该尽量引入用户参与到测试用例的设计中来, 让用户参与评审, 从而体现敏捷的"顾客的协作比合同谈判更有价值"这一原则. 这里顾客的含义比较广泛, 关键在于如何定义测试, 如果测试是对产品的批判, 则顾客应该指最终用户或顾客代表(在内部可以是市场人员或领域专家); 如果测试是被定义为对开发提供帮助和支持, 那么顾客就是指程序员了.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

956: 约瑟夫问题的实现

【学习版】 【C语言】 #include <iostream> #include <string> #include <algorithm> #include <cmath> #include <cstdlib> using namespace std; typedef struct Lnode {int date;struct Lnode* next; }Lnode, * Linklist; int In(Linklist&…

查看Git用户名/密码/邮箱,及设置git配置

一、查看信息&#xff1a; 查看用户名 &#xff1a;git config user.name 查看密码&#xff1a; git config user.password 查看邮箱&#xff1a;git config user.email 二、设置信息&#xff08;--global 全局设置&#xff09; git config --global user.name "xxxx名称…

如何开发创建自己的npm包并成功发布、维护至npm官方网站

npm&#xff0c;全称为Node Package Manager&#xff0c;是专为JavaScript生态系统设计的软件包管理系统&#xff0c;尤其与Node.js平台紧密关联。作为Node.js的默认包管理工具&#xff0c;npm为开发者提供了便捷的方式来安装、共享、分发和管理代码模块。 npm作为JavaScript世…

ROS 2边学边练(12)-- 创建一个工作空间

上一篇我们已经接触过工作空间的概念&#xff0c;并简单了解体验了一点构建包、测试包的流程&#xff0c;此篇会深入一点学习工作空间相关内容。 前言 一个工作空间是包含了ROS 2的功能包的目录&#xff08;文件夹&#xff09;&#xff0c;在使用ROS 2之前我们得激活一下目标工…

Codeforces CodeTON Round 8(Div.1 + Div.2) A~E

A. Farmer John’s Challenge (模拟) 题意&#xff1a; 构造一个长度为 n n n的数组&#xff0c;将这些数组围成一个圈&#xff08;顺时针&#xff09;从任意一个位置打开&#xff0c;有且仅有 k k k个非降序排列的数组。 分析&#xff1a; k 1 k1 k1时&#xff0c;升序输…

如何删除 iPhone 上的 iCloud 激活锁

Apple 在 iPhone 上通过不同的安全屏障来保护您的数据。 iCloud 激活锁可阻止外部人员访问您的手机。您可以通过打开“查找我的 iPhone”功能来激活此锁。 使用安全协议似乎是无害的&#xff0c;直到你到达门的另一边。如果您购买了带有激活锁的二手 iPhone 或忘记了 iCloud 凭…

如何在Bash中连接字符串变量

问题&#xff1a; 在 PHP 中&#xff0c;字符串按如下方式连接在一起&#xff1a; $foo "Hello"; $foo . " World";在这里&#xff0c;$foo 变成了 "Hello World"。 在 Bash 中如何实现这一点? 回答1&#xff1a; foo"Hello" fo…

「精细化管理」某物业集团精细化管理咨询项目纪实

实现工作例行化、定时化、程序化与可视化企业重视绩效考核&#xff0c;却总感觉考核不到点上&#xff1b;企业重视规划职责&#xff0c;却总感觉部门间职责不清&#xff1b;企业重视激励&#xff0c;却总感觉难以真正激励员工。到底是哪里出了问题&#xff1f;华恒智信指出&…

sky 06笔记中

1.进阶的hello verilog module hello_verilog ();parameter clk_cyc 10.0;//定义常量reg clk,rstn; reg [31:0] a;always #(clk_cyc/2.0) clk ~clk;initial begin$display("Hello Verilog.\n"); endinitial beginclk 0; rstn 0;(posedge clk); //等待时钟上升沿…

win11安装WSL UbuntuTLS

win11安装WSL WSL 简介WSL 1 VS WSL 2先决要求安装方法一键安装通过「控制面板」安装 WSL 基本命令Linux发行版安装Ubuntu初始化相关设置root用户密码网络工具安装安装1panel面板指导 WSl可视化工具问题总结WSL更新命令错误Ubuntu 启动初始化错误未解决问题 WSL 简介 Windows …

【QT+QGIS跨平台编译】056:【pdal_kazhdan+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal_kazhdan介绍二、pdal下载三、文件分析四、pro文件五、编译实践一、pdal_kazhdan介绍 pdal_kazhdan 是 PDAL(Point Data Abstraction Library)相关的 Kazhdan 算法的实现。PDAL 是一个用于处理和分析点云数据的开源库,而 Kazhdan 算法通常…

Java面试题:请解释Java中的策略模式?

Java中的策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。 策略模式的关键特点如下&#xff1a; 定义…

C语言 | Leetcode C语言题解之第9题回文数

题目&#xff1a; 题解&#xff1a; bool isPalindrome(int x) {if(x < 0)return false;long int sum0;long int nx;while(n!0){sumsum*10n%10;nn/10;}if(sumx)return true;elsereturn false; }

LLaMA-Factory微调(sft)ChatGLM3-6B保姆教程

LLaMA-Factory微调&#xff08;sft&#xff09;ChatGLM3-6B保姆教程 准备 1、下载 下载LLaMA-Factory下载ChatGLM3-6B下载ChatGLM3windows下载CUDA ToolKit 12.1 &#xff08;本人是在windows进行训练的&#xff0c;显卡GTX 1660 Ti&#xff09; CUDA安装完毕后&#xff0c…

前端路径问题总结

1.相对路径 不以/开头 以当前资源的所在路径为出发点去找目标资源 语法: ./表示当前资源的路径 ../表示当前资源的上一层路径 缺点:不同位置,相对路径写法不同2.绝对路径 以固定的路径作为出发点作为目标资源,和当前资源所在路径没关系 语法:以/开头,不同的项目中,固定的路径…

爬取高校专业信息的Python爬虫简介与实践

1. 介绍 在当前高校专业信息繁多的情况下&#xff0c;选择适合自己的专业成为了许多学生面临的挑战。为了帮助学生更好地了解各高校专业情况&#xff0c;我们开发了一个Python爬虫程序&#xff0c;用于爬取高校专业信息并保存到Excel文件中。本文将详细介绍该爬虫的实现过程以…

【Godot4自学手册】第三十四节来回无限滚动的伤害铁刺球

本节主要学习给地宫添加来回滚动的铁刺球&#xff0c;铁刺球共有两个方向&#xff0c;一个是左右方向&#xff1b;另一个是上下方向。如果主人公不小心碰到球&#xff0c;就会收到伤害。这是地宫的第一个机关。 一、新建场景并布局节点 把我们准备好的铁球图片素材拖入到文件…

基于单片机的测时仪系统设计

**单片机设计介绍&#xff0c;基于单片机的测时仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的测时仪系统设计是一个结合了单片机技术与测时技术的综合性项目。该设计的目标是创建一款精度高、稳定性强且…

空调系统风道计算方法介绍

一.风道水力计算方法 风道的水力计算是在系统和设备布置、风管材料、各送、回风点的位置和风量均已确定的基础上进行的。 风道水力计算方法比较多,如假定流速法、压损平均法、静压复得法等。对于低速送风系统大多采用假定流速法和压损平均法,而高速送风系统则采用静压复得法…

【数据结构】复杂度(长期维护)

本篇博客主要是浅谈数据结构概念及时间复杂度&#xff0c;并做长期的维护更新&#xff0c;有需要借鉴即可。 复杂度目录 一、初识数据结构1.基础概念2.如何学好数据结构 二、复杂度1.复杂度2.时间复杂度①有限数的时间复杂度②函数的时间复杂度③二分查找时间复杂度④递归拓展练…