| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 什么是高性价比的测试,性价比高的软件测试类型有哪些? -> 正文阅读 |
|
[开发测试]什么是高性价比的测试,性价比高的软件测试类型有哪些? |
有人说,软件测试是一个经济学问题。我们希望对软件进行最充分的测试,发现最多的潜在问题。然而测试的资源(人力/时间)是有限的,如何用有限资源获取最大利益,是我们要思考的问题。 软件测试的类型在100种以上。显然,并不是每一种软件测试活动都有同样的投入产出。那么,有哪些测试活动是有高投入产出比的呢? 1灰度测试 软件测试中有一个根深蒂固,普遍存在的问题。那就是在A环境中测试通过,但是在B环境中却失败了。例如,在测试环境中,反复测试都没有问题,信心满满。结果一到生产环境,就出现了故障,让人气愤。 软件是运行在特定环境中的。软件的实际行为与其所处的环境具有高度的依赖性。我们任何时候都不能忘记这一点。 软件运行的终极环境是生产环境。只有在生产环境测试通过,我们才能认为软件有问题的风险已经极低。如何在生产环境中做测试,而又最小化对用户的影响,这就是灰度测试的范畴了。 在灰度测试中,通常将待发布的软件部署在部分生产环境(即灰度环境)上,然后将测试流量或部分用户流量引入到灰度环境。如果没有问题,才逐步部署到全部生产环境。 灰度测试实现了在生产环境对软件的终极验证,是软件发布前的最后一道防线。 它的投入(环境配置/引流/自动化用例)等是一次性的,但是其产出是显著的(提前于用户发现问题),并且可以持续产出(每一次软件升级都受益)。 2冒烟测试 “修复1个老bug,引入10个新bug”。 “开发提供的版本,一会启动不起来,一会基本功能又有问题,计划中的特性测试根本没法开展”。 这些都是日常工作中的常见问题。它们极大地降低了工作效率,拖累了项目进度,埋下了质量隐患。 解决这些问题有一个办法,那就是给开发提交测试版本设置一道防线,这道防线就是冒烟测试。 如果说回归测试追求大而全,那么冒烟测试追求的是小而精。冒烟用例是自动化的。冒烟用例/测试环境/执行入口由测试提供,覆盖被测软件最基础的功能,例如部署,启动,登陆,核心业务流程等。 冒烟测试通过了,可以说明开发的代码改动没有很大的问题,软件也有了基本的质量,后续的测试阶段也就可以更顺利地开展。 冒烟测试作为开发提测的一道防线,可以减少浪费,提高效率。冒烟测试的用例比较少,因此开发和维护成本不高。主要的成本是冒烟用例失败的定位分析成本,这是一件持续的事情。 3单元测试 所有的软件问题,归根结底是编码(Coding)问题。 在编码阶段发现问题,不会对任何人有影响,并且随手就可以把问题解决掉,这是成本最低,效率最高的。 如何在编码阶段尽可能多的发现问题呢?我们可以依靠肉眼自查、依靠IDE的告警、依靠各种静态检查工具、依靠结对编程、依靠…。 所有这些办法有一个共同点,那就是不会执行代码。然而,“纸上得来终觉浅,绝知此事要躬行”。 单元测试,与上述办法的根本区别在于,它是会一行一行执行代码的。只有让代码跑起来,才能发现一些表面之下深层次的问题。 单元测试带来的收益,还有更多,例如:更好的模块设计,更放心的代码重构等。当然,单元测试的成本也是不低的,需要编写测试代码,并且有持续的维护成本。 要不要做单元测试,历来都有“支持派”和“反对派”,双方各执一词。我本人是坚定的单元测试“支持派”。 不为别的原因,就为了单元测试是开发提交代码的最后一道防线。单元测试做好了,后面的阶段,后面的人,痛苦也少许多。 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 2:45:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |