1. UI层介入
a) UI层是最接近目前测试现状的地方。
b) UI层的工具非常多,参见上一篇文档《自动化及工具介绍》。
c) 替代率明显,区别于其他的自动化测试方法,可直接替代部分手工测试。
d) 利于人员培训、难度低。
e) 技术储备方式。
2. 测试覆盖率
a) UI层覆盖大约最高能达到50%左右的覆盖率,但实现此目标需要消耗大量的人力,原理同软件测试故障产出与人力投入比例曲线。
b) 接口测试由于提供标准化的方法和输入输出,覆盖率可以达到90%以上。
3. 分层设计
分层设计图
a) 三层包括基础控件定义、控件操作、业务调度。
b) 控件定义包括操作对象的基础方法封装、例如断言、数据对比、文本等待、截图方法、正则匹配、指令输入、时间等方法。
c) 控件操作定义了一系列的控件操作,由基础控件集成完成一次业务操作,例如滑动解锁、切换输入法、滑动完成欢迎界面、完成一次用户信息输入等。
d) 业务调度定义了使用前两层完成一次完整的用户业务,例如:手机解锁后拨号、打开相机拍照、安装应用并打开。
4. 操作与数据分离
a) 数据驱动,即使用数据的输入操作业务模块完成不同业务场景的测试,使用数据驱动必须将数据与操作进行分离。
b) 测试场景为各场景配置的呼叫、各场景的拍照、摄像等。
c) 数据输入使用xml或者excel完成配置,作为一条测试用例。
d) 利用标准化的测试接口,数据维护方便、测试结果易于判断。
5. Page-Object模式
a) Page-Object即为页面原型思路进行自动化设计。
b) 将一个web页面或者应用activity作为一个对象进行封装的思路,仅需关注输入输出和校验,可大幅减少代码的冗余,提升可维护性。将目光放在业务逻辑上。
c) 例如上图中的介绍,如果通常设计实现,则需要分别使用三个页面的输入和校验,