什么是高性价比的测试,性价比高的软件测试类型有哪些?

news/2025/3/15 22:37:26/

有人说,软件测试是一个经济学问题。我们希望对软件进行最充分的测试,发现最多的潜在问题。然而测试的资源(人力/时间)是有限的,如何用有限资源获取最大利益,是我们要思考的问题。

软件测试的类型在100种以上。显然,并不是每一种软件测试活动都有同样的投入产出。那么,有哪些测试活动是有高投入产出比的呢?

1灰度测试

软件测试中有一个根深蒂固,普遍存在的问题。那就是在A环境中测试通过,但是在B环境中却失败了。例如,在测试环境中,反复测试都没有问题,信心满满。结果一到生产环境,就出现了故障,让人气愤。

软件是运行在特定环境中的。软件的实际行为与其所处的环境具有高度的依赖性。我们任何时候都不能忘记这一点。

软件运行的终极环境是生产环境。只有在生产环境测试通过,我们才能认为软件有问题的风险已经极低。如何在生产环境中做测试,而又最小化对用户的影响,这就是灰度测试的范畴了。

在灰度测试中,通常将待发布的软件部署在部分生产环境(即灰度环境)上,然后将测试流量或部分用户流量引入到灰度环境。如果没有问题,才逐步部署到全部生产环境。

灰度测试实现了在生产环境对软件的终极验证,是软件发布前的最后一道防线。

它的投入(环境配置/引流/自动化用例)等是一次性的,但是其产出是显著的(提前于用户发现问题),并且可以持续产出(每一次软件升级都受益)。

2冒烟测试

"修复1个老bug,引入10个新bug"。

"开发提供的版本,一会启动不起来,一会基本功能又有问题,计划中的特性测试根本没法开展"。

这些都是日常工作中的常见问题。它们极大地降低了工作效率,拖累了项目进度,埋下了质量隐患。

解决这些问题有一个办法,那就是给开发提交测试版本设置一道防线,这道防线就是冒烟测试。

如果说回归测试追求大而全,那么冒烟测试追求的是小而精。冒烟用例是自动化的。冒烟用例/测试环境/执行入口由测试提供,覆盖被测软件最基础的功能,例如部署,启动,登陆,核心业务流程等。

冒烟测试通过了,可以说明开发的代码改动没有很大的问题,软件也有了基本的质量,后续的测试阶段也就可以更顺利地开展。

冒烟测试作为开发提测的一道防线,可以减少浪费,提高效率。冒烟测试的用例比较少,因此开发和维护成本不高。主要的成本是冒烟用例失败的定位分析成本,这是一件持续的事情。

3单元测试

所有的软件问题,归根结底是编码(Coding)问题。

在编码阶段发现问题,不会对任何人有影响,并且随手就可以把问题解决掉,这是成本最低,效率最高的。

如何在编码阶段尽可能多的发现问题呢?我们可以依靠肉眼自查、依靠IDE的告警、依靠各种静态检查工具、依靠结对编程、依靠......。

所有这些办法有一个共同点,那就是不会执行代码。然而,“纸上得来终觉浅,绝知此事要躬行”。

单元测试,与上述办法的根本区别在于,它是会一行一行执行代码的。只有让代码跑起来,才能发现一些表面之下深层次的问题。

单元测试带来的收益,还有更多,例如:更好的模块设计,更放心的代码重构等。当然,单元测试的成本也是不低的,需要编写测试代码,并且有持续的维护成本。

要不要做单元测试,历来都有“支持派”和“反对派”,双方各执一词。我本人是坚定的单元测试“支持派”。

不为别的原因,就为了单元测试是开发提交代码的最后一道防线。单元测试做好了,后面的阶段,后面的人,痛苦也少许多。


http://www.ppmy.cn/news/1106368.html

相关文章

嵌入式Linux驱动开发(同步与互斥专题)(一)

一、内联汇编 1.1、语法 内联汇编实现加法 1.2、同步互斥失败的例子 进程A在读出valid时发现它是1,减1后为0,这时if不成立;但是修改后的值尚未写回内存;假设这时被程序B抢占,程序B读出valid仍为1,减1后为…

源代码防泄密和工控安全方案简介

客户情况 某新能源电池企业专业从事于新能源锂离子动力电池和储能电池的研发、生产和销售,具备电芯、模组、BMS及Pack的完整资源开发能力。公司致力于通过持续不断地改进电池技术,为全球锂离子动力和储能领域提供数字化精准高效的新能源解决方案。 该企…

Windows排查恶意程序及一些工具

目录 基础排查 使用系统配置实用程序 检查启动项 检查注册表 工具 网络监控 系统监控 安全检测 文件活动监控 其他 基础排查 使用系统配置实用程序 按下Win R键组合打开运行对话框,然后输入"msconfig"并按Enter键。在"服务"选项卡…

geopandas笔记:汇总连接两个区域的边

比如这样的两个区域,我们想知道从蓝到绿、从绿到蓝都有哪些边 1 读取openstreetmap import osmnx as ox import geopandas as gpdGox.graph_from_place(Singapore,simplifyTrue,network_typedrive)ox.plot_graph(G) 2 得到对应的边的信息 nodes,edgesox.graph_to_…

Camunda 7.x 系列【55】运行时指标

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 数据表3. 内置指标4. 配置4.1 指标记录器4.2 记录方标识符4.3 禁用记录器5. 查询…

【OAuth漏洞】第三方身份验证-账号接管

目录 什么是OAuth? OAuth 如何用于身份验证? 在 Booking.com 实施 OAuth 为什么 Booking.com OAuth 在 Booking.com 中的工作原理 Booking.com 帐户接管 安全漏洞 1 - 不允许唯一路径 安全漏洞 2 - 开放重定向 安全漏洞 1 2 帐户接管尝试 更…

使用LlamaIndex构建自己的PandasAI

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 Pandas AI 是一个 Python 库,它利用生成 AI 的强大功能来增强流行的数据分析库 Pandas。只需一个简单的提示,Pandas AI 就可以让你执行复杂的数据清理、分析和可视化,而这以前需要很…

管易云与金蝶云星空对接集成仓库查询打通仓库新增

管易云与金蝶云星空对接集成仓库查询打通仓库新增 接通系统:管易云 管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌,先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站建设等产品和服务,涵盖电商业务全流程。 对接目…