近几个朋友都在聊,他们公司打算进行自动化测试了,头让他们负责来弄这个东西。 貌似这两年测试自动化比早三年前收到重视的程度大有提高,好像大家不提自动化测试跟不上潮流似的,测试没有做好,质量没有改善是没有做测试自动化一样。 其实很多公司是真心想把测试好,他们进行了一些探讨,做了一些研究之后才得出的结论。 有些人做测试自动化完全是另外的目的的。其实我在这里并不关心他要引入测试自动化的动机,只是想说,大家都意识到测试自动化的重要性了,而且觉得这是一个提高测试覆盖,改善产品质量的途径。 其实国外早在20年前已经在研究测试自动化了。 并不是所有的公司都适合做测试自动化,也并不是所有的产品都适合,不同的行业,不同规模的公司做测试自动化,也不能照搬别人的经验,而是要根据自己公司的实际情况,实际的测试流程进行规划。否则失败的可能性很大。

Double Think Before Action。 三思而后行, 测试自动化是一个系统的工程,根据我以前的经验,我们在进行测试自动化之前,要自己问一些问题给自己,如果能很好的回答,或者能做一些风险评估,有充分的思想准备:

1.我们公司的测试流程完备吗?不要指望测试自动化能改善你的测试流程,如果没有很好的手工测试流程,测试自动化一定会失败。

2.我们公司的产品都是稳定的版本吗?不稳定的版本进行测试自动化必然带来很高的维护代价,尽管你可能进行很好的设计,产品变化之后总会带来你想象不到的测试脚本的维护。而且不稳定的产品可能存在bug的机会远远大于稳定的产品,而且通常来说,自动化测试不能发现比手工测试更多的bug,如果你想多发现一些bug,把产品做稳定,还是多进行一些手工测试吧。

3.我们公司的产品都经过可测性设计吗?换句话说,我们产品的设计和开发给测试预留了一定的接口了吗,如果没有,还是慎重的为好。如果你的产品都没有经过可测性测试,你的测试自动化进展一定很缓慢,很多地方可能会让你举步维艰。

4.我们公司的测试自动化框架打算怎么做?在进行自动化之前,你一定要考虑这个问题,注意,不是测试工具,而是自动化框架,也是平台,如果没有一个很好的平台,你的测试自动化base可能比较混乱,而且测试脚本的维护也是一个大的问题,版本问题你考虑了吗,测试的执行和测试的管理你考虑了吗,好好想想这个问题吧。

5.我们公司需要什么样的测试工具?这里才是测试工具,我们打算自己购买吗,有多少预算?购买工具的评估怎么进行。很多工具是按照license费用计算的,而且售价相当高。如果你预算不够,自己开发吗?另外,有些测试工具可能是你有钱也买不到的,市场没有相应的工具,或者及时有,也不满足你的特殊要求, 那么怎么办,自己开发。

6.我们测试脚本是谁来开发?测试脚本的开发对测试人员有很高的要求,不仅仅要熟悉开发,而且对测试业务很熟悉,无忧测试论坛上有很多这方面的讨论,对业务和编程的要求分别是多少,我的想法是50%对50%,好的测试专家一定是好的业务专家,好的业务专家不一定是好的测试专家。^_^ , 特别现在开发大多不愿意做测试,测试人员的素质能不能达到要求?是专门成立一个自动化的团队来进行测试开发,还是用现有的测试工程师抽出时间进行测试开发? 要知道测试的进度很紧,测试工程师可能忙于测试用例的编写,测试用例的执行,测试的评审,产品的学习。整个要想清楚了。

7.测试脚本谁来执行,谁来维护? 测试脚本开发完成了,只有执行才能带来收益和投资回报,谁来执行,测试人员吗? 没有从不变化的软件产品,软件产品版本升级发生了变化,相应的测试脚本可能需要维护,谁来进行维护?自己开发自己维护,时间长了,开发的模块越多,负担越重,终可能会被拖的无法腾出时间进行开发新的模块。 如果是谁来执行,谁来维护,那么测试脚本的交接如何进行?

8.测试环境是共享还是独立?一般来说,自动化测试对环境的积累比手工测试要强很多,我们可以充分利用晚上的时间和休息时间进行测试,那么测试环境的独立性需要很好的保证,对测试资源的要求也很高,我们的测试环境具备这样的要求吗?