论文部分内容阅读
核电产业高速成长,为国民带来改善经济水平的机遇、降低环境污染的可能,并被作为保障国家安全稳定的手段。然而在获利的同时,也蕴藏许多风险。其中部分风险的发生会造成难以估量的损失。核电产业的安全性受到了多方瞩目,为提升安全性,需要对核电产业相关软件系统进行软件测试。数字化仪控系统(Digital Instrument And Control System,DCS),在核电领域应用广泛。DCS系统经由高安全性应用开发环境(Safety-Critical Application Development Environment,SCADE)平台进行开发,通过构建组件模型刻画软件系统特征。在核电DCS系统基于组件模型的自动化测试用例生成引入合约的概念,通过合约定义软件系统中组件的交互规则,并以此作为验证组件执行正确性的手段,生成测试用例。现有方法有手工测试及系统合约求解测试两种。前者存在效率低、工作量大、复用性差,由于个体差异影响,导致测试充分度难以保障等问题。后者应对大型复杂系统时,存在NP完全问题,求解难度高,耗时长等问题。据此,为提高测试效率,降低求解测试用例难度,本文基于组件合约模型,将排列组件执行顺序,结合合约,提出基于组件合约逐级求解的测试用例自动生成方法,研究工作如下:(1)提出了组件排序算法。通过对组件间存在的依赖关系进行分析,构建组件依赖图,利用组件排序算法,对组件的执行顺序进行排序。(2)依照合约化设计理论的属性划分组件合约范畴、定义了覆盖标准。将DCS系统具备的约束条件根据合约化设计理论的属性进行划分。划分为前置、后置、不变式条件。并将合约、方法覆盖程度定义为覆盖标准,方法包括有效方法及无效方法。(3)提出了组件逐级求解技术。根据Pre-初始输入数据合约,调用PICT,生成初始输入数据。结合初始输入数据、组件执行顺序及组件合约,对组件依次处理,遍历不同的组件方法,并约简其中不满足组件合约的测试用例,最终得到满足所有合约条件的测试用例集。经过实验证明,基于组件合约逐级求解的测试用例自动生成方法具备可行性,且具备较高的覆盖率。(4)以此方法开发了一款测试工具,用于基于组件合约逐级求解的测试用例自动生成方法。