基于数据挖掘的测试工程数据整合分析平台

2015-01-16 05:27李外云
电子设计工程 2015年11期
关键词:数据挖掘关联规则

韩 茂,邱 崧,李外云

(华东师范大学 信息科学技术学院,上海 200241)

测试工程是保证产品质量的一个重要环节,测试工程技术在企业设计、研发、生产产品面向市场的过程中是必不可少的一环。有效的测试工程技术不仅可以将让工程师快速地了解产品的实际状态,避免生产出不合格的产品,而且还可以促进产品的后续改进和提高。当前,许多企业已经建立了各自完备的自动化、半自动化测试流程与技术,将测试工程的自动化、规范化作为一项必不可少的工作流程。实践证明,这些测试方式不仅可以保证产品的质量,而且还可以提高工作效率。但是,相当一部分企业包括目前大部分针对这方面的研究都是通过测试工程获取基础的数据信息后,只会对数据进行一般性的技术处理[1],或者用一些专业软件对数据进行分析[2-3],对历史数据的管理也仅仅是借助于Office办公软件进行分析和管理[4],并没有形成统一、可靠、有效的管理体系。因此,对于更优秀的测试工程数据整合分析平台需要解决以下几个问题:

1)如何整合、挖掘企业内部不同系统或部门的测试数据信息,甚至包括被部分加工过的数据信息。

2)由自动化测试工程产生的大量数据所引起的数据存储方式及结构问题,即数据库建设问题。

3)对于已经整合好的数据信息,需要通过设计的算法对其分析,才能实现对数据信息的可视化处理,让测试工程平台更直观、快捷地反映企业产品的信息特征。

为了克服这些问题,本文提出设计一套测试工程数据整合分析平台,该平台首先实现了将测试工程数据分类,分别开发出快捷可靠的数据挖掘流转方案(例如,针对Web端数据的数据挖掘方案),将这些数据抽取到中转数据池中。然后创造性地利用Microsoft SQL Server(MS SQL)对中转数据池中的数据进行关联规则挖掘[5],这种方法能够精确、迅速地分辨庞大的数据池中有用的信息。最后,该平台又基于实际的业务需求设计算法,灵活地对已经挖掘的数据再加工,将其可视化为图表和其他形式。整个系统相较与传统模式,极大地增强了对测试工程数据的科学管理,缩短了数据处理的周期,同时也有助于工程师对产品测试结果有更直观、可靠的判断。

1 测试工程数据整合分析平台系统设计

本系统的设计遵循了可靠性、高效性、实用性等几个原则,按照业务要求分层处理,将数据处理的流程分为3个步骤:数据获取层、数据挖掘与存储层、数据分析显示层。图1所示,就是该系统框架设计的结构图。

图1 平台系统框架设计结构图Fig.1 Platform system framework design architecture

在数据获取层,考虑到数据源的分散以及产生渠道的不同,系统给出了多个接口,它们可以承接来自测试系统(Web)、Office Automation Software (OA)、Access数据库等多通道的数据。除Access等数据库是直接导入数据池,其他数接口的数据都通过基于Excel上的Visual Basic Application(VBA语言转化为数据结构清晰的Excel数据表格,最关键的是这些过程一旦实现源数据语义信息稳定后,都是全自动的,这对于测试工程而言无疑是有巨大帮助的。

在数据挖掘与存储层,对于已经注入数据池的数据整合分析,根据目标信息的特征结合本层的核心算法将符合特征的数据挖掘填表,构建新的数据库。数据挖掘的方法和工具有很多[6],比如 SPSS Clementine、IBM Intelligent Miner 等,但本文关注的测试工程环境不需要面对特别复杂的非结构性数据,反而在基于MS SQL数据库的数据挖掘功能,用Transaction Structured Query Language (T-SQL)语言结合适当的算法即可快速完美地实现这类挖掘效果[7]。

在数据分析显示层,本方案采用了Browser/Server(B/S)架构,该架构适合于各种不同平台和系统远程访问,极方便地使数据以良好的Graphical User Interface(GUI)面向客户。此外,数据的分析功能也由此结构负责,比如建立数据模型,分析某段时间内一个批次的产品各项指标比较。还比如根据工程师设定的技术指标,设计算法,利用JSP技术中JavaScript优良的设计功能,对数据分析的结能以非常专业而精准的图像显示,这对于直观、快捷判断测试结果是至关重要的。

2 设计过程与算法实现

2.1 数据获取层

测试数据的来源有很多种,对其处理方式也不尽相同。比如说,对于原本就数据结构良好的数据库或者OA系统传送来的数据,只要实现它们的自动化处理即可。而真正比较复杂的是来自自动测试系统的Web端数据[8],它们是基于HTML5的文本数据,处理起来略微复杂。本文设计的数据获取层就针对如何把Web端数据也通过某种方式抽取出来形成一个比较合理和清晰的数据格式。图2是该层的流程图。

图2 数据获取层流程图Fig.2 Data acquiring process

算法描述及实现:对网页的数据抽取与转换用基于Excel的VBA语言完成。VBA是一种可寄生在应用程序中的Visual Basic(VB)宏语言,并可实现该应用程序的自动化运行。利用VBA控制Excel表格的运行,可以结合Excel对数据表格化的处理功能[9],极大地将逻辑结构复杂的HTML格式数据转换成行列关系。以下是算法描述:

第一步:实现单页数据抽取

With ActiveSheet.QueryTables.Add(URL) //访问网址

FillAdjacentFormulas//调整格式

AdjustColumnWidth(x)

WebPreFormattedTextToColumns (x,y) //将数据放入指定行列中

End With

第二步:将数据转存入SQL预处理数据池中

For k=1 To rs.Fields.Count-1 //rs是ADODB.Recordset,也即数据库行记录集

rs.Fields(k) =Trim(ws.Cells(h, k).Value)

Next k

rs.Update

第三步:访问其他URL内容,抽取数据至数据池

For i=1 To n

Website=Trim(WebArray(i))

SaveAs File//备份日志文件

Next i

回上海前一天,陶小西陪温衡去福利院看奶奶,奶奶却已经患了老年痴呆,认不出她的孙女了。温衡无奈地塞给她一些钱,又千恩万谢地拜托护士好好照料。

2.2 数据挖掘与存储层

数据挖掘的方式有很多,本文设计的数据整合分析平台在数据抽取阶段已经完成将源数据按照最基本的行列关系抽取到SQL的数据池中,因此,利用T-SQL语言在SQL Server上对数据库中的数据进行挖掘,重新建表。图3是数据挖掘的流程图。

图3 数据挖掘与存储流程图Fig.3 Data mining and storage process

此外,本层设计的最终目的是将挖掘好的数据重新构表,建立结构良好的数据库方便下游对数据做进一步分析处理。所以,本层设计构建了逻辑明晰、结构合理的满足第三范式[10]的数据库存储数据。面对大量进入数据池的数据,SQL必须能够准确理解这些数据的结构并对目标数据的语义信息做充分分析,基于这俩点构建出的挖掘规则才会可靠。鉴于此,本文提出一种基于关联规则的优化的Apriori算法[11]。

2.2.1 关联规则的基本概念和原理

关联规则形式化描述如下:设 I=(I1,I2,…Im)是项的集合,任务相关数据D是数据库事务的集合,其中每一个事务T都是项的非空子集,使得TI。关联规则是形如A的蕴含式,其中 A 和 B 是项集,且 AI,BI,A∩B=Ø。定义支持度(support)为D中包含的事务占全部事务的百分比,记作:

置信度(confidence)为D中包含A∪B的事务数与包含A的事务数的比值,记作:

提升度:

2.2.2 改进的Apriori算法应用

Apriori算法是发现关联规则领域的经典算法。该算法的实现主要分为俩个阶段:首先通过迭代检索出事务数据库中的所有频繁项集,设置最小支持度阀值。然后,利用频繁项集构造出满足最小置信度的规则,即产生关联规则。本文利用T-SQL语言获取关联规则的参数并设定出挖掘规则,以下是优化的Apriori建模及算法实现[12]:

1)计算全局频繁项集:由于测试工程数据从内容来说,有良好的完整性和组织结构关系,对这类数据的挖掘不像普通的Web数据挖掘那样需要大海捞针般寻找全局频繁项集。此外,对于本设计而言,计算全局频繁项集有俩个目标:第一,判断某项测试报告是否合格。第二,确定挖掘规则的参考项。 鉴于此,需要先设定项的集合I=(I1,I2,…Im),从表中找出每项的频繁度,据此建立辅表H1(列名是项的名称),统计频繁度。伪代码如下:

For i=1 To n//数据池包含n列

For j=1 To m//数据池包含m行

SELECT F (i) FROM TABLENAME WHERE F1 LIKE‘string(x)’WHERE DATE_ROWNUM=j

//从列 F(i),第 j行中找出类似字符串 x的数据

Next m

Next i

构建好辅表H1后,结合经验,设定好针对第一目标的最小支持计数,据此就可以完成本阶段第一个目标,即判断某测试报告是否合格。若不合格则返回报告,供测试部门处理。针对第二个目标,即确定数据挖掘规则,还需要确定目标数据与参考项的关联度。

2)获取强关联规则度:找出要挖掘的目标数据语义信息特征,位置特征,数据结构特征等,构建与参考项的关系规则表H2。例如,设定目标信息项为B,其参考项为A,那么表H2中包含项A,项B包含的字符串y。算法描述如下:

For i=1 To n//数据池包含n列

For j=1 To m//数据池包含m行

SELECT F (i) FROM TABLENAME WHERE F1 LIKE‘string(y)’ WHERE DATE_ROWNUM=j//从列 F(i),第 j行中找出类似字符串y的数据

Next m

Next i

构建好H2表后,计算目标数据B与参考项A的置信度,并合理设定最小置信度阀值。

3)根据前两步,得出由目标数据的最小支持计数与最小置信度制定的关联规则,然后据此开发和完善数据挖掘代码,对其他同类型的测试数据挖掘也参照H1、H2等表,无需重复扫描数据池构建关联规则。

2.3 数据分析显示层

图4 数据分析显示MVC构架图Fig.4 Data analysis display MVC architecture diagram

本层的目的是为了方便调取和观察测试数据,使得测试数据的形式经过分析加工后可以很直观的显示测试工程进展、产品质量、产品效果分析、测试效率等指标。

本系统利用Struts2+Spring+Hibernate(SSH)框架开发[13],该框架也是目前最成熟的Web应用企业级框架。结合JSP技术的优势,本系统很好地展现了网站作为数据展示平台的实用性、灵活性甚至专业性。图4是本文设计的基于Model View Controller(MVC)架构的数据分析显示层构架图。

3 基于某闪存芯片的测试工程案例应用

为了验证上述设计的可行性,该方案被用于一家半导体公司的闪存芯片测试工程中。在该测试工程中涉及到芯片的各项技术参数,测试工程包含的项目繁杂,测试数据量很大,对测试数据分析的要求也很高,因而能很好地检验本设计的可行性。该案例中,设计了满足第三范式的数据库。图5是数据库的 Entity-Relationship(E-R)图。

借助于良好的数据源,图6所示是网站对芯片测试结果的效果图。该图非常友好和专业地显示了测试工程中某芯片各项数据,与通过传统方式得出的结论非常接近。但整个运行时间却从传统方式的一周总结一次,缩短到每天都可以跟进产品测试详细结果数据。对具体芯片的测试数据管理也做到了从纷繁杂乱到有序管理。这充分说明其可行性。

图5 数据库实体-联系图Fig.5 Database entity-relationship diagram

4 结束语

本文高度结合了Excel的实用性,SQL对关系型数据的处理能力,JSP技术的显示平台,构建出非常合理可行的一个基于Web数据挖掘的测试工程数据整合分析平台。基于实际企业中对某芯片的测试案例,全程投入采用,运行稳定,效果良好。据此,以后的平台可实现更自智能化,更高效的测试数据处理流程。这对于产品的性能评估进程有重要影响。

[1]Cheng Yeh,Che-huiLien.Then comparisons of data mining techniques for the predictive accuracy of probability of default of credit card clients [J].Expert System with Application,2009(36):2473-2480.

[2]WEKA[DB/OL].[2012-01-03].http://www.cs.waikato.ac.nz/ml/weka/.

[3]Rapid-I[DB/OL].[2012-01-02].http://rapid-i/com/content/view/181/196/.

[4]吴丹.Excel 2007数据挖掘工具的研究与应用[J].电子知识与技术,2013,9(8):1736-1738.WU Dan.Research and application of data mining tools based on Excel 2007[J].Electronic knowledge and technology,2013,9(8):1736-1738.

[5]范明,孟小峰译.数据挖掘概念与技术[M].北京:机械工业出版社,2007.

[6]ZENG Dadan,YUAN Jun.Data mining application in E-government OA system[D].Shanghai:East China Normal University,2010.

[7]Ken Henderson, The Guru’s Guide to Transact-SQL[M].A ddison Wesley,2002.

[8]Chen Minsya,Jong Soo Park.Efficient data mining for path traversal pattems[J].IEEE Trasactions on Knowledge and Data Englneering,1998,10(2):209-221.

[9]Ludwig K R.Users Manual for Isoplot/Ex rev.2.49:A Geochronological toolkit for Microsoft Excel[M].Berkeley Geochronology Center Special Publication No.la,2001.

[10]Agrawal R,Imielinski T,Swami A.Mining association rules between sets of items in large databases,in:ACM SIGMOD Record,1993:207-216.

[11]Agrawal R,Srikant R.Fast algorithm for Mining association rules in large databases[C]//Proceedings of the 20th VLDB Conference.Santiago, Chile:IEEE,1994:487-499.

[12]EnduDuneja R I T S,Bhopal M P A K,Sachan R I T S.A survey on frequent itemset mining with association rules[J].International Journal of Computer Applic-ations,2012,46(23):18-24.

[13]屈霞,刘自强,张小鸣.基于J2EE/MVC Model2的公共图书馆管理系统的研究[J].计算机工程与设计,2009(20):4651-4653,4657.QU Xia,LIU Zi-qiang,ZHANG Xiao-ming.Researchof public library management system based on J2EE/MVC Model2[J].Computer Engineering and Design,2009 (20):4651-4653,4657.

[14]Chen Min,Gao Xuedong, Li Huifei.An Efficient Parallel FP-growth Algorithm [C].Proc.Of Conference on Cyberenabled Distributed Computing and Knowledge Discovery Zhangjiajie, China:[s.n.], 2009.

图6 芯片测试结果图Fig.6 Chip testing map

猜你喜欢
数据挖掘关联规则
撑竿跳规则的制定
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
数独的规则和演变
探讨人工智能与数据挖掘发展趋势
“一带一路”递进,关联民生更紧
奇趣搭配
让规则不规则
基于并行计算的大数据挖掘在电网中的应用
智趣
TPP反腐败规则对我国的启示