有助于提高测试员观察或控制软件操作能力的任何功能都是对测试性的改进。有人常常要我们列出潜在的功能,以下就是这些功能:
【资料图】
访问源代码。很多公司不允许测试员修改源代码,但是可以查看源代码。能够检查源代码控制系统中的变更记录特别重要。
日志。记录错误消息、错误源、使用剖面、资源使用、系统消息和协议通信。可以定义记录的不同级别。在被测产品所使用的组件中,可能已经有了日志机制。程序员使用日志文件辅助调试,测试员使用日志文件更快地捕获程序错误,分析程序错误模式,在错误报告中提供详细信息,评估测试覆盖率,收集客户使用信息,并掌握更多被测软件的知识。
诊断。诊断可对潜在问题发出警告。断言就是一个例子。数据完整性检查检验数据内部是否一致。代码完整性检查检验程序是否被覆盖或修改。内存完整性检查检验是否根据分配情况使用内存。与日志结合起来可以构成功能很强的工具,使测试员在检测到错误时能够进入到调试模式,或卸出程序信息。
错误模拟。被测产品有内部状态,其中很多状态可能很难进入,特别是不可重现和系统的问题。很多错误状态都是这种情况。软件应该能够从媒体错误、内存或外存不足、网略延迟和终端连接,以及类似的问题中恢复。测试员会发现很难创造这些条件,特别是不可重现和系统问题。可以在产品软件的下层替代错误状态触发器,以便于测试错误处理情况(也有在被测产品外部模拟这些错误的工具( Houlihan 2001))。
测试点。能够在系统的不同点上检查或修改数据。
事件触发器。当内部任务开始和结束时发出通知,有助于帮助同步测试。
读入老的数据格式。在产品开发过程中,数据格式可能会发生多次变化。提供把数据转换为新格式的手段,以免重新生成数据。
测试接口。编程接口可为测试性带来重要好处。有些产品会为这个目的的事迹增加编程接口。
定制控件支持。使GUI测试工具能够使用定制用户界面控件,这也许是最需要的可测试性功能之一。
允许多实例。允许在同一台计算机上运行多个客户或代理,即使在现场并不支持这样的配置。这会使测试员能够在小实验室中模拟大网络。
很多软件产品都拥有没有写入文档的可测试性功能,程序员增加这些功能是为了辅助自己的测试和调试。可向程序员询问。