不同规模的测试团队分别适合哪些测试用例管理工具?测试用例管理工具选型指南
随着软件系统规模的持续增大,业务复杂度的持续增加,软件测试的复杂度也随之越来越大。软件测试工作的复杂性主要体现在测试用例的编写、维护、执行和管理方面。而创建易于阅读、维护和管理的测试用例能够显著减轻测试工作的复杂性。
本篇文章将较为系统的探讨测试用例的几种管理策略,包括各种方法的特性、适用团队规模、场景以及实际示例。希望这些信息可以协助各种项目和团队,依据自身需求挑选合适的测试用例编写和管理方式,从而减少测试工作的难度,提升测试流程的效率。
一、测试用例的编写与管理策略
在软件测试工作中,测试用例是其最为重要的基础。
一个良好的测试用例可以帮助测试人员更容易阅读,理解,修改并管理它,从而提高测试工作的质量和效率。
要编写一个好的测试用例,首先需要对业务需求和验收条件(AC)进行深入的分析,并确定业务需求和验收条件的正确性和合理性。然后对其进行测试分析,并完成整体测试用例的设计和编写,其中包括功能测试用例,E2E测试用例,异常测试用例等等。对于设计好的测试用例需要进行分类并管理,然后根据不同的分类进行分层测试。
通常情况下可以将测试分为端到端测试(E2E Testing),功能测试(Functional Testing),集成测试(Integration Testing),单元测试(Unit Testing)等。根据这个分类方法,可以方便进行测试分层管理,就是某些测试用例放在端到端测试类型里面,而有些测试用例则放到集成测试类型里面。而根据测试用途还可以将某些类型的测试分类成回归测试(Regression Testing),验收测试(Acceptance Testing), 健全测试(Sanity Testing)以及冒烟测试(Smoke Testing)等。
由于一个测试用例可能既属于回归测试,又属于冒烟测试,所以这种情况下就需要一个良好的测试管理系统或者管理方法来对大量的分类后的测试用例进行管理。
编写和管理测试用例是测试用例工作中工作量最大,最为繁琐的部分。其质量的高低直接影响到测试工作是不是能高效和顺利的进行和完成。
所以结合产品的类型和团队的情况,选择适合自己团队的用例编写和管理方式,从而事半功倍。
二、四种典型的测试用例的管理方案及对应工具
测试用例需要具有以下特性:易阅读,易维护,易执行,易管理。
而难点也比较突出,其中包括语言的歧义性和多样性导致的不易阅读和理解;手动测试和自动化测试用例很难统一管理和统一执行。当测试数量很大的时候,如果测试用例管理系统不易用,测试用例的复用性也不高,则会导致测试用例不易维护,从而会极大的增加了其管理成本。
测试用例管理是一项繁琐的工作,现在业界存在四种经典方法,分别是文件管理,系统管理,代码活文档和系统活文档。与编写用例一样,没有一种用例管理方法是银弹,适合所有不同的团队和不同的项目。
所以了解它们的特点,再根据自己团队和项目的实际情况,选择适合的才是最佳实践。
方案一:使用如Excel,在线文档,Mindmap等工具管理
Excel 是中小型项目或者小型创业公司中比较常见的测试用例管理方法。其优势是简单易用,使用、购买成本极低,而劣势是需要自己对测试用例模版进行定制,并且当测试用例过多的时候管理成本会急剧增加。其次对于本地文件模式,则很难让多人进行协作编写(飞书文档、Google Sheets等这种在线文档没有这个问题)。
下面是一个Excel实例。Excel管理实例图:
而飞书文档(钉钉文档之类也一样)等这种在线文档则在Excel、Word的基础上有了一些升级,比如:会内置一些通用模板,也可以自己定制模板;允许团队成员随时随地访问和编辑测试用例;具备版本管理,可以追踪文档的修改历史,方便回溯和审查;能够便捷的发送给其他人,提升了沟通效率等......因此适用的团队规模也相对的扩大了一些。
而劣势则是:因为在线文档工具主要是为了文档协作和管理设计的,所以会缺乏针对测试管理的一些专业能力,当然这些只有团队扩大,或者追求专业才可能具备需求,如:测试执行跟踪、缺陷管理、测试报告生成等;以及一些复杂的测试场景会需要与自动化测试工具、持续集成工具等进行集成,而在线文档工具无法提供这样的集成支持,从而限制了其在复杂测试环境中的应用。除此以外,还有权限管理不够细,无法定制工作流程、不支持大规模并发操作,可扩展性有限等。
当然这些劣势上升为主要矛盾的前提是团队规模扩大,或者开始追求合规性、专业性的测试管理。以下是飞书文档的示例:
方法二:使用PingCode,TestLink等系统管理
这类工具一般是中大型项目中最为常用的管理方法,判断的最直接方法就是看看自己是否正在遭遇前面提到的那些劣势。
这类专业的管理系统的优势是:比如说PingCode这款工具,它提供了强大的管理和协作功能,比如:协作编写用例,协作执行用例,测试步骤管理,用例关联用户故事与缺陷、缺陷管理、用例基线、用例版本管理,测试迭代管理以及丰富的测试用例和测试结果报表等。
PingCode 这类专业工具带来的还有一个好处是,你可以单独使用测试管理模块,也可以使用完整的产品。如果是全产品的角度,你能够做到从需求收集、规划、开发、编码、构建、测试、发布的研发全生命周期管理,甚至是与自研工具、github、Jenkins等编码构建工具、自动化测试工具、钉钉飞书等集成打通,实现产研关键流程工具全链路闭环和关键数据的自动流转。(详细测试管理功能查看)
也正是因为专业性,这类工具对比Excel、在线文档而言才会有一定的学习曲线。以下是一些示意图:
PingCode 用例管理实例图1:
PingCode 用例管理实例图2:
PingCode测试报告部分实例图3:
方法三:使用Cucumber,RF,SVN和GIT等代码活文档、自动化测试框架和代码版本工具
这种方法特别适合具备充足软件技术工程实践经验的团队和个人。因为要高效地编写、维护、执行和管理测试用例、测试日志和测试结果,需要使用到代码版本管理工具、集成开发环境(IDE)、自动化测试框架、持续流水线等工具和实践。
本方法的优点在于能够同时管理自动化测试用例和手动测试用例,更便于追踪测试用例和测试数据的变更。然而,其劣势在于需要测试工程师具备足够的工程技术能力来实施。
下图展示了使用Cucumber编写的一个示例截图。左侧是集成开发环境中测试用例的管理文件,每个Feature文件代表一套测试用例。右侧则是通过Jenkins生成的测试用例活文档(Test Case Living Document),通过它可以统一展示手动测试用例和自动化测试用例的测试结果。
这样的方法将测试用例的编写、管理和展示整合在一起,为测试团队提供了一个高效、灵活的工作方式。
Cucumber测试用例管理和活文档示例图:
方法四:使用系统活文档
使用系统活文档是一种将代码活文档与系统管理相结合的方法。通过测试管理系统,可以编写和管理测试用例,进而自动生成代码模式的测试用例。此外,也可以直接编写代码模式的测试用例,然后自动同步到测试管理文档中。在持续集成流水线中执行自动化测试,并通过流水线展示,同时同步到测试管理系统中。
当手动测试人员完成手动测试后,他们可以通过测试管理系统或在测试代码中记录测试结果,并最终汇总到测试管理系统中进行统一展示。这样的方法实现了让不同人员能够共同协作分析、设计、管理和执行测试用例的工作。
这一过程不仅提高了测试用例的编写和管理效率,还增强了团队间的协作和沟通,使得整个测试流程更加流畅和高效。
下面是本方法的架构设计图。
系统活文档架构图1:
系统活文档架构图2:
测试用例是测试工作的根本,不管是手动测试还是自动化测试的成功,都十分依赖于测试用例的质量。但是只有充分的做好测试分析,设计,编写和管理才能产出一套合格甚至优秀的测试用例套件。从而保证测试工作可以高效正确的进行,为产出高质量软件保驾护航。
常见问答(FAQ):
问:为什么需要测试用例管理工具?
答:随着软件项目的复杂性增加,手动管理测试用例变得既耗时又容易出错。测试用例管理工具可以提高测试的效率和质量,促进团队协作,使整个软件开发流程更加顺畅。
问:如何根据企业的规模和需求选择合适的测试用例管理工具?
答:选择合适的工具需要综合考虑企业的规模、团队的需求、预算、安全性、可扩展性等因素。小型企业可能更关注价格和易用性,而大型企业可能需要更全面的功能和高级的安全控制。
问:测试用例管理工具的选型有哪些常见风险,如何避免?
答:常见风险包括选择过于复杂或过于简单的工具、忽视培训和支持、未充分考虑成本等。避免这些风险的方法包括充分了解自身需求,与团队成员充分沟通,合理评估预算,并考虑长期的维护和支持等。
问:实施测试用例管理工具后,如何确保团队能有效使用?
答:确保团队能有效使用所选工具需要提供适当的培训和支持,制定清晰的使用指导和流程,并持续监控工具的使用情况,及时调整和优化。与团队成员保持沟通,了解他们的反馈和需求,也是非常重要的一环。
本文部分内容整理自《测试用例的管理》,2020年发表于《测试技术与质量管理》
相关文章:

不同规模的测试团队分别适合哪些测试用例管理工具?测试用例管理工具选型指南
随着软件系统规模的持续增大,业务复杂度的持续增加,软件测试的复杂度也随之越来越大。软件测试工作的复杂性主要体现在测试用例的编写、维护、执行和管理方面。而创建易于阅读、维护和管理的测试用例能够显著减轻测试工作的复杂性。 本篇文章将较为系统的…...
服务器遭受攻击,CPU升高,流量升高,你一般如何处理
服务器遭受攻击,CPU升高,流量升高,你一般如何处理? 在什么情况下服务器遭受攻击,会导致CPU升高,流量升高 1.DDoS(分布式拒绝服务攻击):这是一种常见的网络攻击方式&…...
GPT生产实践之定制化翻译
GPT生产实践之定制化翻译 GPT除了能用来聊天以外,其实功能非常强大,但是我们如何把它运用到生产实践中去,为公司带来价值呢?下面一个使用案例–使用gpt做专业领域定制化翻译 思路: 定制化:有些公司词条的…...

SpringMVC入门笔记
一、SpringMVC简介 1. 什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean࿱…...

如何构建多域名HTTPS代理服务器转发
在当今互联网时代,安全可靠的网络访问是至关重要的。本文将介绍如何使用SNI Routing技术来构建多域名HTTPS代理服务器转发,轻松实现多域名的安全访问和数据传输。 SNI代表"Server Name Indication",是TLS协议的扩展,用于…...

【Java 高阶】一文精通 Spring MVC - 数据验证(七)
👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…...
木叶飞舞之【机器人ROS2】篇章_第一节、ROS2 humble及cartorgrapher安装
ROS2的humble安装 1、系统配置ubuntu 22.04 假如长期使用ros2,建议是ubuntu系统或者双系统下安装操作,不要在虚拟机中进行。ubuntu系统能用最新的大系统就用最新的,比如22.04。等明年24.04出来可以用24.04 2、humble安装 ros版本选择humb…...
Git版本管理(02)patch操作和分支操作整理
1 git patch操作 1.1 git diff比较 使用git diff用于显示当前工作区与暂存区或提交历史之间的差异,如果使用它生成patch,则需要使用git apply命令来引入patch 1.2 git patch打包 使用git format-patch生成patch # 打包最近的一个patch: $git format…...

前端需要理解的HTML知识
HTML(超文本标记语言,HyperText Markup Language)不是编程语言,而是定义了网页内容的含义和结构的标记语言。。“超文本”(hypertext)是指连接单个网站内或多个网站间的网页的链接。HTML 使用“标记”&…...
机器学习笔记 - 数据科学中基于 Scikit-Learn、Tensorflow、Pandas 和 Scipy的7种最常用的特征工程技术
一、概述 特征工程描述了制定相关特征的过程,这些特征尽可能准确地描述底层数据科学问题,并使算法能够理解和学习模式。换句话说:您提供的特征可作为将您自己对世界的理解和知识传达给模型的一种方式。 每个特征描述一种信息“片段”。这些部分的总和允许算法得出有关目标变…...

深眸科技创新赋能视觉应用产品,以AI+机器视觉解决行业应用难题
随着工业4.0时代的加速到来,我国工业领域对于机器视觉技术引导的工业自动化和智能化需求持续上涨,国内机器视觉行业进入快速发展黄金期,但需求广泛出现同时也对机器视觉产品的检测能力提出了更高的要求。 传统机器视觉由人工分析图像特征&am…...

2023年国赛 高教社杯数学建模思路 - 案例:异常检测
文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…...
【Electron】使用electron-builder打包时下载electron失败或慢的解决方案
问题描述 electron-builder打包时报错信息如下: Building app with electron-builder:• electron-builder version22.14.5 os10.0.19042• description is missed in the package.json appPackageFileE:\h-world\hscmweb-diagrams\dist_electron\bundled\packa…...

stm32之16.外设定时器——TIM3
----------- 源码 void tim3_init(void) {NVIC_InitTypeDef NVIC_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//使能TIM3的硬件时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//配置TIM3的定时时间TIM_TimeBaseStructure.TIM_Period 10000-1…...
vue3自定义指令防止表单重复提交
可以设置在某个事件段内不允许重复提交;或者点击提交后设置提交flag,flag为true则不能再次提交 <template><div><h1>防止表单重复提交</h1><button click"submitForm" v-throttle>提交</button></di…...

无涯教程-Perl - wait函数
描述 该函数等待子进程终止,返回已故进程的进程ID。进程的退出状态包含在$?中。 语法 以下是此函数的简单语法- wait返回值 如果没有子进程,则此函数返回-1,否则将显示已故进程的进程ID Perl 中的 wait函数 - 无涯教程网无涯教程网提供描述该函数等待子进程终止,返回已故…...

DFMA是一种设计思想与方法论
DFMA(Design for Manufacturing and Assembly)是指在产品设计阶段,充分考虑来自于产品制造和装配的要求,使得机械工程师设计的产品具有很好的可制造性和可装配性,从根本上避免在产品开发后期出现的制造和装配质量问题。…...

黑客自学路线
谈起黑客,可能各位都会想到:盗号,其实不尽然;黑客是一群喜爱研究技术的群体,在黑客圈中,一般分为三大圈:娱乐圈 技术圈 职业圈。 娱乐圈:主要是初中生和高中生较多,玩网恋…...

怎么维护自己的电脑
文章目录 我的电脑日常维护措施维护技巧键盘&屏幕清洁清理磁盘空间控制温度 电脑换电池 无论是学习还是工作,电脑都是IT人必不可少的重要武器,一台好电脑除了自身配置要经得起考验,后期主人对它的维护也是决定它寿命的重要因素࿰…...

ansible(2)-- ansible常用模块
部署ansible:ansible(1)-- 部署ansible连接被控端_luo_guibin的博客-CSDN博客 目录 一、ansible常用模块 1.1 ping 1.2 command 1.3 raw 1.4 shell 1.5 script 1.6 copy 1.7 template 1.8 yum 11.0.1.13 主控端(ansible)11.0.1.12 被控端(k8s…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...