关联规则在故障模式库中挖掘出最有效,最相关故障模式的应用
2015-05-30熊登峰
熊登峰
摘 要:基于故障模式的嵌入式软件智能测试方法作为一种解决嵌入式软件测试问题的新途径,其关键技术之一就是如何从故障模式库中找出与嵌入式软件相关的故障模式。文章论述了如何使用关联规则,在故障模式库中挖掘出与被测试对象相关的故障模式。
关键词:关联规则;软件故障模式库;故障模式
1 概述
随着嵌入式系统在航空航天武器装备、工业控制、车辆导航、信息家电、家庭智能管理系统、POS网络及电子商务、自然环境实时监控、机器人、物联网等领域广泛运用。用户对嵌入式系统质量要求日趋严格,嵌入式软件测试作为嵌入式系统项目质量控制的主要手段,正受到越来越多的重视。而嵌入式软件运行是实时的,运行过程中嵌入式软件,硬件以及外部设备的频繁交互,嵌入式软件系统本身对性能的要求也高,因此,所有这些特点决定嵌入式软件测试是一类最难的测试。
基于故障模式的嵌入式软件智能测试方法作为一种解决嵌入式软件测试问题的新途径,具有缺陷探测率(DDP)更高,测试周期更短,测试成本更低优势特点。实现该测试方法的关键技术之一就是如何从故障模式库中找出与嵌入式软件相关的故障模式。文章将介绍使用Apriori算法实现关联规则挖掘在该智能测试方法中的应用。
2 关联规则挖掘过程
2.1 挖掘任务
该智能测试方法要根据用户要求为软件系统提供最有效、最相关的故障模式,而要实现此功能就必须依据一定的推理规则,所以在这里关联规则挖掘的任务就是要从大量的故障模式数据中获取一定的关联规则,作为测试方法中要用到的推理规则的一部分。以后文章所提到的关联规则就是指推理规则。
2.2 数据准备
我们假设在某行业嵌入式软件故障模式库中,故障模式数据记录在一个关系数据库中。下面列出其中最重要的一张数据表。
在上述表格中,每条故障模式包含信息有:编号、软件类型、模块类型、编程语言、故障模式名称、出错次数、危害程度。其中主要特征的含义如下:
●软件类型:是指软件系统的应用类型;
●模块类型:指一个软件系统中的模块的分类,例如是图形模块、编泽器模块还是通讯模块等等,当然还可以分的更细;
●编程语言:是用什么语言编程,C++、iava或是C#等;
●故障模式描述:故障模式的描述;
●出错次数:符合这种故障模式的错误次数;
●危害度:此故障模式测出的错误的危害程度。
当然除了上述特征外,还有另外一些特征,例如编程工具、软件运行平台等,上表没有一一列举。
将这些特征除全部数值化和离散化表示,这样符合关联规则挖掘的要求。我们的目的主要是想通过关联规则挖掘找出诸如什么类型的软件的故障模式导致较高的危害,或者什么类型的模块中什么类型的故障模式出错次数较多等等推理规则,这些规则止是故障模式提供中要用到的。把这些数据准备好以后,下面就可以挖掘关联规则了。
2.3 挖掘关联规则
我们指定最小支持度和最小可信度,这可以由系统缺省指定,也可以由用户自己指定。假设最小支持度为50%,要求的最小支持度越高,挖掘出的规则越少,挖掘的过程也越快;最小可信度为50%。然后利用Apriofi算法对故障模式数据库进行挖掘处理,处理过程这里不再详述。最终可以获取一系列的关联规则。其中可能的一条规则形式如下:
(软件类型=3,输入类型=15)=> (出错次数>=4,危害度>=4)
支持度为60.77%,可信度是85.18%,期望可信度是84.00%,作用度是1.03
这条规则表明,60.77%的软件类型为3,故障模式类型为15的故障模式它们的出错次数>=4,危害度>-4。
2.4 应用关联规则
运用上述规则,软件故障模式库根据用户所提供的软件的特征,将满足此规则的所有故障模式推荐给用户。用户首先给出其软件的类型,假定为3,然后再给出危害度>=4,最小支持度为50%,则故障模式库根据上述规则将所有故障模式描述为15的故障模式列举出来给用户,实现了所要求的功能。
通过以上步骤,得到了一些关联规则。当然在实际运用中,还应该反复作一些调整、比较,力求得到最符合实际、最能达到目标要求的结果。有些关联规则可能没有任何意义,因该将其手动剔除,以免导致故障模式库提供一些无效的或不太相关的故障模式。
3 结束语
文章对关联规则在软件故障模式库中的故障模式提供上的简单应用作了描述,给出了挖掘步骤和方法,并举例说明了应用于软件故障模式库的过程,具有一定的实用价值。但对关联规则挖掘在软件故障模式库中更迸一步的应用有待研究。
参考文献
[1]范明,孟小峰.数据挖掘概念与技术[M].机械工业出版社.
[2]孙红利,王忠民,王文.嵌入式软件语句覆盖率测试插桩技术[J].计算机应用,2010,30(10):1-4.
[3]王轶展,徐萍.嵌入式软件机内测试的设计与测试[J].计算机工程,2009,35(17):34-39.
[4]田金兰,黄刚.关联规则挖掘在保险业务中的应用[0L].
[5]蔡伟杰,张晓辉,朱建秋,等.关联规则挖掘综述[J].计算机工程,2001.
[6]朱建秋,周皓峰,朱扬勇,等.一个基于关联规则的数据采掘工具的设计和实现[OL].