资源描述:
《uml视角下的实时软件可靠性测试方法分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、UML视角下的实时软件可靠性测试方法分析Abstract:Real-timeembeddedsofts,requireslargeamountoftestingtomeasuretheirreliabilityaccordingtotheultra-highreliabilityrequirement.Aunitedmodellan-guage(UML)-basedreliabilitytestdatagenerationmethodforreal-timeembeddedsoftodelandtestdatamodel.Thes
2、oftbeddedsoftodel;Thesoftodel.Basedonthethreemodels,thereliabilitytestdataforthereal-timeem-beddedsoftsampling.L(统一建模语言)提供的建模机制,从软件可靠性测试的角度建立use-case剖面、接口模型和测试数据实现模型,然后根据这些模型的描述进行随机抽样,自动生成可靠性测试数据.利用该方法能够开发出相应的测试数据自动生成工具,在软件可靠性测试领域有着较大的实用价值.关键词:软件;可靠性;实时系统;统一建模语言;运行剖面;
3、测试数据 实时嵌入式软件在许多工程型号中得到了广泛地运用,这些软件的运行环境严格,一旦出现故障可能造成严重后果.在真实的使用环境下测试软件可靠性的费用昂贵,不便于数据的采集和可靠性指标的验证,所以研究在实验室条件下的嵌入式实时软件可靠性仿真测试技术十分必要.其中,实时嵌入式软件可靠性测试数据的自动生成,在技术和工程方法上是一项关键技术.统一建模语言(UML)是一种用于对软件密集型系统进行可视化、详述、构造和文档化的建模语言.目前对UML的运用主要集中于软件的分析和设计阶段的系统建模.由于UML具有统一性、可视性、易于表达、独立于
4、实现过程以及便于扩展等特点,能够从多个角度对系统建立模型,从而为软件的可靠性测试数据生成提供一种可以借鉴的方法.本文试图利用UML所提供的建模机制,从实时软件可靠性测试的角度研究一种测试数据生成方法.1 测试数据的生成实时嵌入式软件的可靠性测试数据生成,需要解决3方面的问题:一是生成可靠性测试数据,能反映出用户实际使用软件的情况;二是测试数据与嵌入式软件的特性相一致,使测试数据满足嵌入式软件的数据格式、发送源及目标和方式等要求;三是实时性要求,即测试数据需要满足实时软件的实时输入特性.针对这些问题,可以利用UML的use-case
5、图、类图和活动图来生成测试数据,生成流程可以如图1所示.1.1 分析软件文档软件文档作为软件的主要产品之一,为软件测试提供了主要的信息.对软件可靠性测试而言,并不关心软件的详细设计文档,主要侧重于软件的需求规格说明书、用户手册,以及有关用户使用的情况.从这些文档中可以提炼出系统测试功能、用户的使用情况以及实现每个功能所需要的输入等信息.对于实时嵌入式软件而言,还需要软件接口信息,它关系着测试数据的格式、测试数据的发送源、目标和方式等要求.软件的接口信息通常从软件的接口控制文档(ICD)中获得,它为接口模型的建立提供了依据.1.2
6、建立use-case剖面Use-case剖面反映了可进行系统测试的软件功能以及该功能的使用概率,用UML的use-case图扩充以概率来加以表达.如图2所示.Use-case剖面可以通过分析软件文档,从软件可靠性测试的角度对软件功能进行划分,表达出软件能够实现独立测试的功能及使用概率,描图2 use-case剖面述用户如何使用系统而不是如何建立系统.为了表达出用户实际使用软件的情况,还需要确定每个用例发生的概率.可以通过以下2个途径来获得:①对相似产品使用方式的统计或对同一产品使用方式的历史经验的统计.②通过对用户使用软件方式的调
7、查,估计软件的使用概率.Use-case可以从不同的层次对元素加以描述(这里的元素可以是系统功能,或子功能等).由于软件可靠性测试是按照用户实际使用软件的方式来测试软件,所以在系统功能的分析过程中,应遵从如下原则:①从用户使用的角度建立模型;②软件的需求规范作为软件功能划分的依据;③将软件功能自顶而下逐步细化为基本的可测试的use-case;④如果use-case的细化过程中会出现条件概率(即use-case之间存在约束关系,不能直接的确定出use-case的使用概率),则不应再作细分,该use-case就可以看作基本测试单元,可
8、以围绕它设计该use-case的测试数据实现模型.1.3 建立接口模型接口模型是对被测实时嵌入式软件的输入输出接口的一种抽象.该抽象是为获得测试数据中的输入输出要素,并对其进行封装,以便测试数据与真实的软件接口相对应,使生成的测试数据能够直接用于被