如何开发出可测性更强的软件产品

发表于:2009-02-03来源:作者:点击数: 标签:开发软件
摘要 本文提供若干实用的建议,帮助项目组 开发 出可测性更强的软件产品。 本文对可测性(Testability)的定义为可见性和可控制性。可见性是我们能观察被测软件的状态、输出、资源利用和其它影响的程度;可控制性是我们能向被测软件输入或把它设置到某个特定
摘要
本文提供若干实用的建议,帮助项目组开发出可测性更强的软件产品。
本文对可测性(Testability)的定义为可见性和可控制性。可见性是我们能观察被测软件的状态、输出、资源利用和其它影响的程度;可控制性是我们能向被测软件输入或把它设置到某个特定状态的程度。
 
可见性基础
可见性的基本方面是能访问代码、设计文档和更改记录。这些是对大部分可测性进行改进的前提条件。
测试人员需要知道如何阅读代码,以及如何理解设计模型所采用的语言。在测试人员能提出测试接口、错误注入钩子或其它可测性特性之前,他们需要对系统设计有基本的理解。
可测性的改进需要测试人员和开发人员都使用共同的语言。
 
详细的输出
很多程序都有详细输出模式,这是可测性的很好的例子,它让人可以看到软件运转的细节。Unix的Mail程序就是其中一个例子:
 
如果没有断言,你可能不会注意到bug已经发生,因为内部数据可能已经被破坏,但是只有当进一步的测试访问到这些数据时才出错。断言也可以帮助定位错误出现的代码位置。
 
查找内存泄漏问题的有效的方法是监视内存使用。有很多工具可以做到这点。如果能监视内部内存设置会使测试更容易。例如在Netscape输入“about:config”能把所有设置输出。对于于配置问题的追踪会有很大帮助,尤其是某些问题只是在特定的机器才会出现。
[Page]
 
有时候测试人员需要访问内部数据。“测试点”可以让测试人员在系统的某个点检查数据或插入数据。这种方法对于数据流应用程序特别有用。
错误注入特性可以帮助测试错误处理代码。有很多环境错误是很难让它出现,特别是以可预见、可重复的方式出现的。例如:磁盘满、坏介质、断网等。错误注入技术就是加入钩子用于注入这些错误并触发软件的错误处理代码。
 
另外一种错误注入的方法是使用工具HEAT或Holodeck,它们扮演的是程序和操作系统之间的中介者角色。由于它所处的位置,所以它可以控制操作系统给程序提供的各种服务,包括内存、磁盘空间、网络等,从而触发各种环境问题,看程序的处理能力如何。
 
测试接口
手工测试比较容易使用GUI接口。自动化测试则使用编程接口容易些。
Excel的早期版本包含一个测试接口。因为数学计算的准确性是一个关键的需求,所以能用自动化的方式频繁地运行测试变得非常重要。后来Excel的测试接口公开给用户,我们现在都可以通过VB来访问。
 
用户接口可测性
GUI自动化测试工具面临的一个普遍问题是个性化控件。个性化控件是指那些不被GUI测试工具所识别的控件。
评估和确保软件产品在指定的GUI测试工具下的可测性的过程如下:

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