一、定义
确认新版本的软件是否能够正常启动、可以运行基本的功能的测试
冒烟测试(Smoke Testing)通常会执行一组基本的测试用例,这些测试用例覆盖了应用程序的核心功能和主要功能点,通常是通过手动测试实现的。
二、怎么测
1、我的做法是,当开发提测后,我会把本次提测中主流程的功能提取出来,先只进行正向测试。如果测试通过,继续深入的系统测试等;如果测试不通过,打回开发,等到他们修复好后再测试或者把我们设计的冒烟测试用例交给开发去执行,开发测试通过交给测试,我们再走一遍即可。
三、冒烟测试用例应该包含的内容
1.业务流的测试:保证正常业务链路的通畅。
2.工作流的测试:主要是测试流程流转是否正常,至于流程步骤的表单内容是否正确则不关注。
3.关键功能的测试:至少要保证系统运转所需的启动数据以及一些开关控制正常。
4.重要基本功能的测试:比如对核心业务有影响的一些增删改等。
四、冒烟测试分类
冒烟测试的对象是每一个新编译的需要正式测试的软件版本。通过冒烟测试,在软件代码正式编译并交付测试之前,先尽量消除其表面的错误,减少后期测试的负担。冒烟测试的执行者是版本编译人员。因此可以说,冒烟测试是预测试。在实际的软件测试工作中,冒烟测试在软件研发的不同阶段有所不同。大体可以分为三类:
- 形成集成测试版本以前:验证各个单元能够成功执行,并保证测试版本能够顺利集成;
- 形成集成测试版本:以保证新的或者更改过的代码不破坏集成版本的完成性和稳定性;
- 后期预测试缺陷的修正:针对每个缺陷所做的缺陷修正都要先在干净的链接环境中进行冒烟测试,测试通过后才能更新相关软件版本。
五、冒烟测试注意点
冒烟测试执行,与正式测试的区别在于二者侧重点不同,冒烟测试关注的是阻塞型缺陷,包括但不限于流程不通、主要功能未实现等,而正式测试则属于全面、细致的测试,需要尽可能的发现全部缺陷并按其严重性进行区分。冒烟测试过程中,需要注意的是:
(1)开发协同
冒烟测试阶段有几个特点,一是该阶段软件可能存在较多缺陷,特别是阻塞型缺陷,测试工作随时可能陷入停滞状态;二是该阶段测试人员对软件的流程、功能等熟悉程度较低,难免会出现找不到合适的测试方法甚至是找不到功能模块的情况从而延迟测试进度;三是该阶段的时间一般仅占整个软件生命周期的极小部分,这就需要开发人员实时响应,尽快解决各类问题。因此,在冒烟测试阶段,测试人员与开发人员的协同工作十分重要。
(2)注重效率
冒烟测试应以效率为先,尽量缩短测试时间提高测试效率。要在关注主流程、重点功能的前提下,抓关键缺陷验数据准备,对于诸如页面不美观、用户体验不佳等缺陷可在冒烟阶段有选择的予以过滤。例如:测试系统登录,关注点应针对用户名、密码、校验码的输入及提交完成,对于非法字符的校验、登录框是否美观、错误提示是否准确等均属于次要关注点,不纳入冒烟测试范围。
(3)评估用例
冒烟测试过程同时也是对测试用例进行评估的一个过程,要充分利用这一阶段,对前期形成的测试案例进行检验,及时对案例进行补充、删减和修订,使案例更贴合实际,更具有可执行。
六、 冒烟测试执行方式
冒烟测试可以手动执行,也可以自动化执行。
- 稳定的系统适合自动化冒烟测试。
- 集成过程中的系统适合手工冒烟测试,因为冒烟测试内容在动态变化,变化中的自动化脚本维护工作量比较大。