游戏测试软件测试Appium

思考自动化测试--分层测试(三)

2015-01-14  本文已影响1393人  乱步

思考自动化测试--分层测试(三)

由于多种原因吧,自动化测试刚开始发展,都想去做手工测试代替,都想做黑盒的覆盖测试。结果,自动化测试维护成本过高,稳定性也不好,但是执行效率,回归起来又不错。越来越多的人在思考如何更好的做自动化测试。尤其是在敏捷开发盛行的年代,自动化测试已经成了软件开发测试过程中,重要的组成部分,那么到底怎么做自动化测试收效最高呢。目前较为流行的方式--分层测试。
我比较推荐分层测试的金字塔说法:分层测试就是构建高效的测试金字塔,不同层次的测试可以用尽量低的成本防御不同类型的风险。
说法慢抽象的,先来看个实例图,再做慢慢解释:


测试金子塔测试金子塔

上面我们先看到了金字塔了,然后我以比较常见的web项目做例子来解释分层测试。诚如上面说的如果我们单纯做黑盒的自动化测试,其实就是在UI这个层次上,不断开发维护脚本,结果可能带来的风险就是人员的无限投入,却很难得到比较好的测试效果。而这个金子塔的意思就是将应用,分成不同层次的自动化测试,比方说UI就是通过界面进行端对端测试,一般是黑盒测试;service一般针对接口,服务,比方说如果你用REST方式构建web的话,那么可以对REST接口进行测试,还有比方说直接对HTTP接口进行测试,对webservice接口进行测试;而Unit这个包含的比较多了,简单的说在web应用的dao,service,controller,model这些可以写类似junit的单元测试,javascript,css也可以做前段的单元测试。这这个金子塔就说的,根据层次划分,不同层次的测试量不同, 越是在塔尖的,测试开发维护都比较复杂,那么测试的量就越小,而下层的单元测试则可进行比较高的覆盖测试。
简单的说,分层自动化测试,就是把我们单一看着UI的功能自动化测试,将自动化测试扩展到不同的软件层次上,进行测试。
这种测试方式,相比于传统的自动化测试,会有几个改变:

综上所述,分层自动化测试是追求覆盖的传统自动化测试的一种修正,充分利用自动化测试的优点,尽量规避自动化测试的缺点。当然分层测试也有些要注意的问题:

不管分层测试有多少难度,他是目前解决自动化测试开发维护的一个比较好的方案。如果要大规模使用自动化测试,我想分层的思想应该是不容忽视的。

上一篇下一篇

猜你喜欢

热点阅读