CN101571802B - 一种嵌入式软件测试数据可视化自动生成方法及系统 - Google Patents

一种嵌入式软件测试数据可视化自动生成方法及系统 Download PDF

Info

Publication number
CN101571802B
CN101571802B CN2009101477680A CN200910147768A CN101571802B CN 101571802 B CN101571802 B CN 101571802B CN 2009101477680 A CN2009101477680 A CN 2009101477680A CN 200910147768 A CN200910147768 A CN 200910147768A CN 101571802 B CN101571802 B CN 101571802B
Authority
CN
China
Prior art keywords
test
data
modeling
sut
system under
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009101477680A
Other languages
English (en)
Other versions
CN101571802A (zh
Inventor
殷永峰
刘斌
杨顺昆
陈皓晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2009101477680A priority Critical patent/CN101571802B/zh
Publication of CN101571802A publication Critical patent/CN101571802A/zh
Application granted granted Critical
Publication of CN101571802B publication Critical patent/CN101571802B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种嵌入式软件测试数据可视化自动生成方法及系统。本方法是利用事实上的工业标准——统一建模语言UML的广泛性和灵活性,并对UML进行实时扩展,并引入场景技术,实现以可视化的方式自动生成嵌入式软件测试数据,开发的测试数据自动生成系统能够将测试数据自动转化为针对特定测试平台所需的测试脚本,测试脚本的运行可驱动测试运行,实现嵌入式软件自动化测试。

Description

一种嵌入式软件测试数据可视化自动生成方法及系统
技术领域
本方法属于嵌入式软件自动化测试领域、测试数据生成领域。
背景技术
作为上个世纪的一个伟大发明,计算机正深刻影响和改变着人类的生活。嵌入式系统无疑是计算机应用领域里一个十分活跃的分支,其在军事、工业、医疗、教育和金融等各个领域发挥着越来越重要的作用。伴随这些嵌入式系统的规模不断增长和复杂度不断增大,暴露出的问题也逐渐增多,软件的质量和可靠性成为制约系统安全的关键因素之一。在嵌入式系统的研制或使用过程中,大量的故障都是由于软件的因素造成的,如航天器发射、航空器试飞的失事原因60%由软件引起,并且已造成了非常严重的后果,影响研制进度,甚至造成人员伤害和设备损害。当前,越来越多的目光投向了嵌入式软件的测试领域,为嵌入式系统软件测试提供了广阔的前景。
由于嵌入式系统具有资源短缺、实时性要求高等特点,这就要求嵌入式软件精简高效,且稳定可靠,同时也造成了针对嵌入式软件的测试难度大大增加。目前,对于嵌入式软件测试支持的环境和工具很少,测试手段大多都是以手工编写测试数据(测试用例/测试脚本)为主,效率很低,测试质量不高。因此,随着嵌入式系统的进一步发展,迫切需要一种更快速、更有效的自动化测试技术,自动地生成大量的符合规范测试数据(测试用例/测试脚本),通过提高测试效率,来有效地提高软件质量和可靠性。
目前,国内外众多嵌入式软件测试数据的主要生成手段是手工方式,部分自动生成测试数据的方法往往不能满足测试充分性要求,或无法满足嵌入式软件测试数据对实时、并发等方面的描述机制,导致测试数据的适用性差,测试效率低。要实现嵌入式软件测试数据的自动化生成,必须从解决如下几个方面的问题:
1)能够自动化生成测试数据,并可对被测嵌入式系统的静态和动态特征进行完整描述,且生成的测试数据能够满足嵌入式软件对实时、并发等特性描述的要求。
2)应开发相应的测试数据生成系统,且该系统能够以操作简便、易快速掌握的、可视化的方式对测试过程进行建模,以便快速、方便地生成符合要求的测试数据。
3)应基于当前业界普遍采用的建模语言,以加快测试人员的掌握速度,缩短测试人员的培训时间,提高测试效率。
发明内容
本发明公开了一种嵌入式软件测试数据可视化自动生成方法,其特征在于包括以下步骤:
(1)首先加载测试方案,所述测试方案是根据被测嵌入式软件系统的特点以及测试要求,在确定测试数据生成所需的静态和动态信息之后生成的;
(2)对被测系统静态建模,通过扩展的UML类图完成针对被测系统测试数据生成中的静态建模;根据所述加载测试方案,完成对所述被测系统及其周围交联设备的建模;
(3)对被测系统动态建模,其进一步包括测试活动建模和测试活动中的动作建模;
(4)在完成所述述静态建模和动态建模之后,自动提取测试场景并生成测试数据;
(5)生成测试数据的XML描述;
(6)将已自动生成的以XML描述的测试数据转化为特定测试平台所需的测试脚本;
(7)根据所述特定测试平台所需的测试脚本,实现在特定测试平台的自动运行,驱动测试过程,完成嵌入式软件的自动化测试。
所述测试要求包括可测功能、性能、安全性和接口信息。
所述静态建模的控件包括静态画布中的鼠标,被测系统,与被测系统相关的交联设备,单方向连接以及双方向连接。
所述动态建模的控件包括动态画布中的鼠标的,具体的测试任务,测试任务集,单线程下顺序连接,多线程下的顺序连接以及多线程的开始或是结束。
通过对嵌入式设备类的继承及实例化完成所述被测系统及其周围交联设备模型的建立工作。
所述嵌入式设备类包括判断是否为被测系统或者交联设备的属性,设备标识属性和设备间通讯接口变量属性,以及表示初始化设备的操作,表示启动设备运行的操作,表示挂起设备的操作,表示重启动设备的操作和表示停止设备的操作。
所述测试活动建模是利用UML活动图完成测试活动的建模,同时对UML活动图进行扩展以便实现对时钟和受时间约束的行为的描述。
对UML活动图的扩展包括在活动图迁移边上加入约束条件,以及在迁移中加入条件表达式;所述约束条件包括延时操作,所述条件表示式表示功能测试数据的前置条件或者后置条件。
所述测试活动中的动作建模是利用UML顺序图描述被测系统与其交联设备的数据交互过程,同时对UML顺序图进行扩展以便对被测系统与仿真模型之间的数据传递过程进行精确描述。
对UML顺序图的扩展包括增加Transfer构造型并添加标记值,用于对嵌入式系统对象之间数据传输行为建模,应用于顺序图的消息或调用,其中传输的数据类型必须和静态建模时对象间的I/O接口类型保持一致,传输的数据有确切的取值,是仿真模型中该I/O接口接口变量的一个实例
所述Transfer构造型的标记值包括源设备值,目标设备值,数据传递条件值,发生时间值以及I/O类型传递数据值。
对UML顺序图的扩展还包括通过扩展约束的方式来表达消息之间的时间约束信息。
所述自动提取测试场景并生成测试数据的步骤,进一步包括:
(1)遍历活动图生成测试场景,得到所有可能的活动序列;
(2)根据测试场景,生成测试数据。
所述遍历活动图包括:
在活动图上根据节点的顺序号及节点的类型来跟踪得到测试场景路径;
在遍历场景路径的过程中,访问一个节点后,先找到该节点可能的直接后继,然后采用深度优先的方法选择一个直接后继继续遍历,当到达一个没有后继的节点时,就完成一个场景路径的遍历,然后回溯到下一个直接后继,继续遍历,直到所有的直接后继都已经被访问,则完成了所有的场景路径的遍历;
所述生成测试数据进一步包括:
对测试场景对应的顺序图进行分析,按照顺序图的生命线方向依次提取出每个消息;
如果某个对象属于被测系统,即如果表示是否为被测系统或者交联设备的属性的IsSUT属性值被设定为TRUE,则不用提取该对象生命线方向的所有自身消息;
针对每个事件提取出与其相关的信息,得到该测试场景的测试数据,然后将这些数据进行有效组合得到测试数据,所述相关的信息包括事件发生的事件,事件的源设备对象、目标设备对象,事件中传递数据的内容。
所述测试脚本包括以C语言或Tcl语言描述的测试脚本。
本发明还公开了一种嵌入式软件测试数据可视化自动生成系统,包括:
用于加载测试方案的装置,所述测试方案是根据被测嵌入式软件系统的特点以及测试要求,在确定测试数据生成所需的静态和动态信息之后生成的;
用于对被测系统静态建模的装置,其通过扩展的UML类图完成针对被测系统测试数据生成中的静态建模;根据所述加载测试方案,完成对所述被测系统及其周围交联设备的建模;
用于对被测系统动态建模的装置,其进一步包括用于测试活动建模的装置和用于测试活动中的动作建模;
用于在完成所述述静态建模和动态建模之后,自动提取测试场景并生成测试数据的装置;
用于生成测试数据的XML描述的装置;
将已自动生成的以XML描述的测试数据转化为特定测试平台所需的测试脚本的装置;
根据所述特定测试平台所需的测试脚本,实现在特定测试平台的自动运行,驱动测试过程,完成嵌入式软件的自动化测试的装置。
所述测试要求包括可测功能、性能、安全性和接口信息。
所述静态建模的控件包括静态画布中的鼠标,被测系统,与被测系统相关的交联设备,单方向连接以及双方向连接。
所述动态建模的控件包括动态画布中的鼠标的,具体的测试任务,测试任务集,单线程下顺序连接,多线程下的顺序连接以及多线程的开始或是结束。
通过对嵌入式设备类的继承及实例化完成所述被测系统及其周围交联设备模型的建立工作。
所述嵌入式设备类包括判断是否为被测系统或者交联设备的属性,设备标识属性和设备间通讯接口变量属性,以及表示初始化设备的操作,表示启动设备运行的操作,表示挂起设备的操作,表示重启动设备的操作和表示停止设备的操作。
所述用于测试活动建模的模块,利用UML活动图完成测试活动的建模,同时对UML活动图进行扩展以便实现对时钟和受时间约束的行为的描述。
对UML活动图的扩展包括在活动图迁移边上加入约束条件,以及在迁移中加入条件表达式;所述约束条件包括延时操作,所述条件表示式表示功能测试数据的前置条件或者后置条件。
所述用于测试活动中的动作建模的装置,利用UML顺序图描述被测系统与其交联设备的数据交互过程,同时对UML顺序图进行扩展以便对被测系统与仿真模型之间的数据传递过程进行精确描述。
对UML顺序图的扩展包括增加Transfer构造型并添加标记值,用于对嵌入式系统对象之间数据传输行为建模,应用于顺序图的消息或调用,其中传输的数据类型必须和静态建模时对象间的I/O接口类型保持一致,传输的数据有确切的取值,是仿真模型中该I/O接口接口变量的一个实例
所述Transfer构造型的标记值包括源设备值,目标设备值,数据传递条件值,发生时间值以及I/O类型传递数据值。
对UML顺序图的扩展还包括通过扩展约束的方式来表达消息之间的时间约束信息。
所述用于自动提取测试场景并生成测试数据的装置,进一步包括:
用于遍历活动图生成测试场景,得到所有可能的活动序列的装置;
用于根据测试场景,生成测试数据的装置。
所述用于遍历活动图生成测试场景,得到所有可能的活动序列的装置包括:
用于在活动图上根据节点的顺序号及节点的类型来跟踪得到测试场景路径的装置;
遍历装置,用于在遍历场景路径的过程中,访问一个节点后,先找到该节点可能的直接后继,然后采用深度优先的方法选择一个直接后继继续遍历,当到达一个没有后继的节点时,就完成一个场景路径的遍历,然后回溯到下一个直接后继,继续遍历,直到所有的直接后继都已经被访问,则完成了所有的场景路径的遍历;
其特征在于所述用于根据测试场景,生成测试数据的装置包括:
用于对测试场景对应的顺序图进行分析,按照顺序图的生命线方向依次提取出每个消息的装置;
判断装置,用于判断如果某个对象属于被测系统,即如果表示是否为被测系统或者交联设备的属性的IsSUT属性值被设定为TRUE,则不用提取该对象生命线方向的所有自身消息;
用于针对每个事件提取出与其相关的信息,得到该测试场景的测试数据,然后将这些数据进行有效组合得到测试数据的装置,所述相关的信息包括事件发生的事件,事件的源设备对象、目标设备对象,事件中传递数据的内容。
所述测试脚本包括以C语言或Tcl语言描述的测试脚本。
附图说明
图1是本发明所提出的嵌入式软件测试数据可视化自动生成过程;
图2是本发明所开发的嵌入式软件测试数据自动生成系统的主框架界面;
图3是扩展顺序图的时间标记。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步详细、深入地描述,应当理解,此处所描述的实施仅用于说明和解释本发明,并不用于限定本发明。
基于事实上的工业标准——统一建模语言UML进行实时扩展,从构造型(Stereotype)标记值(Tagged Value)、约束(Constraint)三个方面进行扩展,并结合UML的多种图(Diagram)(如类图、顺序图和状态图)对嵌入式软件测试过程进行建模,以提高本发明的适用性和有效性,主要方法如下所述:
静态建模方面。为了让UML类图应用于嵌入式软件测试领域,本发明对UML类图进行了扩展,使之能更好的描述被测嵌入式软件系统与其交联环境之间的联系。本发明通过增加嵌入式设备描述类和嵌入式设备之间的关联关系以解决嵌入式软件静态建模问题。
动态建模方面。采用分层的方式来描述被测嵌入式软件的行为。具体说明如下:
本发明采用分层的扩展UML活动图对测试流程进行描述,顶层的主活动图描述SUT的主要工作流程,底层的各子活动图由主活动图中的活动节点进一步展开,用于描述该活动节点中的子工作流程。测试数据的生成过程对UML各层的活动图进行搜索和遍历,提取出一个个独立的、从开始节点到结束节点之间针对不同功能的执行路径,因此活动图必须要包含SUT所有可能的工作路径。
本发明采用扩展的UML顺序图描述嵌入式系统中的设备交互过程,从微观上描述各被测功能实现的细节,如被测系统与交联设备、交联设备之间的数据通讯等。
在测试数据自动生成过程中,本发明引入场景技术,通过提取上述建模过程的测试场景,并结合搜索算法,自动生成测试数据。测试场景是由上述动态建模过程中的一系列相关活动组成,对应于活动图中的一条典型的执行路径。由于本发明的活动图是分层组织的,子活动图中可能存在多条路径,因此,采用搜索算法获取测试场景,并结合测试场景路径中的静态信息和预期输出信息,可自动生成测试数据。此外,本发明还对所生成测试数据的覆盖性准则(含节点覆盖准则,转移边覆盖准则及逻辑路径覆盖准则)等进行了研究,以保证测试数据的充分性。
本发明生成的测试数据以通用标记语言XML进行存储,测试人员可通过二次开发,按照特定测试平台的要求,将测试数据转化为特定平台所需的测试脚本。
图1中展示了本发明提出的嵌入式软件测试数据可视化自动生成过程及其支撑环境的结构,具体说明如下:
1)加载测试方案F01。本部分实现测试方案的加载功能,是后续静态建模和动态建模的基本依据,实现该功能的前提根据对被测嵌入式软件文档(如软件需求规格说明及软件接口控制文档)的分析,按照被测软件的特点以及测试要求,获取被测软件的可测功能、性能、安全性、接口等信息,明确测试数据生成所需的静态和动态信息,形成测试方案,
2)被测系统的静态建模F02。本发明扩展的UML类图完成针对嵌入式软件测试数据生成中的静态建模,在加载测试方案的基础上,完成对被测系统及其周围交联设备进行建模,通过对嵌入式设备类的继承及实例化完成被测系统及其周围交联设备模型的建立工作。基于类图扩展的静态建模为后续进行动态建模奠定基础。测试数据自动生成系统中用于静态建模的主要控件元素如表1所示。表2给出了已扩展的嵌入式设备类<<Equipment>>的属性和操作。
Figure G2009101477680D00071
表1用于静态建模的主要控件元素
Figure G2009101477680D00072
表2嵌入式设备类<<Equipment>>的属性和操作
3)测试过程的动态建模F03。本部分的主要是完成测试过程的动态建模,用于动态建模的控件元素如表3所示。下面分别从测试活动和测试动作两个方面对动态建模过程和方法进行阐述。
Figure G2009101477680D00081
表3用于动态建模的主要控件元素
(1)测试活动建模。
UML活动图为测试活动建模提供了较好的基础,利用活动图可完成绝大部分测试活动的建模工作。此外,为了更好地完成嵌入式软件测试活动的建模,本发明还对UML活动图进行了扩展,解决了UML活动图中有关时钟和受时间约束的行为的描述问题。表4给出了UML活动图的扩展说明。
Figure G2009101477680D00082
表4UML活动图的扩展说明
(2)测试活动中的动作建模
传统UML顺序图已经能够很好地描述嵌入式系统被测系统与其交联系统数据交互过程,为了更好地刻画交互行为的时间和数据特性。本发明对UML顺序图进行了扩展,用于描述被测系统与仿真模型之间的数据传递过程的精确描述。
由于静态建模中活动对象之间传递的数据必须满足两者之间的数据协议类型,且数据传递往往要满足严格的时间约束。为此,本发明采用扩展构造型并添加标记值,来补充表达嵌入式系统数据传递的特性。具体说明如下:
增加<<Transfer>>构造型,用于对嵌入式系统对象之间数据传输行为建模,应用于顺序图的消息或调用。传输的数据类型必须和静态仿真建模时对象间的I/O接口类型保持一致,传递的数据有确切的取值,是仿真模型中该接口变量的一个实例。加入了以下标记值:
Transfer.sender=value//源设备
Transfer.target=value//目标设备
Transfer.cond=expression//数据传递条件
Transfer.time=value//发生时间
Transfer.IOtype=value//I/O类型
Transfer.data=value//传递数据
从以上添加的标记值可以看出,消息的传递条件和传递时间就是该消息发送的一种时间(或其他)约束。
此外,本发明还通过扩展约束[Condi tion:Expression]的方式来表达消息之间的时间约束信息。如图3所示的一种雷达控制系统中的扩展顺序图表明,Msg_Response必须在Msg_Detection执行之后的5毫秒之内发生。
4)测试数据生成F04
在完成上述静态建模和动态建模之后,下面要做的工作是自动提取测试场景并生成测试数据。主要步骤如下:
步骤1:遍历活动图生成测试场景,也即得到所有可能的活动序列。
活动图的各种节点在构建活模型的时候,都依照一定的规则分配了节点顺序号,节点顺序号隐含地表示了节点之间的偏序关系,因此在活动图上根据节点的顺序号及节点的类型来跟踪得到测试场景路径。下一步是完成对活动图的遍历。首先将活动图中的循环看成条件判断,在遍历场景路径的过程中,访问一个节点后,先找到该节点可能的直接后继,然后采用深度优先的方法选择一个直接后继继续遍历,当到达一个没有后继的节点时,就完成一个场景路径的便遍历,然后回溯到下一个直接后继,继续遍历,直到所有的直接后继都已经被访问,则完成了所有的场景路径的遍历。这样的所有节点我们都至少遍历一次,包括循环在内的每个条件分支都至少遍历了一次,也避免了路径的穷举覆盖。对于并发结构,可通过随机组合并发活动来生成活动序列,在单条路径上保证活动执行的先后顺序不变,其它顺序则是任意的。
步骤2:根据测试场景,生成测试数据。
在活动图上遍历生成测试场景的时候,很容易基于路径覆盖准则,获取相应场景执行过程中的控制流、数据流,分支节点的条件,然后就能确定每一路径所需要的输入和状态条件。当满足该路径条件时,系统就会沿着该路径表示的活动执行。生成测试数据主要有以下几个步骤:
对测试场景对应的顺序图进行分析,按照顺序图的生命线方向依次提取出每个消息。
如果某个对象属于被测系统,也就是该对象对应的设备类中,IsSUT属性被设定为TRUE,则该对象生命线方向的所有自身消息,不用提取。
针对每个事件,提取出与其相关的信息,包括事件发生的事件,事件的源设备对象、目标设备对象,事件中传递数据的内容等等,也即得到了该测试场景的测试数据,然后将这些数据进行有效组合可得到测试数据。
5)测试数据的XML描述F05
XML(Extensible Markup Language)是W3C(The World Wide Web Consortium,WWW协会)定义的一种标记语言。XML提供了一种结构化的元数据表示方法,具有平台和语义无关性、开放性和可扩展性等特点。本发明提供了一种基于XML的测试数据存储方法。表5给出了自动生成的测试数据的XML存储格式,便于测试人员浏览、编辑所生成的测试数据。
<?xml version=″1.0″encoding=″GB2312″standalone=″yes″?><测试用例1><用例信息><编制人>XXX</编制人><生成时间>XXX</生成时间><用例编号>XXX</用例编号></用例信息><被测软件信息><软件名称>XXX</软件名称><编号及版本>Version1.0</编号及版本></被测软件信息><测试输入 单位=″XXX″><操作 名称=″XXX″><离散输入><步骤时间=″t=XXX毫秒″><分支约束条件=″XXX″><变量>文字描述=XXX</变量><变量>XXX</变量><变量>XXX</变量></分支></步骤></离散输入><预期结果/></操作></测试输入></测试用例1>
表5测试数据的XML存储格式
6)测试脚本转化程序F06。本系统将自动生成的测试数据以XML的格式存储,该格式便于测试人员掌握并实现浏览、编辑,为了更好的将生成的测试数据转化为特定的自动化测试平台所需的测试脚本(如C语言或Tcl语言描述的测试脚本),允许测试人员通过二次开发,将已自动生成的测试数据转化为特定测试平台所需的测试脚本。
7)交由自动化测试平台执行F07。将已生成的XML格式的测试数据转化为特定测试平台的测试脚本后,可实现在特定测试平台的自动运行,驱动测试过程,完成嵌入式软件的自动化测试。
本发明可以带来如下有益效果:
1)提高嵌入式软件测试的自动化水平。测试数据(测试用例/测试脚本)是嵌入式软件测试过程中最重要的阶段,它技术要求最高,耗时最长,本发明提供了一种自动化的测试数据生成方法,可以有效提高测试的自动化水平。
2)有效提高测试效率,减少测试费用,节约测试成本。本发明事实上的工业标准——统一建模语言UML,因此便于测试人员短时间内掌握并熟练应用。此外,已开发的测试数据生成系统具有可视化、操作简便的和简单直观的特点,也有利于测试人员拜托手工方式的低效率,从而提高测试效率,减少测试费用,节约测试成本。
3)提高测试数据的通用性、可移植性和可维护性。鉴于本发明自动生成的测试数据可按照特定的转换规则自动生成特定测试平台所需的测试脚本,因此可大大提高测试数据的用性、可移植性和可维护性。
4)具有重要的工程应用价值。鉴于本发明起源于实际工程应用需要,且已成功应用于工程实际应用,因此推广后具有重要的工程应用价值。

Claims (22)

1.一种嵌入式软件测试数据可视化自动生成方法,其特征在于包括以下步骤:
(1)首先加载测试方案,所述测试方案是根据嵌入式软件被测系统的特点以及测试要求,在确定测试数据生成所需的静态和动态信息之后生成的;
(2)对被测系统静态建模,其通过扩展的UML类图完成针对被测系统测试数据生成的静态建模;根据所述加载测试方案,完成对所述被测系统及其周围交联设备的建模;
(3)对被测系统动态建模,其进一步包括测试活动建模和测试活动中的动作建模,所述测试活动建模是利用UML活动图完成测试活动的建模,同时对UML活动图进行扩展以便实现对时钟和受时间约束的行为的描述,对UML活动图的扩展包括在活动图迁移边上加入约束条件,以及在迁移中加入条件表达式,所述测试活动中的动作建模是利用UML顺序图描述被测系统与其交联设备的数据交互过程,同时对UML顺序图进行扩展以便对被测系统与仿真模型之间的数据传递过程进行描述;
(4)在完成所述静态建模和动态建模之后,自动提取测试场景并生成测试数据;
(5)生成测试数据的XML描述;
(6)将已自动生成的以XML描述的测试数据转化为测试平台所需的测试脚本;
(7)根据所述测试平台所需的测试脚本,实现在测试平台的自动运行,驱动测试过程,完成嵌入式软件的自动化测试。
2.根据权利要求1中所述的方法,其特征在于所述测试要求包括可测功能、性能、安全性和接口信息,所述静态建模的控件包括静态画布中的鼠标,被测系统,与被测系统相关的交联设备,单方向连接以及双方向连接,所述动态建模的控件包括动态画布中的鼠标,具体的测试任务,测试任务集,单线程下顺序连接,多线程下的顺序连接以及多线程的开始或是结束。
3.根据权利要求1或2所述的方法,其特征在于通过对嵌入式设备类的继承及实例化完成所述被测系统及其周围交联设备模型的建立工作。
4.根据权利要求3中所述的方法,其特征在于所述嵌入式设备类包括判断是否为被测系统或者交联设备的属性,设备标识属性和设备间通讯接口变量属性,以及表示初始化设备的操作,表示启动设备运行的操作,表示挂起设备的操作,表示重启动设备的操作和表示停止设备的操作。
5.根据权利要求1,2,4中任意一个所述的方法,其特征在于所述约束条件包括延时操作,所述条件表示式表示功能测试数据的前置条件或者后置条件。
6.根据权利要求5中所述的方法,其特征在于对UML顺序图的扩展包括增加Transfer构造型并添加标记值,用于对嵌入式系统对象之间数据传输行为建模,应用于顺序图的消息或调用,其中传输的数据类型必须和静态建模时对象间的I/O接口类型保持一致,传输的数据有 取值,传输的数据的取值是仿真模型中该I/O接口变量的一个实例,所述Transfer构造型的标记值包括源设备值,目标设备值,数据传递条件值,发生时间值以及I/O类型传递数据值。
7.根据权利要求6中所述的方法,其特征在于对UML顺序图的扩展还包括通过扩展约束的方式来表达消息之间的时间约束信息。
8.根据权利要求7中所述的方法,其特征在于所述自动提取测试场景并生成测试数据的步骤,进一步包括:
(1)遍历活动图生成测试场景,得到所有可能的活动序列;
(2)根据测试场景,生成测试数据。
9.根据权利要求8中所述的方法,其特征在于所述遍历活动图包括:
在活动图上根据节点的顺序号及节点的类型来跟踪得到测试场景路径;
在遍历场景路径的过程中,访问一个节点后,先找到该节点可能的直接后继,然后采用深度优先的方法选择一个直接后继继续遍历,当到达一个没有后继的节点时,就完成一个场景路径的遍历,然后回溯到下一个直接后继,继续遍历,直到所有的直接后继都已经被访问,则完成了所有的场景路径的遍历。
10.根据权利要求8中所述的方法,其特征在于所述生成测试数据进一步包括:
对测试场景对应的顺序图进行分析,按照顺序图的生命线方向依次提取出每个消息;
如果某个对象属于被测系统,则不用提取该对象生命线方向的所有自身消息;
针对每个事件提取出与其相关的信息,得到该测试场景的测试数据,然后将这些数据进行有效组合得到测试数据,所述相关的信息包括事件发生的事件,事件的源设备对象、目标设备对象,事件中传递数据的内容。
11.根据权利要求1中所述的方法,其特征在于所述测试脚本包括以C语言或Tcl语言描述的测试脚本。
12.一种嵌入式软件测试数据可视化自动生成系统,包括:
用于加载测试方案的装置,所述测试方案是根据被测嵌入式软件系统的特点以及测试要求,在确定测试数据生成所需的静态和动态信息之后生成的;
用于对被测系统静态建模的装置,其通过扩展的UML类图完成针对被测系统测试数据生成的静态建模;根据所述加载测试方案,完成对所述被测系统及其周围交联设备的建模;
用于对被测系统动态建模的装置,其进一步包括用于测试活动建模的装置和用于测试活动中的动作建模的装置,所述用于测试活动建模的装置利用UML活动图完成测试活动的建模,同时对UML活动图进行扩展以便实现对时钟和受时间约束的行为的描述,对UML活动图的扩展包括在活动图迁移边上加入约束条件,以及在迁移中加入条件表达式,所述用于测 试活动中的动作建模的装置,利用UML顺序图描述被测系统与其交联设备的数据交互过程,
同时对UML顺序图进行扩展以便对被测系统与仿真模型之间的数据传递过程进行描述;
用于在完成所述静态建模和动态建模之后,自动提取测试场景并生成测试数据的装置;
用于生成测试数据的XML描述的装置;
将已自动生成的以XML描述的测试数据转化为测试平台所需的测试脚本的装置;
根据所述测试平台所需的测试脚本,实现在测试平台的自动运行,驱动测试过程,完成嵌入式软件的自动化测试的装置。
13.根据权利要求12中所述的系统,其特征在于所述测试要求包括可测功能、性能、安全性和接口信息,所述静态建模的控件包括静态画布中的鼠标,被测系统,与被测系统相关的交联设备,单方向连接以及双方向连接,所述动态建模的控件包括动态画布中的鼠标的,具体的测试任务,测试任务集,单线程下顺序连接,多线程下的顺序连接以及多线程的开始或是结束。
14.根据权利要求12或13所述的系统,其特征在于通过对嵌入式设备类的继承及实例化完成所述被测系统及其周围交联设备模型的建立工作。
15.根据权利要求14中所述的系统,其特征在于所述嵌入式设备类包括判断是否为被测系统或者交联设备的属性,设备标识属性和设备间通讯接口变量属性,以及表示初始化设备的操作,表示启动设备运行的操作,表示挂起设备的操作,表示重启动设备的操作和表示停止设备的操作。
16.根据权利要求12,13,15中任意一个所述的系统,其特征在于所述约束条件包括延时操作,所述条件表示式表示功能测试数据的前置条件或者后置条件。
17.根据权利要求16中所述的系统,其特征在于对UML顺序图的扩展包括增加Transfer构造型并添加标记值,用于对嵌入式系统对象之间数据传输行为建模,应用于顺序图的消息或调用,其中传输的数据类型必须和静态建模时对象间的I/O接口类型保持一致,传输的数据有取值,传输的数据的取值是仿真模型中该I/O接口变量的一个实例,所述Transfer构造型的标记值包括源设备值,目标设备值,数据传递条件值,发生时间值以及I/O类型传递数据值。
18.根据权利要求17中所述的系统,其特征在于对UML顺序图的扩展还包括通过扩展约束的方式来表达消息之间的时间约束信息。
19.根据权利要求18中所述的系统,其特征在于所述用于自动提取测试场景并生成测试数据的装置,进一步包括: 
用于遍历活动图生成测试场景,得到所有可能的活动序列的装置;
用于根据测试场景,生成测试数据的装置。
20.根据权利要求19中所述的系统,其特征在于所述用于遍历活动图生成测试场景,得到所有可能的活动序列的装置包括:
用于在活动图上根据节点的顺序号及节点的类型来跟踪得到测试场景路径的装置;
遍历装置,用于在遍历场景路径的过程中,访问一个节点后,先找到该节点可能的直接后继,然后采用深度优先的方法选择一个直接后继继续遍历,当到达一个没有后继的节点时,就完成一个场景路径的遍历,然后回溯到下一个直接后继,继续遍历,直到所有的直接后继都已经被访问,则完成了所有的场景路径的遍历。
21.根据权利要求19中所述的系统,其特征在于所述用于根据测试场景,生成测试数据的装置包括:
用于对测试场景对应的顺序图进行分析,按照顺序图的生命线方向依次提取出每个消息的装置;
判断装置,用于判断如果某个对象属于被测系统,则不用提取该对象生命线方向的所有自身消息;
用于针对每个事件提取出与其相关的信息,得到该测试场景的测试数据,然后将这些数据进行有效组合得到测试数据的装置,所述相关的信息包括事件发生的事件,事件的源设备对象、目标设备对象,事件中传递数据的内容。
22.根据权利要求12中所述的系统,其特征在于所述测试脚本包括以C语言或Tcl语言描述的测试脚本。 
CN2009101477680A 2009-06-19 2009-06-19 一种嵌入式软件测试数据可视化自动生成方法及系统 Expired - Fee Related CN101571802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101477680A CN101571802B (zh) 2009-06-19 2009-06-19 一种嵌入式软件测试数据可视化自动生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101477680A CN101571802B (zh) 2009-06-19 2009-06-19 一种嵌入式软件测试数据可视化自动生成方法及系统

Publications (2)

Publication Number Publication Date
CN101571802A CN101571802A (zh) 2009-11-04
CN101571802B true CN101571802B (zh) 2012-05-09

Family

ID=41231165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101477680A Expired - Fee Related CN101571802B (zh) 2009-06-19 2009-06-19 一种嵌入式软件测试数据可视化自动生成方法及系统

Country Status (1)

Country Link
CN (1) CN101571802B (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719096B (zh) * 2009-12-29 2012-12-19 北京航空航天大学 一种提高实时嵌入式系统测试脚本执行速度的方法
CN101950269B (zh) * 2010-08-30 2012-09-05 清华大学 针对软件构件的自动化测试方法
CN102385505B (zh) * 2010-08-30 2013-03-20 北京理工大学 针对面向对象程序设计语言源代码的软件可视化方法
CN101968770A (zh) * 2010-11-01 2011-02-09 北京航空航天大学 一种可复用的嵌入式软件测试开发方法和系统
CN102033806B (zh) * 2010-12-14 2012-07-25 北京航空航天大学 一种实时嵌入式软件可靠性测试数据生成方法
CN102495789B (zh) * 2011-10-18 2015-01-21 瑞斯康达科技发展股份有限公司 一种自动化测试方法和设备
CN103268226B (zh) * 2013-05-17 2016-07-06 瑞斯康达科技发展股份有限公司 一种测试脚本文件生成方法及装置
CN103412853B (zh) * 2013-08-05 2016-03-02 北京信息科技大学 一种针对文档转换器的测试用例自动生成方法
CN103530228B (zh) * 2013-09-27 2016-09-28 西安电子科技大学 一种基于模型的软件测试方法
CN103488568B (zh) * 2013-09-30 2016-03-02 南京航空航天大学 一种嵌入式软件可信属性建模与验证方法
CN103544107A (zh) * 2013-11-01 2014-01-29 深圳市通力科技开发有限公司 生成测试用例文档的方法及装置
CN103647765A (zh) * 2013-11-29 2014-03-19 北京广利核系统工程有限公司 一种基于uml顺序图和拓扑图描述网络协议的图示方法
CN103777949A (zh) * 2014-01-17 2014-05-07 浪潮电子信息产业股份有限公司 一种自动化测试脚本的设计方法
CN104050087B (zh) * 2014-07-04 2016-08-03 东南大学 一种基于uml模型的软件架构正确性验证方法
CN104360999B (zh) * 2014-09-17 2017-11-21 东方电气集团东方汽轮机有限公司 档案管理系统中查询档案信息的图示方法
CN104407971B (zh) * 2014-11-18 2017-04-12 中国电子科技集团公司第十研究所 自动化测试嵌入式软件的方法
CN105988922B (zh) * 2015-02-06 2018-11-06 阿里巴巴集团控股有限公司 应用程序的测试方法、装置及服务器
CN104679963B (zh) * 2015-03-20 2018-04-27 杭州士兰微电子股份有限公司 一种基于tcl的仿真验证装置和方法
CN106326096A (zh) * 2015-06-30 2017-01-11 中国船舶工业综合技术经济研究院 一种舰船装备软件接口协议形式化建模方法
CN106547681B (zh) * 2015-09-18 2020-03-03 北京京东尚科信息技术有限公司 数据自动加载并复用模拟服务测试的方法和装置
CN105302549B (zh) * 2015-09-29 2018-07-24 莱诺斯科技(北京)股份有限公司 一种支持多语言的测试流程生成、调试、执行系统
CN105512011B (zh) * 2015-11-30 2018-07-10 中国人民解放军63908部队 一种电子装备测试性建模评估方法
CN106844190B (zh) * 2015-12-07 2022-06-07 中兴通讯股份有限公司 测试脚本自动生成方法及装置
CN107608889B (zh) * 2017-09-15 2021-07-06 销冠网络科技有限公司 一种测试脚本自动生成方法及系统
CN108037913B (zh) * 2017-12-21 2021-08-17 西安邮电大学 xUML4MC模型到MSVL语言程序的转换方法、计算机可读存储介质
CN108595317B (zh) * 2017-12-28 2021-06-11 合肥工大高科信息科技股份有限公司 一种轨道交通安全计算机嵌入式自动化测试方法
CN109101424A (zh) * 2018-08-07 2018-12-28 西北工业大学 一种实现数据激励的方法及装置
CN109189670A (zh) * 2018-08-07 2019-01-11 西北工业大学 一种数据激励的方法及装置
CN110457212B (zh) * 2019-07-24 2023-02-03 艾瑞克·李 基于复杂系统的测试建模及测试用例的自动生成方法
CN110781557B (zh) * 2019-10-14 2023-04-07 中国航空工业集团公司沈阳飞机设计研究所 一种飞机系统模型仿真测试流程优化方法
CN111258911A (zh) * 2020-02-13 2020-06-09 深圳航天科技创新研究院 一种基于数据驱动及多种覆盖策略的软件测试用例生成方法、系统及存储介质
CN111382078B (zh) * 2020-03-13 2023-04-28 龙婷 故障诊断模拟方法、装置、电子设备及存储介质
CN112100086B (zh) * 2020-11-17 2021-02-26 深圳市房多多网络科技有限公司 软件自动化测试方法、装置、设备和计算机可读存储介质
CN112835803B (zh) * 2021-02-23 2024-02-23 北京联创信安科技股份有限公司 工具生成方法、测试数据构造方法、装置、设备及介质
CN113190438A (zh) * 2021-04-22 2021-07-30 大商所飞泰测试技术有限公司 基于业务流图的图形化的需求分析及测试用例智能生成方法
CN113608089B (zh) * 2021-06-18 2023-11-03 苏州浪潮智能科技有限公司 开关电源mos管的soa测试方法、系统、装置及可读存储介质

Also Published As

Publication number Publication date
CN101571802A (zh) 2009-11-04

Similar Documents

Publication Publication Date Title
CN101571802B (zh) 一种嵌入式软件测试数据可视化自动生成方法及系统
Ekanem et al. Phoenix–a model-based human reliability analysis methodology: qualitative analysis procedure
CN106446412B (zh) 一种航空电子系统基于模型的测试方法
CN102693183B (zh) 一种实现软件自动化测试的方法及系统
CN105677563B (zh) 一种基于SysML模块图的集成测试序列生成方法
CN101968770A (zh) 一种可复用的嵌入式软件测试开发方法和系统
CN109948228A (zh) 一种基于装备参数化的对抗仿真及效能评估系统
CN104281060B (zh) 一种飞行器半实物接入试验测控系统
CN110166285A (zh) 一种基于Docker的网络安全实验平台搭建方法
CN104461855A (zh) 一种Web自动化测试方法、系统及装置
CN104615541A (zh) 基于流程图的仿真测试建模系统及方法
CN106021257A (zh) 一种支持在线编程的爬虫抓取数据方法、装置及系统
CN103984624A (zh) 一种网页自动化测试方法及系统
CN101739334A (zh) 嵌入式软件自动化测试方法
CN104598240A (zh) 一种跨平台的仿真模型开发方法及系统
CN107665168A (zh) 一种嵌入式软件gui自动化测试设备
US8726203B1 (en) System and method for generating virtual test benches
CN113836754A (zh) 面向多智能体仿真建模的仿真方法、装置、设备和介质
CN102486749A (zh) 数据驱动测试方法及系统
CN108563951A (zh) 病毒检测方法及装置
CN106407580A (zh) 基于脚本的规则检测遥控闭锁方法
Weyers et al. Formal modeling and reconfiguration of user interfaces for reduction of errors in failure handling of complex systems
Gregory et al. Early validation of the data handling unit of a spacecraft using MBSE
Elallaoui et al. Automatic generation of TestNG tests cases from UML sequence diagrams in Scrum process
Carrozza et al. Engineering air traffic control systems with a model-driven approach

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120509

Termination date: 20130619