(松勤软件测试讯)随着软件测试技术的不断发展,人们已经从最初纯粹的手工测试转变为手工与自动化测试技术相结合的测试方法。近年来,自动化测试越来越受欢迎,收益也很明显,光会手工“点点点”已然out了,越来越多的企业开始重视自动化测试。所以,自动化测试已成为行业内大势所趋。

正好最近松勤软件测试程老师参与了一款自动化测试平台的设计工作,想跟大家分享其中一些关键的设计步骤是怎样的,这里以 Android 自动化测试系统做示范,希望给你们一些启发。

1.当我们开始分析一个自动化系统的构成时,首先应该思考一下,自动化究竟需要解决一个什么样的场景,它是为了解决测试人员写脚本难的问题,还是解决测试效率的问题,又或者是解决复杂场景的问题

只有先搞清楚了这一点,我们才明确设计核心是什么。

举个例子

网易有一款自动化平台叫 AirTest,它重点解决了两类问题:
1)就算不熟悉 python 的人,用了它也能把自动化用例实现出来;
2)因为很多游戏 APP 的控件不是原生的 View 渲染的,必须依赖图像识别技术,或者界面渲染引擎的控件定位技术,这在业务上难度是比较大的,用了它这一切也就不成为问题。
因此,它的设计核心是解决测试人员写脚本难的问题,以及解决复杂场景的问题。

还有个例子

蚂蚁金服开源的 SoloPi 是一款 APP 自动化工具,它重点解决了这两类问题:
1)脚本录制回放功能,解决的是测试人员写脚本难的问题;
2)一机多控,解决的是测试效率的问题;
每一个产品都有自己核心立足点,明确了核心,才知道要怎样去做技术选型。
所以,第一步是确认好,这款自动化产品它的核心解决场景是什么

2.有了核心,就如同设定好了目标,接下来的具体设计都是围绕目标展开的。

有一些同学在做设计的时候,想做到 Appium 那样支持多语言客户端,获得更广泛的群众基础;或是像 SoloPi 那样支持录制回放功能,还想添加……
这种持续做加法的原则对原型开发并不友好。


原型版本的设计,应该尽可能做减法,让主流程能跑通,再考虑锦上添花的事。
做技术开发往往都知道 “迭代” 这个词,产品很难一口吃成一个大胖子,一开始做得简单,有三个好处:

  • 容易对不明确的技术做调试,确认其可行性;

  • 容易围绕核心去做事,不会迷失在过多的细节中;

  • 开发过程往往会伴随 “重构” 的发生,越是简单的东西,越容易做重构。

 

3.核心的功能现在已经基本梳理好了,整个业务流程图这时就应该筹备起来。这里要考虑系统是如何进行工作的,在哪个环节有输入,哪个环节有输出,等等。

拿 SoloPi 举例

录制回放业务中,整个过程分为两部分,一个在录制,把用户操作的过程和设置的参数进行保存,输入的是操作,输出的是数据;另一部分是回放,将得到的数据作为新的输入,传给固定的操作模板去执行
这样整个业务流程的闭环就有了。

4.要考虑分工协作的事,将模块进行拆分。

一个产品不管是独立开发还是一群人合作开发,都要将其功能进行合理拆分,尽可能让不同的模块独立化开发,这样不仅可以将任务分解出去,也能让新的模块更好的扩展进来。

拿 AirTest 举例

划分为 IDE 模块,系统支持模块,控件识别模块的话,一组人专门把界面做好,实现 button,代码编辑器等;一组人去支持 Android,iOS,Windows,Web 等系统的连接,控制;一组人做好图像识别,Unity 控件识别。这样就可以同步干活了。

总结一下

设计一款自动化测试系统,首先要确认好核心功能是什么,其次让原型设计做得尽可能简单,再次考虑整个业务流程是如何流转的,抓住几个关键的输入输出点,最后合理将模块进行拆分,进行团队的分工协作。

 

@松勤教育丨以工匠精神,专注IT在线教育(www.songqinnet.com