嵌入式系统中的一大难题是事件的时序或位序引起的故障重现性。通过控制事件在队列中传输的位序,可以测试和重现动作的排序。当然,除观察事件外,事件队列的接口还要允许事件的重新排序。
c. 数据采集
数据采集接口可用于考察测试案例之前和之后的状态。这对于确定和验证系统的最终状态(这是评价测试结果的一部分)特别有用。
测试仪器的另一优点是能捕捉真正的目标激励并在动态验证环境中重现。如果将测试仪器的某一部分留在最终产品中,它就可以像飞机上的“黑匣子”一样记录系统状态和输入。
d. 模仿
为了在动态验证过程中有效地单独测试域,必须完全了解域边缘的接口。针对域定义的测试案例通常会使用这一接口作为域的初始激励。测试案例和激励数据显然是专用的,但它使用的是由测试仪器提供的测试工具。
图1示出了一个测试驱动器,DVUI或其它与测试仪器代理程序相连的程序可模仿域的目标环境。作为测试一部分的类实例由驱动器进行初始化。测试驱动器施加测试激励并捕捉响应,还可通过捕获服务调用和替代返回值模仿其它域的响应。从被测域的角度讲,调用是一种输出,测试驱动器的响应能为被测域提供更多输入。测试驱动器利用被测域中的测试仪器捕获和替代消息。
从单个域到系统测试
这一测试方案可从单个域扩展到多个域的集合,并直至系统测试(图2)。利用测试驱动器模仿被测域的环境,单独域首先被隔离测试。然后,通过域服务的集合将多个域结合起来进行测试,测试驱动器仍然模仿被测域的环境。域之间以服务调用的形式相互联系的假设现在得到了验证。对测试边界间的接口和数据流应有充分的认识。
由于可以确信低级域中很少出现问题,可以在这些域中禁用测试支持仪器,以减少检测点的数目及提高吞吐量。一旦发现问题,可以重新起用测试支持,以收集个别测试案例的更多数据。
潜在的利用价值
在实现UML模型的过程中使用测试仪器,使得模型可在开发的测试阶段得以利用。开发者可以在模型级编写测试案例、执行和调试模型。在理想情况下,测试仪器应能在分析级提供充分的调试环境,应能对实例、事件和数据进行完全的互动操作,也应有主动激励系统的方法,而不仅仅是观察系统。测试仪器在UML建模阶段可以充分访问系统,因此可提高嵌入式系统的透明度,使集成测试更具可观察性、可控性和可测性。增强的可观察性可以探测到内部错误状态,而不会将错误传送到输出端。这样可将错误在离故障点更近的地方隔离出来,从而简化测试案例的开发,并缩短调试时间。
一旦出现可充分互动的分析调试器,就有可能通过增加批处理功能进一步提高质量和生产率。这种批处理能力可以进行自动回归测试、自动采集故障测试案例的数据或应用随机的测试和事件队列获取更多的分析结果。
作者简介:
Gregory Eakman是Pathfinder Solutions公司的首席顾问,现在波士顿大学攻读基于模型的软件自动化测试博士学位。他已成功地将基于模型的软件工程运用到不同的应用中。可通过grege@pathfindersol.com与其联系。
适用于目标管理结构的统一建模语言UML
统一建模语言(UML)对软件系统进行详细说明、形象化处理、架构建立和文挡管理的语言,也适用于业务建模和其他非软件系统。UML是在大型和复杂系统建模过程中形成的行之有效的最佳工程语言的集合。
目前,下列公司推出支持UML语言的产品:Rational Software、Microsoft、Hewlett-Packard、Oracle、Sterling Software、MCI Systemhouse、Unisys、ICON Computing、IntelliCorp、i-Logix、IBM、ObjecTime、Platinum Technology、Ptech、Taskon、Reich Technologies 以及Softeam。
在构造或创新面向工业控制的软件系统之前,建立软件模型恰如为大型建筑规划蓝图一样。
优良的模型不仅对于项目组之间的沟通非常重要,而且能够确保结构的坚固性。随着系统的复杂性不断增加,建模技术的重要性也日益增加。影响项目成败的原因很多,但是严格的建模语言标准是项目开发成功所必需的条件之一。
在UML诞生之前,实际上并没有明确的主导建模语言。用户要选择在表达能力上差异很小的多种相似的建模语言。大部分建模语言具备共同的表达符号,尽管它们之间存在细微的差异。
这些差异并没有提升建摸语言的能力,相反,它妨碍用户采用形象化的建模语言。
UML之所以适用于目标管理结构OMG(Object Management Architecture),是因为它通过标准化的技术支持与互操作性和便携性有关的基本设计任务。
UML建立在OMT、Booch、OSSE和其它重要的建模语言的基础之上,只要掌握OMT、Booch和OSSE三种语言之一,经过短期培训就能够掌握UML。UML的主要好处在于:确保软件开发项目的成功;不必因项目或组织变更而重新接受培训和重新选择设计工具,降低成本;为工具、过程和域的集成提供了一个环境;让开发工程师能集中精力考虑设计问题。
参考文献
Pathfinder Solutions, “MBSE Software Engineering Process”, February 2000: www.pathfindersol.com/download.html.
Pressman, Roger S.,“Software Engineering-A Practitioner''s Approach”, 3rd Edition. New York: McGraw-Hill, 1992.
Object Management Group, “The Unified Modeling Language" Specfication”, November 1999: www.omg.org.