1.分层
分层是自动化测试最最基础的一面,小到框架的模块分离,数据分离,大到业务形态分离,端分离.从大的方向划分为前端,客户端,服务端,大数据等等.从层次上又划分为
ui-接口-单元测试

就是经典的金字塔模型.
2.代码复用
减少重复代码,是代码编写的很基础的能力,减少代码的重复度,也成为了自动化测试很重要的一个方面.
3.原子性
模块与模块之间的解耦和原子性是自动化脚本是否健壮很重要的方面,比如Page Object Model就是自动化测试很经典的模型.
4.可装饰,可适配
数据分离和可配置性是自动化脚本维护和执行是否快速很重要的方面常用的有json,yaml等.
5.失败重试
任何自动化脚本,都不可避免会出现由于数据错误或者环境因素等运行失败的情况,失败重试是需要设计的一个方面.
6.报告输出
可视化的报告输出,会为自动化测试结果提供良好的阅读和展示效果.
7.日志监控
好的自动化测试框架应该可以长期稳定的运行,但是出了问题,如何排查,这就需要日志输出和监控了.
8.及时通知和预警
无论是报告输出还是日志监控,及时的通知和预警都是很重要的事情.那么常用的有邮件,短信,或者公司内部的通信app.
9.aop编程
aop编程是java代码编写的很重要的设计思想,可以减少代码侵入和实现动态注入,像我们常用的覆盖率就是典型的aop编程.
10.驱动模式
关键字驱动--比如各种平台级的工具,如早期的selenium IDE,Robot Framework
数据驱动--测试数据分离,存入单独的文件或者数据库中管理,如IBM的RFT
混合驱动--关键字和数据双层封装
行为驱动--支持自然语言作为用例驱动
风险驱动--无论是测试还是自动化测试,最终交付到用户手中,都需要保证最小化风险.而大量的自动化测试用例和敏捷测试,如何筛查失败用例,对应用的影响程度,需要前期根据风险级别定义用例优先级和重要性.
11.代码管理
git,svn是目前主流的代码管理工具.
12.用例管理
文档,excel,json/yaml,数据库等都可以用来做用例管理.
13.脚本管理
json/yaml,java/python文件.
14.环境管理/设备管理
服务端的环境部署和环境治理是自动化测试的前提.而客户端的不同设备的管理如云测平台,是客户端用例执行稳定性的保障.
15.全自动
加入持续化集成jenkins pipeline,实现全自动和长期稳定性是自动化测试不懈的追求.