殷 脂
(上海电力大学 计算机科学与技术学院, 上海 200090)
软件的可测试性是指软件测试过程中,在给定的若干组输入条件下,能够发现错误的概率。对软件可测试性的研究有助于确定软件需要测试的程度,并以最合理的方式分配测试资源,设计测试策略,提高测试效率。此外,在软件开发生命周期的早期阶段,可测试性分析还可以为软件结构的设计过程提供指导,从而降低测试成本,提高测试的可行性,进而提高软件的可靠性。
本文结合随机图理论,首先描述了面向对象的扩展软件可测试性模型;然后基于扩散感染免疫理论建立了软件随机图模型;最后给出了软件的可测试性形式化表达,并提出了计算方法。
从国际学术论文的理论角度来说,可测试性分析方法主要分为以下4种。
(1) 主要根据某一类流图计算出图中的各类结构信息(结点、边、环等),独立于所选择的测试策略以及程序的执行,并利用测试结果对软件的关键测试部分进行识别和改进[1]。
(2) 基于信息论和信息流图,根据模块的输入输出信息,对模块的可控性和可观测性进行定量计算,以确定模块的可测试性。
(3) 以PIE(Propagation analysis,Infection analysis and Execution analysis)技术为基本原型,分析程序的某个位置,计算其故障检测概率,以反映可测试性。
(4) 基于UML类图的面向对象软件分析技术,主要利用UML类图作为分析对象,通过掌握类之间复杂的依存关系来分析可测试性,并进一步改进UML类图以提升软件的可测试性。……