软件测试之冒烟测试

一、什么是冒烟测试

这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,"冒烟测试"这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。

二、冒烟测试分类

冒烟测试的对象是每一个新编译的需要正式测试的软件版本。通过冒烟测试,在软件代码正式编译并交付测试之前,先尽量消除其表面的错误,减少后期测试的负担。冒烟测试的执行者是版本编译人员。因此可以说,冒烟测试是预测试。在实际的软件测试工作中,冒烟测试在软件研发的不同阶段有所不同。大体可以分为三类:

  • 形成集成测试版本以前:验证各个单元能够成功执行,并保证测试版本能够顺利集成;
  • 形成集成测试版本:以保证新的或者更改过的代码不破坏集成版本的完成性和稳定性;
  • 后期预测试缺陷的修正:针对每个缺陷所做的缺陷修正都要先在干净的链接环境中进行冒烟测试,测试通过后才能更新相关软件版本。

三、冒烟测试执行方式

冒烟测试可以手动执行,也可以自动化执行。

(1)稳定的系统适合自动化冒烟测试。

(2)集成过程中的系统适合手工冒烟测试,因为冒烟测试内容在动态变化,变化中的自动化脚本维护工作量比较大。

四、冒烟测试的意义

(1)冒烟测试是对软件质量的总体检验。

通过冒烟测试,能够快速确认软件是否具备测试准入条件,避免出现正式测试阶段全面开展后甚至到测试中后期才才发现阻塞型缺陷等严重影响测试进度浪费人力物力的情况。

(2)冒烟测试是测试人员对测试流程的熟悉。

通过冒烟测试,测试人员可以迅速熟悉测试总体流程,这一方面有助于测试人员准确制定测试时间计划,合理安排工作进度;另一方面也有助于测试人员提前做好相关设备、数据的准备,为正式测试的开展奠定基础。

五、冒烟测试注意事项

冒烟测试执行,与正式测试的区别在于二者侧重点不同,冒烟测试关注的是阻塞型缺陷,包括但不限于流程不通、主要功能未实现等,而正式测试则属于全面、细致的测试,需要尽可能的发现全部缺陷并按其严重性进行区分。冒烟测试过程中,需要注意的是:

(1)开发协同

冒烟测试阶段有几个特点,一是该阶段软件可能存在较多缺陷,特别是阻塞型缺陷,测试工作随时可能陷入停滞状态;二是该阶段测试人员对软件的流程、功能等熟悉程度较低,难免会出现找不到合适的测试方法甚至是找不到功能模块的情况从而延迟测试进度;三是该阶段的时间一般仅占整个软件生命周期的极小部分,这就需要开发人员实时响应,尽快解决各类问题。因此,在冒烟测试阶段,测试人员与开发人员的协同工作十分重要。

(2)注重效率

冒烟测试应以效率为先,尽量缩短测试时间提高测试效率。要在关注主流程、重点功能的前提下,抓关键缺陷验数据准备,对于诸如页面不美观、用户体验不佳等缺陷可在冒烟阶段有选择的予以过滤。例如:测试系统登录,关注点应针对用户名、密码、校验码的输入及提交完成,对于非法字符的校验、登录框是否美观、错误提示是否准确等均属于次要关注点,不纳入冒烟测试范围。

(3)评估用例

冒烟测试过程同时也是对测试用例进行评估的一个过程,要充分利用这一阶段,对前期形成的测试案例进行检验,及时对案例进行补充、删减和修订,使案例更贴合实际,更具有可执行。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
倔强的石头_3 分钟前
你的 Python 为什么“优雅地慢”?——读《极速Python:高性能编码、计算与数据分析》
python
程序猿 小项目大搞头11 分钟前
视频加水印,推荐使用运营大管家-视频批量加水印软件
python
索迪迈科技20 分钟前
java后端工程师进修ing(研一版‖day42)
java·开发语言·学习·算法
Adorable老犀牛32 分钟前
可遇不可求的自动化运维工具 | 2 | 实施阶段一:基础准备
运维·git·vscode·python·node.js·自动化
Chris.Yuan77041 分钟前
Java代理模式详解
java·开发语言·代理模式
Forever_Hopeful1 小时前
【C 语言生成指定范围随机数(整数 + 小数):原理、实现与避坑指南】
服务器·c语言·开发语言
午夜游鱼1 小时前
Go 泛型实战:一行代码封装 sync.Pool,性能与安全兼得
开发语言·安全·golang
xchenhao1 小时前
SciKit-Learn 全面分析 digits 手写数据集
python·机器学习·分类·数据集·scikit-learn·svm·手写
胡耀超1 小时前
7、Matplotlib、Seaborn、Plotly数据可视化与探索性分析(探索性数据分析(EDA)方法论)
python·信息可视化·plotly·数据挖掘·数据分析·matplotlib·seaborn
索迪迈科技2 小时前
STL库——map/set(类函数学习)
开发语言·c++·学习