每一种创伤,都是一种成熟;生活不是单行线,一条路走不通,你可以转弯;世上没有绝望的处境,只有对处境绝望的人

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

上一篇 / 下一篇  2010-06-26 17:34:28 / 个人分类:嵌入式测试

 

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

 

  使用测试仪器的应用结构

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

 

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

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

  数据访问

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

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

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

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

  动态行为

 

  在系统执行过程中进行着很多活动:生成和删除实例并交换事件;生成和删除关联;调用域服务;设置并触发定时器。所有这些活动都应在集成测试中注意。根据实现的不同,每个活动都会触发交互的中断点或踪迹输出。

  DVUI应能将中断状态发送给代理程序。中断可让DVUI在执行过程中交互式地浏览该点的系统状态,并在必要时调整实例和属性。踪迹点也可由DVUI设置。在踪迹点,描述触发活动的信息传送给DVUI并存在日志文件中。踪迹点是在高层追踪系统执行情况的好方法。它们甚至可以后处理,以生成描述执行情境的序列图,也可用于回归测试。

  

  中断和踪迹点控制可以通过发布-订阅模式实现。代理程序可支持所有类型的应用执行活动的注册。DVUI可以订阅这些活动,如某一特定实例的生成或状态机变换的初始化。当活动发生时,应用代码内的测试仪器通知代理程序,代理程序再通知订阅者执行相应的动作、中断或踪迹。

  用通信状态机建模的系统实现包含一个事件队列,由对象从域外发送的事件放在队列中。事件环不断执行,将下一事件拉出队列,并传送至执行特定行为的目的实例。采用这一实现方法,事件环成为监控系统执行的中枢。

  在事件环内加入测试仪器接口可监视经过的事件并查出接收实例应执行的下一状态。这些状态可与DVUI设置的中断和踪迹点状态相比较。

  事件环中的测试仪器还应支持单事件步进模式。在这种模式下,DVUI命令应用执行一个动作,并在下一动作之前停止。


TAG:

 

评分:0

我来说两句

唐唐心语

唐唐心语

古龙说过,爱笑的女孩子,运气不会太差。 走别人的路,让别人无路可走 沉淀再沉淀、倒空再倒空、归零再归零 拿得起,放得下,是举重,拿得起,放不下,是负重。

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 9662
  • 日志数: 21
  • 图片数: 2
  • 建立时间: 2010-01-16
  • 更新时间: 2012-10-31

RSS订阅

Open Toolbar