论文部分内容阅读
随着计算机技术的广泛应用,软件系统的规模和复杂性不断攀升,由于软件错误直接造成系统失效的比率持续递增。软件的故障定位可以提高测试阶段的效率,也是开发可靠性软件的重要一环。嵌入式软件资源有限,非功能需求多,语义复杂性增强,时序性较弱,过度依赖硬件,同时嵌入式软件产品越早上市利润越大,这都导致嵌入式软件含有的潜在故障更多,更隐秘、复杂。而传统软件定位方法过程复杂、依赖性强和通用性不高。为此提出了用于嵌入式软件的程序谱故障定位方法,并进行了研究与验证。经实验表明,该方法能大大减少在故障定位过程中代码审查的范围,能快速有效地定位软件故障,易于扩展,通用性强,从而为软件故障定位提供了一种新途径。首先介绍了软件诊断和软件定位的一般性概念,对目前国际上软件故障诊断和定位技术的研究做了详细的分析,阐述了故障间的联系和分类,分析了嵌入式软件故障定位的特点,指出了支持嵌入式软件故障定位技术的优势。在解释谱的来源和分析几种常见程序谱的基础上,提出了一种新的程序谱——语句命中谱,它能够较好的表达程序运行特征,并且和其它的程序谱不同的是,它可以获取更多的诊断信息,与其它故障定位方法相比,它计算量小,产生冗余少,是在优先级较低的线程上运行的,CPU和内存占用率低,尤其适合嵌入式软件的故障定位。提出了支持嵌入式软件的程序谱差异分析和故障定位技术框架。该方法用程序谱抽象表达程序运行,引入新的聚类函数和排名准则,根据这些度量准则选择和故障运行最相似的成功运行,比较这两次运行之间谱的差异,从而产生一份程序可疑故障位置报告。最后介绍了支持嵌入式软件故障定位方法运行环境的搭建过程,通过使用西门子测试套件,对其中的多个版本在搭建的平台上进行测试,定性和定量分析了产生的测试数据,证明了本文方法的可行性、正确性,同时证明了本文方法相对其它目前最好方法的优越性。