漫谈自动化测试(二)——适用场景

曾经记得刚毕业不久,以为软件自动化测试无所不能,无论什么测试都想把它实现为自动化测试。从微软过来的测试经理曾跟我说,自动化测试是一种手段,真正能发现缺陷(Bug)的是手工测试,当时我很不理解。随着经验的积累,越来越体会到当时他给我说的那番理论,自动化测试也是有它的局限性的。可悲的是,我所经历的不少团队领导一般都走向两种极端,要不把自动化测试视为万能钥匙,要不把自动化测试贬得一文不值。凡事都有利弊,这句真理亘古不变!在进行自动化测试之前,我们需要知道它的利弊。

自动化测试的先决条件

不少投入自动化测试的团队,都对自动化测试能否带来所期望的的价值产生怀疑,大家可以参考《如何让软件测试人员发挥最大价值》这篇博文对软件测试人员的价值发挥的分析。本文将详细讲解,满足哪些条件才适合做自动化测试,公司的哪些产品需要引入自动化测试,才能够最大限度地发挥自动化测试带来的效益。如果项目满足以下一种或多种条件,就可以考虑引入自动化测试了。

产品需求变更较少

产品的开发也忌讳频繁的需求变更,自动化测试也是如此。自动化测试本身也是一种软件开发过程(需求分析,代码编写,测试等),良好的架构设计能够降低变更带来的风险,但风险不可避免,额外的工作也不可避免。如果产品需求比较明确,各方面都能够按部就班的时候,就可以考虑把自动化测试提上议程了。

.项目开发周期较长

项目的开发周期较长,软件产品的生命周期也较长,投入自动化测试就能够带来更多价值。自动化测试的前期投入是很大的,特别是对于自动化测试从零构建的团队而言,它的周期甚至超过被测产品本身的开发周期。所以对于开发周期较短但软件生命周期长,或者软件开发周期和软件生命周期都长,就可以考虑投入自动化测试。对于这种情形,不要吝啬资源,否则随着测试用例的增加,频繁的回归测试,后续会更加被动。若软件生命周期较短,就要慎重分析了。投入的自动化测试,能够在将来的产品或其他部门的产品中使用?需要从现状和长远利益,统筹规划,不能草率下决定。

测试用例执行频繁

测试用例数量庞大,执行时间漫长,执行频率高,都是需要考虑引入自动化测试的特征。这些问题,可能在软件的开发初期,不是很明显,所以需要决策者要有远见,预测将来随着时间的推移,测试用例的数量、执行时间、执行重复度等是否会增大,自动化测试投入产出比是否值得。

手工测试无法胜任

如果需要做高并发操作,持续收集设备资源(CPU、内存、磁盘IO、网络带宽等),长时间稳定性测试(7x24小时),多用户操作等手工操作或测试无法胜任的工作,就需要利用自动化测试工具来完成这些任务了。对于存在大量的回归测试工作,也应该尽量考虑实现自动化测试,以减少手工测试人员的劳动强度,提高工作效率。

人物财力资源充足

自动化测试,特别是需要从头开始做起(自主设计框架、自主研发测试工具等),更是需要耗费大量的人力、物力和财力。一般公司都会选择开源测试框架和测试工具,以降低开发成本(后续系列文章会讲解工具选型原则)。但是,对于自动化测试的二次开发和维护,测试脚本的编写和维护,测试用例的管理,独立的自动化测试环境(后续系列文章会讲解测试环境)等,都需要投入客观的资源。若公司资源有限(没有自动化测试开发人员,没有一套独立的自动化测试环境,没有充裕的自动化部署时间等),自动化测试想要取得预期的效果,那简直是痴人说梦。


适合自动化的测试类型

不是所有的测试类型都适合做自动化测试,例如用户体验测试(QoS),本身就比较主观,很难用自动化测试(机器是很客观的)来验证布局是否美观,视觉是否舒适,效果十分炫丽等。但是下面这些测试类型,比较适合自动化。

单元测试

单元测试一般都有开发人员实现和维护,主要是针对各功能模块的函数调用进行测试,粒度较小,实现简单,甚至可以通过工具自动生成单元测试用例。

回归测试

进行大量回归验收的测试用例时,或者手工执行用例发现了Bug,需要增加对应的自动化测试用例跟踪缺陷是否解决等场景,也适合引入自动化测试。

性能测试

性能测试涵盖比较广泛,包括压力测试、稳定性测试、吞吐量测试等,这些都是手工测试无法胜任的任务,必须引入自动化测试。

接口测试

对于接口(API)测试,由于接口相对比较固定,类似于单元测试,比较规整的API接口,甚至能够通过工具来自动生成测试用例,非常适合自动化测试,投入小,回报大。

协议测试

由于协议(如HTTP,FTP,RTSP,HLS等)定义规范,接口说明比较严谨且很少改变,对协议兼容性进行测试时,也非常适合引入自动化测试。


系列文章目录地址:

《漫谈自动化测试(一)——如何入门》  (http://blog.csdn.net/thomashtq/article/details/45217271)

转载请注明出处:漫谈自动化测试(二)——适用场景(http://blog.csdn.net/thomashtq/article/details/45217499)

你可能感兴趣的:(自动化测试,测试之道)