黄世云
作为信息技术的重要组成部分,数据挖掘技术近年来被广泛应用到社会生产生活的各个领域。本文以软件工程数据挖掘技术作为研究对象,通过对软件工程数据挖掘的概念进行阐述,在结合软件工程数据挖掘技术与传统数据挖掘技术之间区别的基础上,对软件工程数据挖掘在软件测试阶段的应用方法展开了深入研究。
【关键词】软件工程 数据挖掘 软件测试
数据挖掘又称为数据采矿或资料勘探,是数据库知识发现(KDD)中的重要组成部分,具体是指利用相关算法搜索隐藏于大量数据中信息的具体过程。近年来,随着科技和经济的不断发展,一种基于软件工程的数据挖掘技术得到了广泛应用。本文通过对比软件工程数据挖掘与传统数据挖掘的区别,并结合软件工程数据挖掘的相关概念,为将软件工程数据挖掘应用到计算机软件测试中提出了合理的意见和建议。
1 软件工程数据挖掘简述
所谓软件工程数据是指软件在开发和测试过程中所存储的各种数据的总和,主要包括软件需求分析文档、软件可行性运行分析文档、软件的设计文档、使用说明以及测试用例、测试结果和用户意见等诸多方面的数据。近年来,随着计算机和信息技术的不断发展,软件工程数据挖掘技术已被广泛应用到计算机软件开发和测试的各项工作中,并促进着信息产业的发展。
2 软件工程数据挖掘与传统数据挖掘的区别
2.1 数据的复杂性
与传统的数据挖掘技术相比,由软件工程数据挖掘技术进行系统分析而得到的数据更具复杂性。软件工程数据除了包含软件版本以及软件报告等方面的信息外,还包含了系统中的代码与注释等非结构化的数据,虽然这两种数据不能以统一的方法进行计算,但在两种数据之间却存在着密切的联系,这就使得通过软件工程数据挖掘技术而得到的系统数据更具复杂性。
2.2 挖掘结果的特殊性
在传统的数据挖掘技术应用到软件测试工作后,其测试结果通常经由报表子系统的处理后,以图形或表格的形式呈现出来。但就软件工程数据挖掘技术而言,其所需要具备的功能不单是为用户提供相关测试结果,其更需要为用户提供符合或推翻结果的相关实例或软件缺陷定位方面的信息。
2.3 挖掘结果的多元化评价
数据信息挖掘结果具有多元化的评价或者相关测试、开发结果的评价难以统一是软件工程数据挖掘区别于传统数据挖掘的另一特点。对于传统的数据挖掘技术而言,对挖掘结果的评价已基本形成了统一的意见和评价标准,但就软件工程数据挖掘而言,由于软件的开发人员和测试人员对数据信息的要求较为具体和严格,数据结果也具有较强的复杂性。因此,挖掘结果的评价方法也较为复杂。
综上所述,如何将软件测试的结果和对测试阶段数据预处理方面的结果进行有效表述已成为当前软件工程数据挖掘技术应用的难点。所以,下文则着重从软件工程数据挖掘在软件测试阶段的应用方法展开了详细分析。
3 软件工程数据挖掘在软件测试阶段应用的研究
3.1 缺陷分派
所谓缺陷分派是指在进行软件测试的过程当中,如发现软件在安装或运行过程中出现缺陷,则将修复缺陷的工作分配给软件维护人员进行维修处理。在进行软件的缺陷分派工作时,软件测试人员需要连同开发人员一起分析使软件产生缺陷的原因,进而对相关缺陷的性质和特征信息进行获取,而缺陷信息报告的数量通常是庞大大,这就增加了缺陷分派工作的难度。此外,由于缺陷报告的撰写工作通常是由非专业人员负责的,其对软件缺陷的描述较为模糊,这又严重增加了缺陷分派工作的不确定性。软件工程数据挖掘在缺陷分派中的应用主要体现在对软件缺陷的自动分派上,其对软件缺陷进行自动分派的核心思想是:以软件编程的相关理论为基础,将缺陷分派看作编程中的一个分类问题,将需要分派的缺陷看作具体类,并将已撰写好的缺陷报告看作是分类文本(分类依据),这便将缺陷分派问题转移到了软件工程中的文本分类问题中。利用软件工程数据挖掘解决缺陷分排问题的具体步骤为:(1)利用可扩展标记语言工具(XML)从缺陷类中获取相关的缺陷报告文本,并从报告文本中选取一部分文本作为训练集,以软件缺陷报告中的文本内容作为具体的训练依据,被制定进行缺陷分派处理的测试人员作为报告文本的分类标签,进而开展相关的缺陷分类工作;(2)充分发挥训练集的作用,并以此为依据训练朴素贝叶斯分类器(基于贝叶斯定理的简单概率分类器);(3)以训练好的分类器作为依据,将无分类标记的缺陷报告进行分类。通过软件工程数据挖掘对软件缺陷分类的一系列处理措施可知,软件工程数据挖掘的应用在指明缺陷类别的同时,也有效提高了缺陷分派的工作效率。
3.2 缺陷重述
软件测试过程中缺陷分派工作的有效开展需要以相关的缺陷信息作为数据保障,而缺陷信息的自动获取工作则需以缺陷重述作为其理论和实践的双重依据。在缺陷报告的改进方面,软件工程数据挖掘可以利用Ccured(记忆型系统翻译程序)对应用程序进行预设。通过在缺陷的每一个逻辑语句和缺陷语句前加一句判定,进而将此次赋值进行记录并判断其是否为零。如果将软件的完整缺陷报告发送给测试者,由于软件和报告的规模较大,则很容易导致缺陷分类具有较强的模糊性。因此,软件工程数据挖掘要求对缺陷记录点依照概率p进行取样,通过这种方法,即便缺陷报告不存在其主体,测试结果也可以显示出相关缺陷的信息,从而为缺陷分派工作的进行打下良好的基础。
4 结论
本文通过对软件工程数据挖掘技术的定义进行阐述,并结合就软件数据挖掘技术的相关特点,对将其应用到软件测试过程中缺陷分派和缺陷重述的方法展开了详细分析。可见,未来加强软件工程数据挖掘在软件测试方面的应用,对于提高软件性能、促进电子计算机产业的发展具有重要的历史作用和现实意义。
参考文献
[1]鄢萌.基于概率潜在语义分析的软件变更分类研究[D].重庆大学,2013.
[2]雷蕾.关于数据挖掘技术在软件工程中的应用综述[J].电子测试,2014,02(12):128-129.
[3]罗韬,罗峰.数据挖掘在软件工程领域中的应用浅析[J].电子技术与软件工程,2014,01(09):222.
作者单位
重庆市中冉信息产业有限公司 重庆市 400050endprint