摘 要:系統(tǒng)質(zhì)量的要求隨著日益龐大的系統(tǒng)規(guī)模而提高,系統(tǒng)測試是保證系統(tǒng)質(zhì)量的重要方式。隨著系統(tǒng)測試難度的增大,測試團隊不僅需要遵循正確的測試步驟展開工作,同時也要優(yōu)化測試方法以提高測試的效率。文章通過對歷史測試數(shù)據(jù)的挖掘,提出了測試執(zhí)行策略的優(yōu)化方法,并建立測試團隊和研發(fā)團隊的雙向反饋,優(yōu)化需求分析,從根本上提高了測試團隊的協(xié)作效率,保障了系統(tǒng)的可靠性。最后針對系統(tǒng)測試工作提出了展望。
關(guān)鍵詞:可靠測試;優(yōu)化;數(shù)據(jù)分析
高質(zhì)量且高可靠性的企業(yè)應(yīng)用程序系統(tǒng)是數(shù)字化時代非常重要的元素[1]。測試團隊在確保企業(yè)應(yīng)用程序系統(tǒng)滿足既定標(biāo)準(zhǔn)或需求時會發(fā)揮非常重要的作用。隨著系統(tǒng)的規(guī)模和復(fù)雜性升級,其可靠性和質(zhì)量要求必然成倍增長,這意味著測試團隊需要開發(fā)更有效的測試方法。一個完整的測試過程包括數(shù)據(jù)記錄、數(shù)據(jù)維護、數(shù)據(jù)驗證等多個方面。測試數(shù)據(jù)管理策略對于測試數(shù)據(jù)的記錄必須是全面的,這也為后期的數(shù)據(jù)分析挖掘提供了支撐。
陳翔等人在文獻[2]中重點闡述了回歸測試中用例優(yōu)先排序(test case prioritization,簡稱TCP)問題。從源代碼、需求和模型三個角度對TCP問題進行分類,重點分析了回歸測試中測試資源缺乏時的TCP問題。另外,潘偉豐等人在文獻[3]中提出了基于錯誤傳播網(wǎng)絡(luò)的測試用例排序方法。該方法在類粒度將軟件抽象成加權(quán)類依賴網(wǎng)絡(luò)(weighted class dependency network, 簡稱WCDN)模型,并基于WCDN分析錯誤在網(wǎng)絡(luò)上的傳播行為,構(gòu)造錯誤傳播網(wǎng)絡(luò)(bug propagation network,BPN)。實例研究表明,基于錯誤傳播網(wǎng)絡(luò)的測試用例排序方法在錯誤檢出率上相比于其他經(jīng)典方法有一定的提高,并且具有較好的穩(wěn)定性。一個全面的用例排序方法,能準(zhǔn)確地將當(dāng)前的軟件質(zhì)量反映到執(zhí)行用例的優(yōu)先級上[4-5]。通過使用正確的TCP策略測試團隊能夠提供及早發(fā)現(xiàn)缺陷,在整個產(chǎn)品開發(fā)過程中,為提供更簡單的方法去解決系統(tǒng)缺陷提供支撐。因此,擁有正確的TCP策略對測試團隊乃至公司都至關(guān)重要,能加快系統(tǒng)發(fā)布周期并大幅削減成本。然而在現(xiàn)有的研究工作中,TCP策略問題主要集中在回歸測試階段,但是回歸測試處于整個測試過程的末端[6]。由于回歸測試時對于本系統(tǒng)缺陷分布情況有非常清晰的概念,但是由于處于末端,對于測試團隊的優(yōu)化畢竟有限。同時測試團隊與研發(fā)團隊往往是單線交流,即研發(fā)團隊發(fā)布待測系統(tǒng),測試團隊極少參與提高研發(fā)團隊的開發(fā)質(zhì)量。
因此,可以從測試用例執(zhí)行策略和測試結(jié)果反向優(yōu)化開發(fā)策略兩個方面展開研究,并提高系統(tǒng)可靠性。測試用例執(zhí)行順序問題是測試執(zhí)行策略中非常重要的部分,在測試項目中持續(xù)優(yōu)化測試用例執(zhí)行順序可以提早發(fā)現(xiàn)潛在的缺陷。同時由于測試團隊對于項目整體的理解更為透徹,對缺陷的總體分析可以幫助研發(fā)團隊在類似問題上處理地更為妥善。測試團隊在需求分析階段的有效介入,將從源頭上提高系統(tǒng)的質(zhì)量和可靠性。
1 測試執(zhí)行策略優(yōu)化
測試中的關(guān)鍵問題是第一時間發(fā)現(xiàn)被測系統(tǒng)不符合規(guī)范要求的內(nèi)容。測試經(jīng)理在測試規(guī)劃時是通過大量的測試用例保證測試的覆蓋率。持續(xù)優(yōu)化測試用例執(zhí)行順序是在保障測試覆蓋率的同時,合理地安排測試用例地執(zhí)行順序,即TCP問題。文章提出將項目測試分為三個階段,在項目測試的初期、中期、后期三方面分別進行優(yōu)化TCP,最終優(yōu)化整個測試執(zhí)行策略。
如圖1 所示,項目測試初期,分析測試用例的歷史數(shù)據(jù)得到測試用例的執(zhí)行潛在價值,優(yōu)先執(zhí)行潛在價值高的測試用例。比如在其它項目中執(zhí)行某些用例時,發(fā)現(xiàn)了系統(tǒng)不符合規(guī)范要求的部分,并提交了缺陷。在新的測試用例執(zhí)行時,應(yīng)首先執(zhí)行這類測試用例以便快速發(fā)現(xiàn)系統(tǒng)缺陷。項目測試中期,分析本項目當(dāng)前缺陷情況得到各個系統(tǒng)功能模塊的缺陷發(fā)生概率。優(yōu)先執(zhí)行缺陷分布較多的功能模塊相關(guān)的測試用例。項目測試后期,即回歸測試階段,需結(jié)合各個系統(tǒng)功能模塊在本項目和歷史項目中的缺陷發(fā)生概率,在保證一定回歸比率的情況下,綜合考慮本項目和歷史項目的分析,優(yōu)先回歸測試缺陷發(fā)生概率較高的模塊。
2 需求分析優(yōu)化
項目測試工作通常被安排在項目研發(fā)工作之后,測試團隊的主要工作也僅僅是將測試結(jié)果中發(fā)現(xiàn)的缺陷情況報告給研發(fā)團隊,并沒有對缺陷情況進行分析,可能使得類似的缺陷在不同的項目中反復(fù)出現(xiàn)。因此測試團隊在提供測試報告的同時,對各個功能模塊中所發(fā)現(xiàn)的缺陷進行分析,并在新項目立項初期給出系統(tǒng)模塊開發(fā)時的缺陷概率,幫助研發(fā)團隊在需求分析階段重點考慮高缺陷概率的模塊開發(fā)和模塊間的協(xié)作,從源頭上降低缺陷發(fā)生的概率。測試團隊與研發(fā)團隊的雙向反饋將優(yōu)化產(chǎn)品設(shè)計的需求分析階段,提高系統(tǒng)的可靠性,如圖2所示。
圖2 測試團隊和研發(fā)團隊雙向通道
3 結(jié)束語
文章從優(yōu)化測試用例執(zhí)行順序和測試結(jié)果優(yōu)化需求分析兩個方面,闡述了現(xiàn)在系統(tǒng)開發(fā)中提高系統(tǒng)可靠性的重要方法。測試數(shù)據(jù)的管理是一座金礦,對測試數(shù)據(jù)的深入分析可以讓整個測試過程不再是靜止的,而是可以動態(tài)調(diào)節(jié)以應(yīng)對更復(fù)雜的情況,同時深入分析測試結(jié)果也可以建立測試研發(fā)的雙向通道,形成良性循環(huán)。最終可以超預(yù)期地提交高質(zhì)量的系統(tǒng),節(jié)約運營成本,完成市場搶占。
參考文獻
[1]K.Krishna Murthy, Janardhana S Channagiri, \"test data management: Enabling reliable testing through realistic test data\"Building Tomorrow's Enterprise, Oct 2009.
[2]陳翔,陳繼紅,鞠小林,等.“回歸測試中的測試用例優(yōu)先排序技術(shù)述評”[J].系統(tǒng)軟件與軟件工程,2013(8).
[3]潘偉豐,李兵,周曉燕,等.“基于錯誤傳播網(wǎng)絡(luò)的回歸測試用例排序方法”[J].計算機研究與發(fā)展,2016(3).
[4]朱海燕,范輝,謝青松,等.“測試用例排序的研究”[J].計算機工程與科學(xué),2008(1).
[5]潘偉豐,李兵,馬于濤,等.“基于復(fù)雜軟件網(wǎng)絡(luò)的回歸測試用例優(yōu)先級排序”[J].電子學(xué)報,2012(12)
[6]楊廣華,包陽,李東紅,等.“基于需求的測試用例優(yōu)先級排序”[J].計算機工程與設(shè)計,2011(8).