二、mPaaS应用的自动化测试分析
作为一款纯mPaaS框架开发的App,在自动化测试上遇到了诸多挑战,TestinPro在安卓和苹果系统上均表现不佳,而TesitnAI虽然在安卓系统下表现较好,但是苹果系统下依旧表现差强人意。我认为这主要是两方面原因导致的:
1.mPaaS平台下的应用集成了很多UI组件,像App中的定位、社交分享、扫码等功能包含的组件库众多,这对控件模式录制来说是巨大挑战,控件模式下,TestinPro需要在很短的时间内理清App的整体架构,提炼出页面相关的控件,根据用户操作,识别到对应的控件,这对于复杂结构来说很难做到百分百识别准确。同时,在多个页面叠加情况下,尽管测试人员选中了想要的控件,但由于实际排版中,该控件被其他控件遮盖,导致TestinPro无法抓取到该控件,从而录制失败。很显然,基于图像识别算法的TestinAI在面对这种复杂框架的情况下,要表现更好,其根本原因是TestinAI脱离了底层控件的限制,录制仅仅涵盖界面级。对每一个页面当成一张图片去分析,有深度学习的框架的加持,以及大量学习数据拟合的模型,识别效率和准确率产生了大幅度提高。
2.mPaaS的iOS应用本身会存在一些缺陷。首先是UITouch捕捉失真问题:mPaaS框架创建的工程开发的手写板功能会出现明显的抖动,与原生相比,UITouch响应事件捕捉点数明显不足,线条粗细明显不一致。其次是微应用体系与H5 API配合时存在缺陷:项目中存在多个微应用时,在二级微应用内使用MPaaS提供的H5 API pop window时会退出所有微应用,且push window到第五级界面时存在明显性能瓶颈,UI渲染异常缓慢。这一现象会导致页面直接的跳转不连贯,直接影响录制脚本过程中的验证操作。