测试自动化设计需要考虑什么?

上一篇 / 下一篇  2015-08-25 23:29:03 / 个人分类:测试自动化

测试自动化是测试一个永久的话题,不少测试同学认为自动化就是开发工作,不是测试主航道,测试在自动化投入精力少,开发本来就不太喜欢测试给他们找茬,再说除了问题单,开发又不大看得出测试的产出,开发对测试认同度也不一定高。我的观点,测试自动化就是能够撬动所有测试活动有力的武器,做好自动化就很容易得到开发测试的赞许,如果你能够把测试自动化做到下面这样的话。这个观点,今天就不去论述。先讲讲测试自动化设计需要考虑哪些关键点?

首先测试自动化要考虑自动化的用户是谁?有同学会说,这还要问吗?当然是测试人员。这个我认为不全面,而且也不太正确。测试自动化有三类用户,一是自己,二是测试同事,三是开发同事。自动化设计,也是在设计一种产品或一个系统,是要满足用户的需求。如果仅是自己,比较好办一些,怎么做都可以,只要能够提高自己的效率,顺便提升自己开发能力。如果是测试同事,这里就要考虑比较多的东西,测试同事,你就要考虑的是如何提高他们测试效率的同时还不增加他们的学习成本。开发人员,一般不会主动要做测试自动化的用户,他们希望这个功能,你帮我验一下,你帮跑一下自动化用例。开发成为自动化用户,是靠你去争取过来的。

第二,如何选择你的自动化语言?做给自己用,用什么语言都可以,反正你自己会觉得爽。开发人员,就不一样了,你得找出与开发的共同点出来。产品用什么语言开发,建议就用什么语言开发你的自动化,一是,语言不懂的可以请教开发人员,容易让他们获得成就感;二是,你的自动化,开发能够看得懂,他们比较容易学会,从而让开发成为你自动化的用户。两个方面,都能够促进开发测试的关系,自动化牛,自然能偶得到开发认同,同时你又能把开发拉下水,同年一块做测试。顺便说一下,开发所使用的语言,一般都是通用语言,java,c++,python等,业界通用,不会浪费。之前,我就做过错误的选择,使用测试特有的语言,最后只有测试自己看得懂,什么都得自己做,不能重用通用语言丰富的库,最后不得不重新花了两三年重构,因为现有用例实在太多了。

第三,自动化设计是要考虑分层的。测试人员大多数对开发语言不懂,或不擅长语言。懂的话,他们不早去做开发了,还留在这里同你一块做测试?所以,你要假设测试人员不懂语言,他们也没有多大兴趣去学。所以,这个时候你的自动化暴露给测试人员就不能是语言了(即使你很牛,设计一套简单的脚本语言),要是傻瓜化的工具,比如动动鼠标就可以完成自动化的IDE工具,或者基于格式化字符串的命令行工具。越简单越好,越傻瓜越好。你要记住的是,你是要提高测试人员的工作效率,同时又不增加他们的学习成本。这是面向用户的一层设计。底层自动化设计,一般和开发模式就差不多了,要考虑代码可读性,可扩展性,稳定性,模块化等等。总之,是要易用好维护。

最后,首次测试的时候就要能用上你的自动化。自动化不仅仅是,在手工完成测试后,再把用例自动化掉,提高回归验证测试效率。这样会被项目赶着走,很被动,累死人。自动化的威力,远没有充分发挥出来。如果你的自动化能够考虑以上三点内容,并且做到的话,其实在首次测试的时候,你就可以针对新项目做新的自动化需求,在测试执行的时候,就把自动化框架做好,让测试人员在做测试的时候,就用例给自动化掉,甚至只能用你的自动化框架进行测试,否则无法进行。做到第四点,就可以独步测试领域了(至少在你产品内)。

做好自动化不容易,不过,一套优秀的自动化框架,能给产品测试带来非常大的作用。也是优秀测试人员工作效率达到其他测试人员N倍的有效途径,没有之一。


TAG: 测试自动化 自动化框架

Wei测试的个人空间 引用 删除 Wei测试   /   2015-09-08 09:23:25
不好意思,刚才不小心回帖给删除了。
上面看你說要選擇跟產品相同的語言做自動化比較好,我們的產品是PHP寫的,那我應該選擇什麼工具比較合適呢?
Wei测试的个人空间 引用 删除 Wei测试   /   2015-09-08 09:19:56
web前端测试,用基于WebDriver的selenium。有python和javascript语言版本,都是脚本语言,差不多难度。可能没有php的。
 

评分:0

我来说两句

日历

« 2024-04-09  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 41731
  • 日志数: 10
  • 建立时间: 2015-08-24
  • 更新时间: 2016-06-21

RSS订阅

Open Toolbar