高质量嵌入式系统开发的集成测试技术

发表于:2010-6-29 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  测试仪器与源代码调试器相似

  由于UML模型表示的是完整的可执行系统模型,因而可自动转换成实现。对模型应用一套转换法则,其情况与编译器转换高级编程语言相似。

  语言编译器和模型编译器的相似之处在于:模型编译器可在所生成的代码中加入测试仪器代码,正如语言编译器可以为可执行程序加入符号表和调试信息一样。为两种编译器加入测试仪器可以使开发者在开发的同一抽象级进行测试和调试。高级语言的开发人员大都不愿在调试应用程序时查看汇编或机器代码。类似地,对于UML模型,开发者也希望在模型的较高抽象级进行调试,而不愿调试实现代码。

  除程序代码外,转换方法还要利用UML模型信息来生成代码,以支持测试。测试仪器代码并未给软件增加额外的功能,只是提高了可测试性。测试仪器只提供对测试的支持,但在软件正常运行时却不能使用。

  由于模型转换期间加入的测试仪器仅遵循UML模型执行语义,因而它可提供适用于任何应用的通用测试工具。可以在编译时将测试仪器分离出来,也可以在没有测试仪器的情况下重新生成代码,情况与编译器处理调试信息类似。

  在人工实现的系统中,所需的测试仪器级别依赖于应用的复杂度、测试方法、目标环境、可用内存和其它工具的支持,以及可用的时间等。因此,必须权衡这些因素以按期推出高质量的产品。在UML模型中,必须识别重要的数据值、属性、输入和控制点。对每一项都应加入相应的测试仪器访问接口。下文将叙述如何利用转换方法添加测试仪器,其原理对手工实现同样适用。

  使用测试仪器的应用结构

  UML测试结构分成两个部分,即动态验证用户接口(DVUI)和测试仪器代理程序。DVUI负责为用户显示信息并接受用户命令,可由自动化批接口(batch interface)代替。

  测试仪器代理程序是应用系统和DVUI之间的接口。代理程序和DVUI间的通讯机制可能是任何协议,如TCP/IP、RS-232等。代理程序通过所生成的测试仪器代码汇集信息和通信。它与测试仪器相连,以设置和获取实例数据,并支持DVUI关于中断和踪迹点的通知。它还与事件处理相连,可提供执行控制、系统激励、中断点和步进等功能。

  数据测试仪器代码是在转换过程添加到应用系统的,用以监视和更新目标实例的数量、属性值、事件队列数量、事件数据项值和服务参数。

  数据访问

  在集成测试和调试期间,评价系统状态是一个重要步骤。由于系统状态分布在很多类实例中,DVUI应能获取系统的所有实例及属性值。

  比较直接的方法是列出系统中实例的清单。每个类必须包括一些结构来保存该类的实例,通常是链接清单。在构造器(constructor)内,新的实例加入清单,而在解构器(destructor)内,实例则从清单中删除。

  为了查看实例的状态,实例还可支持ASCII串行化,与“Java toString()”方法类似。“toString()”方法将每一实例的属性值和与之有关的实例放入字串中。然后,字串就由应用的代理程序传送至 DVUI进行显示。为了设置实例的数据,还要支持“fromString()”方法以打开数据并正确地进行转换为属性赋值。

  实例状态机的状态在调试过程中也应引起注意,因为它代表了系统控制流程的一个方面。由于它可影响实例对事件的响应,所以很特殊。将状态机的当前状态与其它类属性分开也很有用。

53/5<12345>
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号