【落叶179】《测试路上你问我答》(37)如何有效地制定自动化开发策略?

【落叶179】《测试路上你问我答》(37)如何有效地制定自动化开发策略?_第1张图片
文/秋之川

【目录】

这是《落叶》文集里第 179 片落叶,希望你能喜欢,不为别的,只为这份坚持。

【背景】

请教:如何更好的制定自动化计划?组里框架用的是 selenium,maven,testNG。

自动化开发流程: 在功能测试设计下个 release 的新需求时,开发上个 release 的测试用例,使其自动化用于今后的回归测试。目前遇到的问题是 每次新的 release 总会有些改动,比如前台的改动,新需求改变了之前的某些功能块,等等。这些会影响之前的自动化代码,并且这些内容是不容易提前预知的。

如何在制定自动化计划时更有效的制定自动化开发的策略呢?

【你问】

如何有效地制定自动化开发策略?

【我答】

我们一般会把自动化测试分为三层:

由外到内划分为:

第一:UI 层

第二:接口层

第三:单元层

按性价比由高到低排序:

第一:接口层

第二:单元层

第三:UI 层

这里说的性价比,是从好几个维度综合考量的,比如需求改动频率、测试人员投入成本、后期的脚本维护量等等。

所以,建议在产品初期变化相对频繁的阶段,测试人员应该把精力放在接口层的自动化测试开发上,UI 层上投入太多的精力和时间,回报其实并不高,单元层因为门槛略高,所以需要结合测试团队的技术储备来决定在什么时期投入比较好。

最后,再简单说下我对自动化开发的一些基本策略:

1、框架/工具开发者角度:

a. 易用性:让测试工程师能较为方便地使用该框架编写测试脚本;

b. 低门槛:让测试工程师不需要具备太多的开发知识就能使用该框架;

c. 稳定性:保证框架运行时的稳定,避免很多因为运行不稳定而产生的不必要问题排查;

d. 效率:框架的执行效率,不过如果不是特别的缓慢,也可以忽略不计;

2、脚本编写者角度:

a. 高效率:如何才能让脚本编写的工作变得简单高效;

b. 灵活性:如何才能降低脚本编写的依赖性,比如减少对框架开发者的依赖,或者是被测对象开发进度的依赖;

c. 封闭性:也可以称之为约束性,从而提高测试脚本后期的可维护性;

3、用户角度:

a. 运行环境和数据环境分离:可以灵活选择脚本的运行环境,包括准备数据的脚本和运行时的脚本;

b. 直观性:通过简单的交互形式去选择所需要的测试脚本、测试环境,能直观的看到 TA Job 的状态,脚本执行完之后也能方便快捷地查看结果报告;

c. 数据化:手工用例的自动化覆盖率、脚本执行结果、错误日志等都要经过处理形成相应 Job 的 TA 数据;

4、被测对象角度:

a. 业务流:能够快速检查被测对象的业务流程是否存在 Block 问题;

b. 逻辑检查:能选择针对具体的功能模块逻辑点进行测试;

c. 页面巡检:能 Schedule 定期执行的巡检脚本 Job,目的即检查现网的服务是否都正常运行中;

5、测试脚本角度:

 a. 设计模式:Object MAP + Keywords,对象属性和通用操作的封装;

  b. 底层驱动:Driver Level,即同一套测试脚本,运行时可调用相应的 Android 和 iOS 底层驱动分别解释执行;

  c. 分发运行:脚本执行时可以根据选择的测试机,分发对应的脚本到指定的机器;

《测试路上你问我答》里的 Q&A 37,如果是你要的,甚好!如果不是,你问,我答!

作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵

【目录】

你可能感兴趣的:(【落叶179】《测试路上你问我答》(37)如何有效地制定自动化开发策略?)