安全关键软件的测试与评估过程模型研究
【摘要】:
当前计算机软件得到了日益广泛的应用,在很多系统中作为控制核心存在。对于应用在重要领域,比如航空、航天及军事等领域的控制软件,它们的失效往往会给用户或者国家财产造成巨大的损失,所以需要对这类安全关键软件进行严格的测试和评估。另一方面,当前的软件评测过程存在诸如启动时间滞后、未区分功能模块关键度及失效特性的差异性等问题,影响了软件测评结果的可信度。
本文提出了一种新的安全关键软件的测试与评估过程模型。在新框架下,测试人员从需求分析阶段就参与其中,通过安全性分析获取安全性需求;构建风险操作剖面,并在分析和设计阶段逐步细化剖面;通过工具由剖面自动生成测试用例,驱动测试工作的进行;在测试过程中收集数据,使用契合的软件可靠性增长模型进行评估和预测。
本文的主要贡献在于:
一、构建了一种基于组件划分和测试覆盖率的软件可靠性增长模型,把以往可靠性模型中可靠度的提高单纯依靠测试时间累积变为关注测试用例是否能够促进测试覆盖率的提高,改进了现有模型评估结果虚高的问题。
二、构造了融合关键度信息和测试加速技术的风险操作剖面,关注不同操作的关键度的不同,修正操作剖面中的概率信息,更精确地反映用户的使用习惯。在构造过程中融合了测试约束、时间标记的UML建模方法,降低了测试与开发人员产生理解歧义的机率,增强了由风险操作剖面生成的测试用例的有效性。
三、提出了一种新的测评过程模型,涵盖了从安全关键软件测试准备到实施,直至评估的整个过程,对传统的测试过程进行有针对性的改进,提高了测试的效率和结果的准确性。
文中从软件规范说明和应用实践两个角度出发,对所提的测评过程模型进行了深入的研究,实验表明所提的测评过程模型能更紧密结合安全关键软件的特点,可以明显地提高测试工作的效率,并增加测试结果的可信度。