自动化测试-提高测试效率的途径(1)
自动化测试-提高测试效率的途径
长期以来, 软件测试给人留下的一种印象是它是一门领域,主要由开发者编写程序进行操作的一些简单的点击和输入动作,偶尔还会听到"咦,这里有个错别字"的声音出现。实际上,真正意义上的软件测试远远超出了这些表面的操作行为。在这些真实的测试过程中,手动操作的行为被称为Manual Testing,仅占整个流程中的较小比例
商用程序规模都相当庞大, 动辄上百万至数千万行代码。这些规模复杂的功能完全靠人工测试不仅不现实而且造成了巨大的人力浪费。然而这些本应由程序自动完成的任务却并非如此有些任务完全无法由人工完成例如检测一个程序在打开和关闭1000次后是否会存在内存泄漏的问题非但如此这类工作即使是常人也难以胜任因此开发和使用自动化测试软件已成为测试工作中不可或缺的一部分让程序自动可以做的事情交给程序去做这样既能提高测试效率又能显著提升生产效率
当一个项目启动初期时
可以自动化测试的:
具有清晰明确的定义的测试策略与系统化的测试计划(明确需求范围并确保在适当的时间内完成各项任务)
2. 对于自动化测试你拥有一个能够被识别的测试框架和候选者
3. 能够确保多个测试运行的构建策略
4. 多平台环境需要被测试
5. 每个版本都要测的
6. 拥有运行测试的硬件
7. 拥有关注在自动化过程上的资源等
需要手工测试的:
1. 只需要执行一次或者执行次数相当少的测试
2. 自动化成本太高的测试
3. 易用性测试
4. 测试结果不确定的测试
5. ADhoc
鉴于此,在选择合适的自动化测验工具时应考虑各种测验用例的需求。目前市场上确实存在许多自动化的测验工具。然而这些通用性较高的自动化的测验工具通常仅针对常见且普遍使用的功能模块进行功能验证。因此在市场上很难找到一个完全符合特定开发流程的自动化测验工具。对于大型复杂项目而言,则需要结合现有的商业化的自动化测验工具,并根据具体情况进行定制开发以实现全面覆盖的目标。
下表是一些自动化测试工具类型的描述,
| 类型 | 描述 |
|---|---|
| 测试用例生成 | 从设计文档和对象模型中自动生成测试用例 |
| Code (Test) Coverage Analyzers and Code Instrumentors | 找到没有测试覆盖到的代码和支持动态测试 |
| Memory-Leak Detection | 测试一个程序是不是内存泄漏 |
| Metrics-Reporting Tools | 分析代码给出数据流、数据结构和控制流图。并分析出各个模块代码的各方面信息。 |
| Usability-Measurement Tools | 衡量易用性 |
| Test-Data Generators | 自动生成测试数据 |
| Test-Management Tools | 提供测试用例的管理 |
| Network-Testing Tools | 监视、测量诊断在网络环境下程序的性能 |
| GUI-Testing Tools (Capture/Playback) | 录制用户的操作然后回放进行自动测试。一次录制多次回访 |
| Load, Performance, and Stress Testing Tools | 性能,负载,压力测试 |
| Specialized Tools | 依赖于特定体系结构的特殊测试工具,常见于嵌入式环境 |
这些类型的软件对于大型软件来说尚有不足之处。鉴于此,在这种情况下,基于现有资源与时间限制,在这种情况下, 测试团队应着重开发专属于自身产品的自动化测试脚本或采用相应的自动化测试工具。有关如何自行构建自动化测试框架的技术细节,请读者期待后续文章的介绍。
