自动化测试-提高测试效率的途径

发表于:2009-05-31来源:作者:点击数: 标签:自动化效率途径
长期以来, 软件测试 给人的一种印象是一门”手艺活”,就是跑跑 开发 者写出来的程序,点点鼠标之类,然后大喊一声,“哇,你这个有个错别字”。实际上真正的测试并不是这样的。在真正的测试中,手动操作的测试被称为Manual Testing ,在整个 测试流程 中只占
长期以来,软件测试给人的一种印象是一门”手艺活”,就是跑跑开发者写出来的程序,点点鼠标之类,然后大喊一声,“哇,你这个有个错别字”。实际上真正的测试并不是这样的。在真正的测试中,手动操作的测试被称为Manual Testing,在整个测试流程中只占一小部分。
        想想现在的商用程序都是那么庞大的,动辄几百万行几千万行代码,这么多的功能依靠于人手工的测试是不现实的而且是对人力资源的极大浪费。因为这些简单的事情本来可以由程序来做,而且自动做。而且有的事情靠人工也是干不了的,比如测一下某个程序打开关掉1000次会不会有内存泄漏。让人干,非疯了不可。因此开发和使用自动化测软件是测试工作中很大的一部分。让程序自动可以做的事情交给程序去做,这样才能提高测试的效率和产出。
        在一个项目刚开始的时候,负责测试的人也知道自动化测试很重要,但是需要确定那些东西是需要自动化测试的那些东西是不需要自动化测试的。需要确定哪些自动化测试的软件是现成的那些自动化测试工具是需要自己开发的。因此在开始执行测试之前,在测试计划中就要对测试用例进行一个评估,将测试用例分成自动化和手工测试两类。然后根据测试的内容选择对应的测试工具,或者自己开发。在评估的过程当中一般依据这样的规则:
        可以自动化测试的:
1. 具有良好定义的测试策略和测试计划(知道要测试什么,知道什么时候测试)
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
依赖于特定体系结构的特殊测试工具,常见于嵌入式环境
 
        这些类型的软件对一些大型的软件来讲并不完全能满足要求,因此在这样情况下,在经费和时间允许的条件下,测试团队还需要根据自己的需求开发适合自己产品的自动化测试脚本或测试工具。如何开发自己的测试工具将在后续文章中讲述.

原文转自:http://www.ltesting.net