软件自动化测试
软件工程的测试阶段是软件开发过程中工作量最大的阶段之一,随着软件测试工作日益得到重视,测试工具的应用已经成为普遍趋势。测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,别外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具。其他测试工具(专用测试测试,如针对数据库测试的工具,对应用性能进行优化的工具等)。
表格
1
测试工具
工具类型
|
描述
|
测试过程生成器
|
根据需求
/
设计
/
对象模型生成测试过程
|
代码(测试)覆盖率分析器和代码测量器
|
确定未经测试的代码和支持动态测试
|
内存泄漏检测
|
用来确认应用程序是否正确地管理了它的内存资源
|
度量报告工具
|
读取源代码并显示度量信息,例如数据流、数据结构和控制流的复杂度。能够根据模块、操作数、操作符和代码行的数量提供代码规模的度量
|
可使用性测量工具
|
用户配置、任务分析、制作原型和用户走查
|
测试数据生成器
|
产生测试数据
|
测试管理工具
|
提供某些测试管理功能,例如:测试过程的文档化和存储,以及测试过程的可追踪性
|
网络测试工具
|
监视、测量、测试和诊断整个网络的性能
|
GUI
测试工具(记录
/
回放工具)
|
通过记录用户与在线系统这间的交互,使
GUI
测试自动化,这样它们可以被自动回放
|
负载、性能和强度测试工具
|
用于负载
/
性能
/
强度测试
|
专用工具
|
针对特殊的构架或技术进行专门测试的测试工具,例如:嵌入式系统
|
测试工具的选择
建议从以下几个方面来权衡和选择
1.
功能
除了测试工具所提供的基本功能外,还可参考其它的功能需求,如报表功能、测试工具的集成能力、操作系统和开发工具的兼容性。
2.
价格
自主制作一个工具
有些情况下,我们需要自己制作测试工具:
l
操作系统不兼容:市场上没有现成的工具与正在使用的各种操作系统兼容,所以需要考虑制作一个在专门的测试环境下运行的定制工具。例如:
Linux
下的消耗
CPU
的工具。
l
应用程序不兼容:正在测试的应用程序包含一个特殊元素,如一个自定义的控件或第三方插件,它和市场上存在的任何记录
/
回放工具都不兼容。例如:公司产品:录像播放器。
l
专项测试的需要:为了取得最佳的测试效果,以便对不能使用
GUI
测试工具的,复杂的和关键的组件进行自动测试。例如:
agent
报文捕获率的测试。
自动测试:选择最好的实践
不要过分依赖记录
/
回放工具。
功能性测试工具(也称为记录
/
回放工具),只是无数可供利用的测试工具中的一种。记录
/
回放机制能够增强测试工作的效果,但是我们不应该只使用这一种自动测试方法。即使使用最好的记录
/
回放自动测试技术,它们还是有局限性。
1
)硬编码的数值。
2
)非模块化的、不易维护的脚本。
3
)缺乏可重用性的标准。
尽量使回归测试自动化
回归测试确定的是:在修改先前的错误或者向应用程序添加新功能时,是否引放了新的错误,这些错误影响以前运行正常的功能。回归测试应该发现这些新引入的缺陷。
了解自动测试工具对测试工作的影响
自动测试工具只是解决方案的一部分,它们不能解决所有测试工作中的问题。自动测试工具决不能代替指导测试工作的分析技能,也不能替代手工测试。我们必须把自动测试看作是对手工测试过程的补充。
自动化测试可以帮助测试人员做到:
(
1
)提高测试执行的速度;
(
2
)提高运行效率;
(
3
)保证测试结果的准确性;
(
4
)连续运行测试脚本;
(
5
)模拟现实环境下受约束的情况。
自动化测试不能做到的是:
(
1
)所有测试活动都可以自动完成;
(
2
)减少人力成本;
(
3
)毫无成本的得到;
(
4
)降低测试的工作量。
参考文献:
《软件评测师考试考点分析与真题详解》
—
电子工业出版社
《有效软件测试
—
提高软件测试的
50
条建议》
—
清华大学出版社
《系统分析师常用工具》
—
清华大学出版社