冒烟测试,刚进公司就接触到了。只是刚开始一直没有体会到冒烟的含义和精髓,一直以为是冒烟测试就是把待测产品的主要功能测试一下就行了。后面回想一下,不是那么回事的。
冒烟测试源自硬件行业,对一个硬件或者硬件组件改动后,直接给设备加电,看看设备会不会冒烟,没冒烟,就表示待测组件是通过了测试。
在软件开发过程中,一直有高内聚,低耦合这样的说法,各个功能模块之间的耦合还是存在的,因此一个功能的改动,还是会影响到其他功能模块。
因此在开发人员修复了先前测试中发现的bug后,想知道这个bug的修复是否会影响到其他功能模块,需要做的就是冒烟测试。
搞清楚冒烟测试的起源,冒烟测试的目的后,不难想到,冒烟测试是这样的一种测试,不要求覆盖面有多广,但至少要保证覆盖待测产品的绝大部分功能;不要求每个功能都测的很详细,但至少要保证被修复了的bug所属的功能和系统其他骨干功能都是可用的(即这个版本能拿去做系统功能测试了)。
而要做到覆盖骨干功能和bug所属功能,却不是简简单单在页面中点几下就行了的。任何一个项目或者产品,骨干功能都有它的使用场景。冒烟测试就是要保证这些骨干功能的使用场景都能跑通,如果没跑通,后续的系统测试就没必要了。
其实做冒烟测试之前,都已经做了一个简单的安装部署测试了(你不安装部署,哪里来东西测呢)。按我自己的理解,其实这块也可以放入冒烟测试范畴的。想想看,安装部署是不是很类似电路板加电,让电路板开始工作呢?而后面的骨干使用场景测试,只是在这个基础上做的后续工作。如果安装部署后,待测产品跑到一半就down掉了,后面的骨干功能的使用场景还测个屁呀。
使用场景的是否能跑通的测试,不需要测一些异常的情况,保证基本功能覆盖到就行了。通常,冒烟测试是交给开发人员去做的。只有确认了功能可用后,交给测试人员去做才有意义。刚开始进公司时,小组里面有个人不做冒烟,只把他修改了的部分简单测了下,就交给我这边去测试。结果就是我测试到一半,发现有个很重要的功能用不了。这个时候,测试只要中止了。时间久了,大家对产品质量和测试工作有了一定认识(最主要是大家不急急忙忙地加班了,^__^),对我也有了一定的认可,因此做事也越来越正规了。现在我们小组的做法是,小组里面每个人扮演产品使用场景中的一个角色,然后大家一齐分工去完成每个场景里面各自角色要完成的任务,在这个过程中,观察待测项目是否正常。
后面需要冒烟上的优化做些什么呢,我想更多的还是从自动化上去着手,版本构建自动化,自动化冒烟测试等等。