【IT168 评论】
不知不觉,从事自动化测试的工作已经有两年零一个月了。在做自动化测试的过程中,自己对自动化测试的也是从无到有,从浅到深。有时候很想对自己这两年的测试感受写点什么,但是每每付诸笔端时(其实是键盘),却发现我的这些感受其实很零散,就好象海滩上的贝壳,到处都是,却又很难把它们串起来。因此干脆就把这篇文章的标题叫做“自动化测试随想”,随想嘛,想到哪儿说到哪儿,想到什么说到什么,不分体裁,重写意而轻文体,让自己的思绪天马行空,无拘无束,也算是一件快事
自动化测试工具不等于自动化测试。相信所有从事过自动化测试和没有做过自动化测试但是有测试经验的人都会认同这一点。用自动化测试工具写脚本并不意味着我们就一定在做自动化测试;自动化测试是什么呢,自动化测试它是一个过程,它有一个完整的生命周期,包括需求分析,用例设计,脚本编写,运行维护等多个环节。而编码还有多种方式,用自动化测试工具只是创建脚本的方式之一。但是这并不是说自动化测试工具不重要,因为无论测试框架搭建的多么完美,最后总是要实现出来的。熟练掌握工具可以提供自动化测试的效率,但是自动化测试工具却不是决定自动化测试效果好坏的关键因素。
自动化测试一定要重视需求的分析过程。在软件开发过程中,需求重于一切,需求驱动开发,需求驱动管理。在自动化测试也一样,定义合理,正确的自动化测试需求是自动化测试顺利进行的重要基础。在自动化测试过程中,需求决定一切。举个例子,比如我们要测试一个登录功能,如果测试目的是验证正确的用户名和密码可以成功登录即可,那么OK,我们的自动化测试中不会去考虑错误的用户名的情况,也不会考虑登录页面的布局是否合理,是否有错别字等等,为什么我们对这些明显并且简单的功能都不做自动化测试验证呢?理由很简单,我们的测试需求只是验证成功登录,不包括界面布局(其实这是一个不合理的自动化测试需求)和是否有错别字。这是自动化测试与人工测试的区别之一,人工测试时,这些测试点在执行测试时顺便看上一眼就OK了,但是对于测试脚本来说,没有“顺便看上一眼”这种动作,脚本是不会思考的,人让它干什么它就干什么。如果想包括登录页面中所有的验证怎么办?很简单,把所有要验证的功能都加入到自动化测试需求列表中, 然后提交给自动化测试工程师。但是这样做最直接的后果是自动化测试的成本无限扩大,测试时间一天天推迟,自动化测试工程师一次又一次的崩溃。
以前有人向我提问:“请问自动化测试在需求阶段能做什么,谢谢”。对于这样的问题说实话我无法回答,因为要回答这样的问题之前,我们要先搞清楚这么几个问题:在需求阶段我们有哪些工作?这些工作中是否存在重复性高并且可被量化或可被明确通过标准的工作项?这些工作项是否适合通过自动化测试解决。这些问题搞清楚后我才能回答在XX阶段自动化测试能做什么的问题。这其实是两种自动化测试的思路,前者是希望先了解自动化测试的能力范围,然后再去定义测试需求;但是我一直坚持认为,自动化测试必须首先定义出明确的测试需求,然后我们再去寻找适合我们的测试工具或测试框架。还是那句话,在自动化测试过程中,需求决定一切。也许有人会说了,那我还不清楚在需求阶段有哪些测试工作啊。对不起,那是您测试管理和工作上的问题,自动化测试也帮不了什么忙。
第一篇先写这么多,以后想到再补充,手酸了……