本项目的研究对象为基于网络的软件系统,其所处环境具有动态性、自身实现可能具有不确定性。本项目对于该类系统进行面向交互属性、可扩展属性及安全属性的CPN建模及测试方法研究。在建模方面,对于已有CPN模型的被测系统,提取欲测属性的CPN模型;对于没有CPN模型的被测系统,直接进行欲测属性的CPN建模,由此缩小问题的状态空间。在生成测试序列的过程中,给出属性测试覆盖标准,利用on the fly 方法进一步缩小欲测属性的CPN的状态空间,并对测试生成算法的有效性进行证明;通过符号执行的方法进行测试数据的选择,仅在需要时,考虑给出实际值,由此减少测试例的数目。研究考虑可观察与可控制性的可执行测试序列的生成方法;研究具有分布式特点的测试例之间的协同方法;进行具有分布式特点的TTCN-3测试套的设计与开发。使用基于IPv4、IPv6、IVI的可信任网络作为实际的试验环境,检验本项目提出的方法的有效性。
CPN modeling;testing;property;on the fly;symbolic execution
项目分析了基于网络的软件系统的发展趋势,并基于被测属性对网络的不同层面展开研究。针对自实现的或者成熟的软件系统进行层次化CPN建模,对已有模型的软件系统进行基于属性的模型提取。从交互属性、可扩展属性等方面深入分析研究CPN建模方法。基于选定被测的基础CPN模型,为其扩展属性提出了模型的扩展方法,并根据修改后的模型得到测试例集,从该测试例集中减去基础模型的测试例集,最终得到被测扩展属性的测试例集。对CPN模型形成的状态空间,提出了有效的化简算法,并对算法进行优化。而对于安全属性基于CPN和On the fly 方法给出攻击序列的生成方法。依据本组建模经验及CPN模型执行的反馈信息,提出先分段,再分角色的层次CPN建模方法,并将符号执行和CPN建模相结合进行研究,减少了问题的整体状态空间,并论证了该方法的有效性。实现了一种CPN的状态空间向测试序列的自动转换方法以及测试序列向测试例的自动转换算法。 项目针对基于CPN并发模型容易产生状态爆炸的问题,提出了基于功能组合的模型抽象方法,减小模型的规模,提高其抽象性。给出基于CPN的on-the-fly测试算法的主要过程,实现了on-the-fly的核心算法——同步乘积算法,并对其进行测试和评估。以火车售票系统为被测,生成和执行测试例,并将测试结果与传统测试方法的结果进行比较和分析,证明了该方法的有效性。本项目考虑了可观察性与可控制性,进行从形式化模型到测试目的的推导、以及测试例的推导过程等方面的研究。本项目也依据需要构建了包含本地及远程的测试环境,并开发与执行生成的测试套。项目组利用已有的IPv4和IPv6实验环境及条件,完成了选定软件系统的安全检测。 本项目的研究工作对软件系统属性的形式化建模及测试方法进行了有益的探索并取得较好的成果,在创新型人才培养方面也获得了较好的成果。