测试人,你还在写用例吗?是什么在支撑着你写?

测试交付的过程,通常是伴随的是一个测试用例生命周期过程,通常有测试需求分析、测试用例设计、测试用例实现、测试用例执行,以及测试用例管理等几个阶段组成。

为什么要有测试用例?
首先测试用例这是测试岗位的基本交付物之一。开发人员的交付物是代码,是可运行的应用。这些都是可观察,实实在在的客观存在。而测试人员的交付物如果仅仅是一个所谓“经过测试”的应用,随产品发放的一个“QC”标志纸片,就不免让出钱雇佣你的人感到心里不踏实了。所以,在产品开发测试的过程中,测试团队或者测试人员不断产出和维护的测试用例,不断提升的用例执行比率,在测试报告中的这些数字或者图表,让测试管理者可以向更为高层的管理人员证明测试团队存在的价值,以及他们正在努力工作,为产品质量负责的表征。

测试用例的另外一个用处是作为一种信息的媒介,体现的是测试用例设计人员对于系统需求的理解,对于产品风险的一种理解。有了具体的测试用例,产品、开发、测试、运维人员在沟通时不再是空对空、而是可以具体到每一个测试用例,每一个检查点了。作为信息的媒介,也就可以作为个人和团队的资产留存下来了。正所谓好记性不如烂笔头,测试人员在遇到相类似的需求或者功能点改造时,这些旧的用例就能发挥作用,作为回归用例或者是稍加改造成为新的用例。亦或者当团队有新人来或者进行轮岗时,测试用例也可以作为一份新手上路的最佳参考地图。正所谓纸上学来终觉浅,对照着测试用例将系统安装部署,测试一遍,是很多团队训练新人的不二法门。

一定要有测试用例吗?
测试用例有这么多的好处,但是它一定是必须的吗? 尤其是在当下,随着团队交付速度的加快,团队都被要求“更加敏捷 Be More Agile”了,能够按时交付产品就已经烧高香了,还有时间按照“前置条件、测试步骤、预期结果”这样进行文本形式的测试用例编写吗?从产品风险和交付的角度来看,高效全面地发现缺陷才是快速交付、降低风险的根本,“探索式测试”不是更能高效率地发现缺陷吗?在做完测试分析之后,为什么不能直接进入探索系统、发现缺陷的过程,而要将宝贵的时间浪费在编写测试用例文本这种不直接产生交付价值的活动上呢?

更何况,测试用例处在测试设计和最终执行的脚本和数据之间。作为一项智力活动测产出,测试设计,通常是以一些表格或者是思维导图的形式呈现和表达设计的思路和意图。这一部分是非常适合进行评审的,类似开发人员的设计评审或者是Code Review, 而据此平铺开之后的测试用例,则经常因为数量庞大,导致“只见树木不见森林”,让团队迷失在用例森林之中,感觉到用例评审的时间付出与价值收获非常的不成比例。也就是所谓额,测试设计是可评审的,而测试用例是不可评审的。

另外一种说法则是,用例作为一种团队的资产,其主要的价值时被复用。而为了迎合市场的变化,产品和系统自身也在快速迭代。在这个过程中,很多团队进入了类似狗熊掰棒子,走一路丢一路的状态。因为需求很多时候是探索性的,系统的变化也很快,测试用例极少能得到复用,为测试活动配套编写和沉淀几乎以后再也不会使用的测试用例,好像成了一件极为不经济和理智的行动。就这样,历史上积攒下来的测试用例库很快就乏人问津,衰变腐化,成为了坏账和呆账,数量愈大,负担愈重。有些团队就干脆丢弃包袱,“轻装上阵”或者是推倒重来,将历史的用例库丢进了垃圾堆里。

颠覆者的思路
近些年,通过基于模型的测试(MBT)、线上引流、AI测试、众测和AB测试等方式,不少团队实现了所谓的测试用例自动生成、快速回归测试以及其他有别于传统测试方式的测试实践,走出了不同以往的新路。

文章的开头的一张图,是一张测试体系衰退的图,越底层的内容在项目交付压力和资源困局下越容易被丢弃掉。

问一下很应试的问题,如果给你的时间只够完成上述列表中的三件事情?你会选哪三样?

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

   视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。      

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

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

相关文章

第10章-特殊函数-贝塞尔函数

贝兹函数又称贝塞尔曲线,是计算机图形学中相当重要的参数曲线,在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。 贝塞尔函数由线段和节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,通过 控制曲线上的4个点&…

LeetCode 144. 94. 145. 二叉树的前序,中序,后续遍历(详解) ੭ ᐕ)੭*⁾⁾

经过前面的二叉树的学习,现在让我们实操来练练手~如果对二叉树还不熟悉的小伙伴可以看看我的这篇博客~数据结构——二叉树(先序、中序、后序及层次四种遍历(C语言版))超详细~ (✧∇✧) Q_Q-CSDN博客 144.二叉树的前序遍…

GitHub要求所有贡献代码的用户在2023年底前启用双因素认证

到2023年底,所有向github托管的存储库贡献代码的用户都必须启用一种或多种形式的2FA。 双重身份认证 所谓双重身份认证(Two-Factor Authentication),就是在账号密码以外还额外需要一种方式来确认用户身份。 GitHub正在大力推动双…

你知道程序员如何利用citywork实现财富自由吗?

周末到了,我要去citywalk寻找心灵的呼吸!”有谁没有设想过疲惫的工作日之后好好地去走一走,亲近大自然呢?谁又不想在闲暇之余唤起对生活的趣味呢?可是对于我们悲催的打工人而言,没有citywalk,只…

代码随想录训练营day2

一、有序数组的平方 1.1暴力解法 可以直接使用C当时自带的排序算法库函数进行计算&#xff0c;属于暴力解法&#xff0c;复杂度较高&#xff0c;那么有没有运行效率更高的算法思想呢&#xff1f; class Solution { public:vector<int> sortedSquares(vector<int&g…

1.5 面试经典150题 - 轮转数组

轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 注意&#xff1a;本题需要原地操作 class Solution(object):def rotate(self, nums, k):""":type nums: List[int]:type k: int:rtype: None Do not…

class_5:在c++中一个类包含另一个类的对象叫做组合

#include <iostream> using namespace std;class Wheel{ public://成员数据string brand; //品牌int year; //年限//真正的成员函数void printWheelInfo(); //声明成员函数 };void Wheel::printWheelInfo() {cout<<"我的轮胎品牌是&#xff1a;"<…

任务10:安装配置Java开发环境

任务描述 知识点&#xff1a; Java开发工具Maven配置 重 点&#xff1a; 安装配置Java开发工具 IDEA为IDEA配置自定义Maven&#xff08;国内源&#xff09; 内 容&#xff1a; 下载并配置JDK 1.8下载安装IDEA为IDEA配置自定义MavenWindows环境安装配置Hadoop 任务指导…

C++学习笔记(二十二)

一、函数对象 1. 函数对象概念 概念&#xff1a; 重载函数调用操作符的类&#xff0c;其对象常称为函数对象函数对象使用重载的 () 时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a; 函数对象(仿函数)是一个类&#xff0c;不是一个函数 2. 函数对…

Leetcode面试经典150题刷题记录 —— 二叉搜索树篇

Leetcod面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组 / 字符串篇Leetcod面试经典150题刷题记录 —— 双指针篇Leetcod面试经典150题刷题记录 —— 矩阵篇Leetcod面试经典150题刷题记录 —— 滑动窗口篇Leetcod面试经典150题刷题记录 —— 哈希表篇Leetcod面…

Python从入门到网络爬虫(正则表达详解)

Python 正则表达式 正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。 Python 自1.5版本起增加了re 模块&#xff0c;它提供 Perl 风格的正则表达式模式。 re 模块使 Python 语言拥有全部的正则表达式功能。 compile 函数根…

C#/.NET学习值得推荐的在线论坛和技术社区

前言 本文来源于知乎的一个提问&#xff0c;C#/.NET程序员学习有哪些值得推荐的在线论坛和技术社区&#xff1f;其实很早之前DotNetGuide就已经新增了C#/.NET/.NET Core充电站栏目&#xff0c;当然大家有更好的.NET相关学习站点和资源欢迎PR投稿&#x1f91e;。 GitHub - YSGS…

GO——cobra

定义 Cobra 是 Go 的 CLI 框架 CLI&#xff0c;command-line interface&#xff0c;命令行界面 使用 注意 第一个cmd的USE即使命名了也没有意义&#xff0c;一般保持和项目名一致。 示例 package mainimport ("fmt""github.com/spf13/cobra" )func …

C语言中对变量的理解

变量(variable)是程序中不可或缺的组成单位&#xff0c;是最基本的存储单元。 1.什么是变量&#xff1f; Ⅰ.概念&#xff1a; 内存中的一个存储区域&#xff0c;该区域的数据可以在同一类型范围内不断变化。 通过变量名&#xff0c;可以访问这块内存区域&#xff0c;获取里…

Nginx虚拟主机配置

目录 1.什么是虚拟主机&#xff1f; 2.准备工作(本机IP&#xff1a;10.12.153.222) 3.基于端口配置 4.基于IP配置 5.基于域名配置 1.什么是虚拟主机&#xff1f; 虚拟主机是一种特殊的软硬件技术&#xff0c;它可以将网络上的每一台计算机分成多个虚拟主机&#xff0c;每个…

Spring Boot3 系列:Spring Boot3 跨域配置 Cors

文章目录 什么是CORS&#xff1f;Spring Boot 如何配置CORS?前端代码注解配置全局配置过滤器配置 注意事项 什么是CORS&#xff1f; CORS&#xff0c;全称是“跨源资源共享”&#xff08;Cross-Origin Resource Sharing&#xff09;&#xff0c;是一种Web应用程序的安全机制&…

信息安全导论期末复习

信息安全导论 第二章 古典密码 凯撒密码 维吉尼亚密码 仿射加密 这是一种扩展的移位变换 示例&#xff1a; 仿射加密难点在于求逆元 近代密码 希尔密码 现代密码 数学基础 辗转相除法 用于求最大公因子&#xff0c;最大公因子的值就是所列式子中最后一个不为零的余…

6.3、SDN在云计算中的应用

目录 一、SDN概念 1.1、传统网络机制 1.2、SDN网络机制 1.3、二者区别 1.4、SDN架构 二、云数据中心 2.1、公有云环境特点 2.2、两大挑战 2.3、云数据中心引入SDN技术解决两大挑战 三、SDN云计算解决方案 3.1、SDN云计算解决方案之控制平面openflow协议 3.1.…

Java-基准测试

在软件开发中&#xff0c;性能优化是一个永恒的话题。为了确保代码在生产环境中运行得尽可能快&#xff0c;开发者需要一种准确的方法来度量和比较不同代码片段的性能。Java Microbenchmark Harness&#xff08;JMH&#xff09;是一个专门为Java和其他基于JVM的语言设计的工具&…

Leetcode面试经典150题刷题记录 —— 二叉树层次遍历篇

Leetcod面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组 / 字符串篇Leetcod面试经典150题刷题记录 —— 双指针篇Leetcod面试经典150题刷题记录 —— 矩阵篇Leetcod面试经典150题刷题记录 —— 滑动窗口篇Leetcod面试经典150题刷题记录 —— 哈希表篇Leetcod面…