论文部分内容阅读
随着软件产业的不断壮大,软件的复杂度越来越高,软件可靠性和质量控制问题日益突出。而软件测试是保障软件质量的重要手段,通过软件测试可以准确、有效地发现软件中的错误。但是目前软件测试工作在软件开发周期中通常占总工作量的30%以上,在某些可靠性要求较高的开发中,其测试成本甚至超过50%。因此,提高软件测试的有效性和测试效率,降低软件开发成本,成为软件工程领域的一项亟待解决的重要任务,也是当前软件工程研究的热点和难点。复杂网络是20世纪出现的一门新兴的系统性、综合性学科,由于近期大量研究成果表明,大型软件系统内部结构也具有复杂网络的小世界效应和无标度特性。因此,面对软件复杂性所引发的“软件危机”问题,以提高软件可靠性和软件质量为目标,基于复杂网络理论和方法分析软件系统的复杂网络特性,设计高效的软件测试方法,为软件工程的深入研究带来了崭新的视角。基于上述思想,本文以复杂网络为工具,基于复杂网络固有的鲁棒性(即网络中存在少量的重要的关键节点),通过构建软件系统的复杂网络模型,结合网络特征参数分析和测试代码覆盖率,提出了基于灰色关联分析和主成分分析方法的关键节点识别算法以及基于关键节点的软件测试方法,利用该方法进行软件系统的测试可以减少测试用例的数量,提高测试效率。本文首先介绍了当前软件危机的严重性,综述了国内外研究现状,指出了软件测试研究的理论意义和实用价值。文章对复杂网络基础理论知识进行了系统的介绍,包括软件网络的研究简史、常用的软件网络基本统计特征;随后阐述了软件测试过程中的五个主要步骤,并对软件测试的测试过程进行了简要介绍;接着建立了软件系统的有向复杂网络模型,简要介绍了灰色关联分析和主成分分析方法的技术原理,综合考虑和分析度、聚集系数、介数、接近度等参数对软件系统节点关键性的影响,结合主成分分析法计算各参数的权重,采用灰色关联分析方法计算各节点的灰色关联度,提出了一种综合考虑多特征参数的关键节点识别算法,并根据识别的关键节点得到关键路径,设计了基于关键路径的测试用例生成方法,以较小的测试开销保证软件的可靠性。最后,通过软件实例的网络信息转换和复杂网络特性分析,证实了大型软件系统的有向网络不仅具有小世界效应和无标度特性,而且本文所提的基于关键路径的测试用例生成方法能有效提高软件的测试效率。