三、度量一个自动化测试的可实施性可以从其可控制性或者可测试性上来考虑
来源:自动化测试可测性分析
有的人说单元做自动化比较好,有人说接口测试做自动化比较好,但奇怪的是也有人说他们做界面自动化比较成功,其实说接口测试和单元测试比较好的人,单元测试往往是开发来定义的,所以开发来控制可测性,接口测试的话,接口协议都是约定好的,所以可控制性和可测性有保证,而界面的话,有些产品的界面可测性控制比较好,例如都有唯一的debug id,或者界面变动性很小,那么也是考虑可以用界面自动化的。所以说,我们在推广自动化测试过程中,不是人云亦云,而是要结合当时的环境,从可测性上去考虑自动化测试的开展。
四、试点推进自动化测试
来源:自动化测试推广
自动化思路重要,但是做自动化本身也是具有一定机遇性的,其环境相关性很大,所以在开展自动化测试前,一定不要过度自信,铺天盖地的推广,而是要找好试点项目。之前做过一个接口录制工具给测试人员推广使用,由于不是试点分析,每个组的测试人员拿着这个工具开发了一堆一堆的线性脚本,导致存积了大量的接口线性脚本,然后后来由于脚本的维护性和不稳定,慢慢的流于形式,甚是可惜。如果采用试点分析的方式,先在小范围进行使用,并且跟踪效果。
业内有一个分层测试的理念很好,可以基于IP和地域选择性的发布新产品,根据使用效果,然后再根据情况逐步推向全国。
五、自动化测试框架的重要作用之一是为了职责分层
来源:自动化测试推广和框架建设
所谓软件框架功能,我觉得很重要的一点是能够将每一层次的责任细分出来,数据驱动框架就是将数据单独抽离,让测试人员能更有效的管理数据,例如:可以构造重复的、组合的、随机的或者大量的数据包;关键字测试框架就是将对象封装、任务封装、业务组装分层,这样,可以让代码能力稍强的人员面对对象和任务封装,让业务能力稍强的测试人员面对业务组装,这样可以通过框架将各个人员的职责细分,做自己所擅长的事。
关键字框架推荐robot framework,利用其可视化界面ride,其中还有一些拓展包,例如selenium2Lib可以应用在web测试。
六、可以的话,让开发一起参与自动化测试
来源:自动化测试可测性分析
曾几何时,我基于RFT和QTP都试点推行了公司的界面自动化,但是效果不佳,究其原因还是界面的变化太大,加上一些自定义控件或者一些自定义图片展示的动态搜索无法查找,只能用存储对象的方式,后来大力发展接口自动化,将界面自动化先搁置了一段时间,后来开发自己做了一部分自动化,说是效果甚佳,去学习才发现,他们有一些图形和事件是基于xml配置定义文件描述的,这样利用JDOM技术,解析出文件,然后根据QTP的脚本编写规范,生成QTP脚本,而测试动作基本上涵盖增删改查。这种情况是我们测试之前无法知道的,因为开发流程原因,我们无法知道开发所采用的开发技术,所以说,我觉得可以和开发一起来评估自动化测试。
七、自动化测试是可以成为一种习惯的,尽早自动化
来源:自动化测试推广
之前,和几位华为的开发朋友聊天,问他们一个问题:你们自动化怎么样,我原来以为开发是不太了解自动化的,没想到他们给我的答案是,什么怎么样,这是必须做的工作呀。原来他们华为的持续集成过程,开发自己写测试脚本做冒烟测试,以前这是华为的规定,现在是他们开发人员的一种习惯。
所以,我觉得,推广自动化不一定一开始就要大张旗鼓的,也不是所谓的等到一切时机成熟,自动化测试是一种辅助测试的方法,不同的情况可以采用不同的方式,几行脚本,一个bat部署文件,一个数据统计,也是自动化的一种应用。用另外一种说法:不管黑猫、白猫,能抓到耗子的就是好猫。