论文部分内容阅读
近年来,计算机联锁系统以其占地面积小、易于改造、智能化等优势,被广泛应用于各大车站。安全是铁路运输和运营永恒不变的主题。在计算机系统硬件得到保障的前提下,联锁软件的安全性和可靠性成为铁路信号领域关注的焦点。测试是保证联锁软件安全性和可靠性的手段之一。传统的联锁软件测试,在一定程度上依赖测试人员的经验和知识,难以保证测试的效率和质量。为此,很多机构开始研究软件自动化测试。测试数据是软件测试中各个阶段的基础。是否能生成和筛选有效测试数据是自动化测试的重点和难点。本文在研究计算机联锁软件功能和层次结构的基础上,通过对现有测试数据生成相关研究的对比分析,以及对测试工具Testbed的应用,结合软件测试理论,提出了基于Petri网建模的测试数据生成方法。Petri网是用于软件测试的有向图之一,可以灵活运用图论的相关理论及算法进行分析。该方法的优点在于将问题抽象成有向图,更加直观、清晰;测试数据的生成不再受测试人员主观因素的影响,极大地提高了测试效率及测试质量。本文从单元测试和功能测试两个方面研究了测试数据自动生成的方法。单元测试是联锁软件动态测试活动中的最初阶段,从函数或模块的内部结构考虑,给出了程序代码到Petri网的转换规则。鉴于联锁软件单元测试的覆盖率是从语句覆盖、分支覆盖及条件/判定覆盖(Modified Condition Decision Coverage,简称MCDC)来考量的,提出了路径测试的方法。路径求解算法中充分考虑了Petri网的各种结构,及对路径冗余情况的处理。功能测试是以联锁软件的安全需求为依据,对联锁系统的基本功能和安全范围内的防护功能进行测试。本文引入了故障树分析法中割集及最小割集的概念,通过分析进路建立及解锁的过程,从危及行车安全的角度出发,建立了安全性Petri网模型。采用关联矩阵求解出危及行车安全的各类基本事件集合,通过安全性约束条件划分测试数据输入空间,进而产生测试用例。最后,采用文中所述的测试用例生成方法,对联锁软件进行测试实验。通过测试用例的执行,发现该方法不仅满足覆盖率的要求,而且能够发现出软件中的错误,为软件的进一步优化和完善提供数据参考。