软件测试:自动化测试(一)

软件测试:自动化测试(一)

本节内容:
- 什么时自动化测试
- 如何实施自动化测试
- 发展方向

什么是自动化测试

自动化测试
自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

常用的自动化测试工具
QTP、selenium、Rational Robot 、jmeter、appium、soapui等

  • QTP:功能测试
  • jmeter:既能做功能测试,也可以做接口测试。
  • soapui:做接口测试
  • selenium:ThroughtWorks的一款开源工具。是一个web的自动化测试工具。

selenium相比于QTP的优点:
- 免费。
- 小巧,对于不同的语言它只是一个包而已,而QTP 需要下载安装1个多G 的程序。
- 不管是C、java、ruby、python或是C#,都可以通过selenium完成自动化测试,而QTP只支持VBS。
- 支持多平台:Windows、linux、MAC,支持多浏览器:ie、ff、safari、opera、chrome
- 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。

自动化工具和自动化框架的区别:
自动化框架包括自动化工具。自动化框架可以管理整个自动化测试,工具仅仅是一种测试工具。

自动化测试的演变:测试工具—-数据驱动—-关键字驱动—-测试框架—-测试平台

自动化测试方法:
测试对象:UI、接口、代码
测试过程:系统测试、集成测试、单元测试
执行人员:测试人员、开发人员

对应关系:
UI:系统测试—–测试人员
接口:集成测试—–开发人员或白盒测试工程师
代码:单元测试—–开发人员

  • 自动化测试可以在整个测试过程中任何一个阶段实施
  • 测试人员一般在系统测试时进行自动化测试
  • 集成测试阶段多进行自动构建、部署、以及冒烟测试的自动化
  • 单元测试针对代码级别进行测试,可以进行静态代码检查,或者执行单元测试用例。
  • 测试的一般步骤是:冒烟测试(在系统测试之前,是判断是否接收测试的凭据)、系统测试、回归测试

UI自动化

  • 用例维护量大
  • 页面相关性强,必须后期介入
  • UI测试适合与界面变动较小的项目

接口自动化

  • 可在产品前期介入
  • 用例维护量小
  • 页面相关性小
  • 适合接口变动较小,界面变动频繁的项目

代码自动化

  • 需求不要频繁变更
  • 页面相关性小

自动化测试的优势
主要任务:降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入。

  • 减少人力,提高效率
  • 减少重复测试的时间,实现快速回归测试
  • 创建优良可靠的测试过程,减少人为错误
  • 可以运行更多更繁琐的测试
  • 可执行一些手工测试困难或不可能进行的测试
  • 更好的利用资源
  • 测试具有一致性和重复性
  • 测试脚本的重用性

如何实施自动化测试

自动化测试的适用对象
前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用。

不适合做自动化测试的项目:
1. 需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低。
2. 项目周期短,自动化脚本编制完成后使用次数不多,性价比低。
3. 交互性较强的项目,需要人工干预的项目,自动化无法实施。

适合做自动化的项目:
1. 产品型项目。产品型项目,新版本在旧版本上的基础上进行改进,功能变动不大的项目,但项目的新老功能都必须重复的进行回归测试。回归测试是自动化测试的强项,它能够很好的验证你是否引入了新的缺陷,老的缺陷是否修改过来了。所以在某种程度上可以把自动化测试工具叫作回归测试工具。
2. 机械并频繁的测试。每次需要输入相同、大量的一些数据,并且在一个项目中运行的周期比较长。

什么时候实施
自动化冒烟测试:偏重于业务流程
自动化回归测试:偏重于功能模块

如何实施自动化测试
分为以下7个过程:
1. 分析:总体把握系统逻辑,分析出系统的核心体系架构。
2. 设计:设计测试用例,测试用例要足够明确和清晰,覆盖面广而精。
3. 实现:实现脚本,有两个要求:一是断言(断言:判断用例的预期结果和实际结果是否一样。);二是合理的运用参数化。
4. 执行:脚本执行过程中的异常需要仔细去分析。
5. 总结:测试结果的分析,和测试过程的总结是自动化测试的关键。
6. 维护:自动化测试脚本的维护是一个难以解决但又必须要解决的问题。
7. 分析:在自动化测试过程中深刻的分析自动化用例的覆盖风险和脚本维护的成本。

软件测试:自动化测试(一)_第1张图片
注:

  • 脚本设计:指框架的设计
  • 业务测试人员的:验证需求以及帮开发人员准备一些数据。

自动化测试实施失败的因素
1. 期望值过高。
2. 对收益和成本的认识不清。自动化测试的收益是由测试脚本的重复运行次数,或自动化测试脚本的利用率决定的。

发展方向

  1. 自动化脚本的执行,维护和脚本分析。
  2. 自动化脚本的编写。
  3. 自动化测试方案的设计,框架的选型。
  4. 自动化测试框架的编码实现。
  5. 自动化测试框架额设计。

自动化测试需要了解的技能

  1. 了解基本业务
  2. 了解业务的技术框架
  3. 懂得功能测试
  4. 懂得一种编程语言
  5. 懂数据库、操作系统
  6. 了解常见的测试框架

你可能感兴趣的:(软件测试)