1. 简介
本文关注于一个实施自动化测试框架的组织的主要方面和影响。本文的意图是提供一些能够成功的实施自动化测试的指导方针。
2. 测试自动化的神话
有很多关于自动化测试的神话。其中的一些是真实的,而其他的一些是不正确的设想,这些不正确的设想会严重的威胁到实施自动化测试的成功。本文将向大家介绍几种我们面临的主要几种关于测试自动化的神话:
2.1. 我们在时间上是紧迫的 - 项目已经落后了 - 让我们使用自动化测试吧!
这种情况将不能成为现实。实际上,正确的思想应该是 - 我们时间急迫 - 我们决不应该使用自动化测试。
如果项目已经陷入到了麻烦之中,不建议实施自动化的功能测试。项目很可能因为需要大量的测试框架的准备和实施会被托跨。我饿建议将重点放在以下的事情上:
优化测试的过程。调查并建议在目前工作基础上的测试方法和过程。建议借鉴 RUP 的相关思想和过程。
引进或者使单元/组件测试正式化。这是我们能够快速获得受益的很好的方法。如果正式的组件测试被使用,我建议可以使用 Rational PurifyPlus 进行单元或者组件测试。根据我的经验尽早的使用 Rational PurifyPlus 是非常值得的。在一个引入和 Rational PurifyPlus 的项目中,通常会在组件的级别得到 百分之三十的性能提升。
仅仅在项目团队能够对 下列问题的回答是"Yes"时:
项目能够被适当的推延。
存在能够通过实施自动化测试被达到的精确的目标。
项目具备建立适当的测试框架的必要条件。
那么,你可以在一个时间紧迫的项目中适当的实施测试自动化。但是根据经验这种情况是很难发生的。
总而言之,我只能说"对不起,银弹根本不存在"。
2.2. 测试自动化就是捕获和回放
在过去的日子中,自动化的测试工具只是被看作是一种捕获和回放的工具。当前这个神话仍然在很多测试人员的思想中。而事实上自动化测试已经远不止捕获和回放这么简单了。按照成熟度自动化的测试可以被划分为 5 个级别。
2.2.1. 级别 1:捕获和回放
这是使用自动化测试的最低的级别,同时这并不是自动化测试最有用的使用方式。
好处 | |
自动化的测试脚本能够被自动的生成,而不需要有任何的编程知识。 | |
缺点 | |
你会拥有大量的测试脚本,同时当需求胡子和应用发生变化时相应的测试脚本也必须被重新录制。 | |
用法 | |
当测试的系统不会发生变化时 - 小规模的自动化。 |
2.2.2. 级别 2:捕获、编辑和回放
在这个级别中,你使用自动化的测试工具来捕获你想要测试的功能。将测试脚本中的任何写死的测试数据,比如名字、帐号等等,从测试脚本的代码中完全删除,并将他们转换成为变量。
好处 | |
测试脚本开始变得更加的完善和灵活,并且可以大大的减少脚本的数量和维护的工作。 | |
缺点 | |
需要一定的编知识。频繁的变化可能会引起"意大利面条式的代码",并且变更和维护几乎是不可能的。 | |
用法 | |
当进行回归测试时,被测试的应用有很小的变化,比如仅仅是针对计算的代码变化,但是没有关于 GUI 界面的变化。 |
你能够使用这种技术通过快速的编制一些测试脚本以检验你的想法来探索你的预定的测试设计。当我在没有任何象需求或者设计模型这样的文档的情况下第一次操作一个产品时和我需要获得一系列内部构建版本的稳定性的第一印象时,我使用过这种技术。通常如果适当的软件配置管理(SCM)与良好的内建设计相结合时,使用级别 2 的技术已经足够了。
2.2.3. 级别 3:编程和回放
这个级别是面对多个构建版本的有效使用测试自动化的第一个级别。你需要在实际的投资开始显现之前确保团队和客户对项目的安全感。如果没有对测试自动化工具的适当的培训测试人员将不具备到达这个级别的能力。在自动化测试工具中的所有测试功能都必须被很好的理解,并且要掌握测试脚本语言的知识。