『心善渊』Selenium3.0基础 — 2.自动化测试概述(二)

(三)自动化测试能力要求:

1、对软件测试的能力要求

  • 掌握软件测试的流程和方法。
  • 掌握软件测试用例设计思路。
  • 有1年以上软件测试项目经验。

2、对程序设计的能力要求

  • 有Java、Python程序设计(脚本语言)基础或相关经验。
  • 有数据库和SQL语句使用经验(基础)。
  • 对软件系统三层结构及协议有所理解。(客户端,服务器,数据库)

3、对软件架构的能力要求

  • 理解软件系统前端和后端交互过程。
  • 理解操作系统(手机和电脑)基本原理。
  • 对软件系统的三层结构及协议有所理解。
  • 理解项目的核心技术架构(就是用了什么主流技术)。
  • 理解对被测产品的需求和业务逻辑。

(四)自动化测试可行性

1、产品架构与业务可行性

  • 单机应用程序,重点考虑界面级自动化测试。
  • 分布式应用系统,重点考虑接口级与界面级结合的自动化测试。
  • 手机APP应用,重点考虑接口级与界面级结合的自动化测试,并重点关注兼容性。
  • 复杂业务场景,重点考虑接口级或代码级自动化测试,界面级测试可不作重点关注。且摘取使用频率最高的模块进行测试。
  • 简单业务场景,可考虑不进行或只进行界面级自动化测试。

2、测试技术实现可行性

  • 自动化测试可应用于代码级、接口级、界面级(测世界的金字塔)。
  • 不同的被测产品应根据不同的情况进行有针对性的技术选择。
  • 自动化测试技术并不难,重点是测试方案的定制。
  • 通用优先技术选择顺序:接口级>界面级>代码级。
  • 自动化测试工具选择面太广,却没有一款工具可以完全满足企业要求,所以对自动化测试技术底层实现原理的理解和应用应优先于对工具的考虑和选型。

3、团队成员能力可行性:

  • 测试过程分为:分析、设计、实现、执行,而很多团队关注在实现和执行层面,而忽略测试最本质的环节:分析、设计。
  • 自动化测试仅属于测试执行环节,所以并非能够运用自动化测试技术或工具就可以成功实施自动化测。
  • 团队成员具备的能力:对产品业务的理解,对产品架构的理解,对设计的理解,具备程序设计能力(语言能力),有专人负责自动化测试。
  • 建设好测试团队和软件研发管理,远比实施自动化测试重要。

4、自动化测试实施可行性:

  • 自动化测试方案应该与产品架构设计工作一起,在研发早期进行统一规划,确保自动化测试的可实施性,减少测试脚本重构。
  • 自动化测试更多用于回归测试或兼容性测试,不能以寻找Bug为目的。(重点)
  • 自动化测试属于执行阶段,测试工作应该重点关注分析与设计。(重点)
  • 经验表明,80%的企业自动化测试实施工作无法坚持,效果并不理想(页面变动态大)。
  • 自动化测试是为软件质量服务的,并非用于自我满足或邀功。

5、什么样的项目适合做自动化

(1)软件需求变动不频繁

测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。

项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

理想状态,因为一个项目不可能每有变化。

(2)项目周期较长

由于自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。

(3)自动化测试脚本可重复使用

自动化测试脚本的重复使用要从三个方面来考量,一方面所测试的项目之间是否很大的差异性(如c/s系统和B/s系统的差异);所选择的测试工具是否适应这种差异;最后,测试人员是否有能力开发出适应这种差异的自动化测试框架。

总结

沾边一个就可以做。

自动化测试使用场景

  • 适用于兼容性测试。
  • 适用于回归测试。
  • 在迭代项目中对老功能使用自动化。
  • 适用于冒烟测试(理论上),因为很难跑通。

你可能感兴趣的:(『心善渊』Selenium3.0基础 — 2.自动化测试概述(二))