韓 茂,邱 崧,李外云
(華東師范大學 信息科學技術學院,上海 200241)
測試工程是保證產品質量的一個重要環節,測試工程技術在企業設計、研發、生產產品面向市場的過程中是必不可少的一環。有效的測試工程技術不僅可以將讓工程師快速地了解產品的實際狀態,避免生產出不合格的產品,而且還可以促進產品的后續改進和提高。當前,許多企業已經建立了各自完備的自動化、半自動化測試流程與技術,將測試工程的自動化、規范化作為一項必不可少的工作流程。實踐證明,這些測試方式不僅可以保證產品的質量,而且還可以提高工作效率。但是,相當一部分企業包括目前大部分針對這方面的研究都是通過測試工程獲取基礎的數據信息后,只會對數據進行一般性的技術處理[1],或者用一些專業軟件對數據進行分析[2-3],對歷史數據的管理也僅僅是借助于Office辦公軟件進行分析和管理[4],并沒有形成統一、可靠、有效的管理體系。因此,對于更優秀的測試工程數據整合分析平臺需要解決以下幾個問題:
1)如何整合、挖掘企業內部不同系統或部門的測試數據信息,甚至包括被部分加工過的數據信息。
2)由自動化測試工程產生的大量數據所引起的數據存儲方式及結構問題,即數據庫建設問題。
3)對于已經整合好的數據信息,需要通過設計的算法對其分析,才能實現對數據信息的可視化處理,讓測試工程平臺更直觀、快捷地反映企業產品的信息特征。
為了克服這些問題,本文提出設計一套測試工程數據整合分析平臺,該平臺首先實現了將測試工程數據分類,分別開發出快捷可靠的數據挖掘流轉方案(例如,針對Web端數據的數據挖掘方案),將這些數據抽取到中轉數據池中。然后創造性地利用Microsoft SQL Server(MS SQL)對中轉數據池中的數據進行關聯規則挖掘[5],這種方法能夠精確、迅速地分辨龐大的數據池中有用的信息。最后,該平臺又基于實際的業務需求設計算法,靈活地對已經挖掘的數據再加工,將其可視化為圖表和其他形式。整個系統相較與傳統模式,極大地增強了對測試工程數據的科學管理,縮短了數據處理的周期,同時也有助于工程師對產品測試結果有更直觀、可靠的判斷。
本系統的設計遵循了可靠性、高效性、實用性等幾個原則,按照業務要求分層處理,將數據處理的流程分為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優良的設計功能,對數據分析的結能以非常專業而精準的圖像顯示,這對于直觀、快捷判斷測試結果是至關重要的。
測試數據的來源有很多種,對其處理方式也不盡相同。比如說,對于原本就數據結構良好的數據庫或者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
回上海前一天,陶小西陪溫衡去福利院看奶奶,奶奶卻已經患了老年癡呆,認不出她的孫女了。溫衡無奈地塞給她一些錢,又千恩萬謝地拜托護士好好照料。
數據挖掘的方式有很多,本文設計的數據整合分析平臺在數據抽取階段已經完成將源數據按照最基本的行列關系抽取到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等表,無需重復掃描數據池構建關聯規則。

圖4 數據分析顯示MVC構架圖Fig.4 Data analysis display MVC architecture diagram
本層的目的是為了方便調取和觀察測試數據,使得測試數據的形式經過分析加工后可以很直觀的顯示測試工程進展、產品質量、產品效果分析、測試效率等指標。
本系統利用Struts2+Spring+Hibernate(SSH)框架開發[13],該框架也是目前最成熟的Web應用企業級框架。結合JSP技術的優勢,本系統很好地展現了網站作為數據展示平臺的實用性、靈活性甚至專業性。圖4是本文設計的基于Model View Controller(MVC)架構的數據分析顯示層構架圖。
為了驗證上述設計的可行性,該方案被用于一家半導體公司的閃存芯片測試工程中。在該測試工程中涉及到芯片的各項技術參數,測試工程包含的項目繁雜,測試數據量很大,對測試數據分析的要求也很高,因而能很好地檢驗本設計的可行性。該案例中,設計了滿足第三范式的數據庫。圖5是數據庫的 Entity-Relationship(E-R)圖。
借助于良好的數據源,圖6所示是網站對芯片測試結果的效果圖。該圖非常友好和專業地顯示了測試工程中某芯片各項數據,與通過傳統方式得出的結論非常接近。但整個運行時間卻從傳統方式的一周總結一次,縮短到每天都可以跟進產品測試詳細結果數據。對具體芯片的測試數據管理也做到了從紛繁雜亂到有序管理。這充分說明其可行性。

圖5 數據庫實體-聯系圖Fig.5 Database entity-relationship diagram
本文高度結合了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