基于AI的自动化测试流程是怎样的?
在自动化测试整个流程的执行过程中,可以通过以下这些方式进行关键步骤的组织。首先在录制的时候,我们传统的自动化工具是依赖于具体的UI的开发技术,现在我们可以通过通用性的UI解决方案。

通过图像识别捕捉的不再是基于浏览器(比如说Chrome、Firefox)相应的插件捕捉的脚本,而是捕捉整个UI界面,在整个UI界面里面包含哪些输入框、哪些按钮等等。这样的录制方式可以将整个录制过程变成一个通用解决方案,脱离客户端的UI,不管是APP、还是CS的客户端、或是浏览器,都用UI的方式去捕捉界面上的相应的元素。

这样的基本元素也更容易被普通的业务人员理解,他不需要知道开发脚本,就可以知道捕捉下来的界面元素是个按钮还是个输入框的等。
另一方面,在录制完时候,我们可以将录制的内容转换成一个业务流程图。比如说你录制下来的是一个顺序的过程,比如说从登录开始,先输入用户名,在输入口令,在输入验证码,再点击登录按钮,我们录制下来是这样一个操作过程。

我们也可以通过业务流程图的方式将它设为一个分支,比如说对于对异常操作,只输用户名和密码,不输图片校验码,然后直接点击登录,我们把这个流程通过业务流程图和正常的流程做一个结合,就可以组合成有两个分支的测试用例。

同时在这个过程中,我们也可以通过AI的辅助对数据进行筛选去识别出有代表性的数据去作为我们的测试数据。


从录制的内容到转换成测试的步骤和测试用例之后,下一步我们就可以在测试的农场里进行一个执行。这个农场可以包含各种数据的组合、也可以是浏览器的组合、也可以是PC的组合,可能是win7、win10或者不同的操作系统。

在不同的组合里面,我们将这些组合划归到一个容器里面,或者虚拟机里面,各种各样的虚拟化的技术都可以支持我们去做测试的农场。手机的话更多时候可能还需要通过真机的方式去构建一个手机真机的农场,但对于PC端或者浏览器端我们是完全可以通过虚拟机去构建。比如说我们可以有第一个虚拟机构建的是win10+Chrome的环境,第二个是win10+Firefox,第三个比如说是win7+IE10,第四个是win7+IE9等不同的组合,我们将任务分发到不同的虚拟机环境上,进行自动化的运行。

最终就是形成测试结果和测试报告,我们可以通过OpenCV的技术把它在虚拟机里运行的整个过程,去完整地捕捉下来。有了视频之后,也可以形成视频的过程截图。



最后我们再一起来看一下自动化测试的展望,现在已经有了一些初步的雏形。

首先是测试机器人,现在已经有很多厂商在做,比如说基于机械臂的方式去替代人手,通过摄像头去替代人眼,通过基于AI的图像识别去替代人脑。特别是在手机端,有很多这种自动化测试的机械臂去自动化执行测试脚本。


第二种是多端测试,我们基于不同的终端,比如说有APP的、有浏览器的、还有可能是没有界面的后台服务的,这种多端组合的方式。有一个典型的场景,像美团的订外卖,我们有骑手、有外卖的买家和卖家、还有美团后台的一些服务。这种多端的组合场景就可以通过自动化测试去实现。


第三方面是软件的缺陷预测,实际上AI的技术很多方面是应用在预测场景,我们通过相应的缺陷的一些特征的算法,我们也可以在自动化测试中去构建软件缺陷潜在的缺陷的预测,现在也是有很多研究的。
相关推荐白盒测试——C/C++编程规范(1)       白盒测试——C/C++编程规范(3)