一種測試用例聚類取樣方法,基于觀測的軟件測試技術(shù)中的聚類過濾技術(shù),在類簇中挑選測試用例進行驗證,根據(jù)驗證結(jié)果計算其所執(zhí)行的語句的可信度,判斷是否可疑語句,可疑語句構(gòu)成可疑語句集合;根據(jù)可疑語句集合計算該類簇中剩余測試用例失敗的可能性,挑選失敗可能性最高的測試用例,驗證結(jié)果并重新計算各語句的可信度,更新可疑語句集合,對未驗證的測試用例重復(fù)取樣過程,直到該類簇中所有剩余測試用例的失敗可能性都為0。本發(fā)明專利技術(shù)取樣剩余的測試用例均不再驗證其結(jié)果,實現(xiàn)了測試用例的約簡,節(jié)約了人工驗證測試結(jié)果的時間和精力,同時確保被取樣的測試用例中失敗測試用例占很大比例,語句的可信度值可以用來幫助測試人員進行錯誤定位。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)屬于軟件測試領(lǐng)域,涉及軟件測試結(jié)果的驗證,首先根據(jù)執(zhí)行路徑對測試用例進行聚類,然后從各個類簇中抽取測試用例來讓人工檢查測試結(jié)果,通過約簡需要人 工檢查結(jié)果的測試用例集來節(jié)約人力。本專利技術(shù)主要應(yīng)用于測試輸入的產(chǎn)生和測試用例的執(zhí) 行可以自動完成,但測試結(jié)果需要人工比對的場景下,為。
技術(shù)介紹
傳統(tǒng)的軟件測試方法包括三個步驟1)創(chuàng)建測試輸入;2)執(zhí)行測試用例;3)檢查 測試結(jié)果。軟件測試需要耗費大量的時間和人力,但它是確保軟件質(zhì)量的重要手段。為了 節(jié)約測試成本,研究人員設(shè)計出了一些自動化的工具來幫助生成測試輸入,執(zhí)行測試用例 和檢查測試結(jié)果。然而,在操作型測試(如beta測試,領(lǐng)域測試)中,測試結(jié)果多樣化,無 法事先精確的描述清楚,因此需要人工去驗證,從而耗費大量的人力。針對這種測試輸入的產(chǎn)生和測試用例的執(zhí)行可以自動完成,但測試結(jié)果需要人 工驗證的情況,David Leon等人提出了基于觀測的軟件測試技術(shù)(Observation-Based Testing),包括三個步驟1)為所有測試用例創(chuàng)建好測試輸入;2)執(zhí)行所有的測試用例, 并記錄下每個測試用例的執(zhí)行路徑;3)分析每個測試用例的執(zhí)行路徑信息,挑選測試用例 來讓人工檢查其測試結(jié)果是否符合需求。因此,基于觀測的軟件測試技術(shù)是通過減少需要 人工檢查的測試用例數(shù)來節(jié)約人力,但同時盡可能挑出最多的失敗用例以保持測試的有效 性。2001年,William Dickinson等人用通過實驗證明了聚類過濾技術(shù)是一種有效的 基于觀測的軟件測試技術(shù),主要包括以下三個步驟1.運行所有的測試用例,記錄下執(zhí)行路徑信息。2.根據(jù)測試用例的執(zhí)行路徑來聚類,這樣具有相似執(zhí)行路徑的測試用例就會被聚 到同一個類簇中。3.從每個類簇中取樣,挑選出來的測試用例構(gòu)成了約簡后的測試用例集。測試人 員只需要對這些測試用例進行驗證即可。其中第3步的取樣方法會很大程度的影響測試用例集約簡的效果。已經(jīng)有學(xué)者提 出了以下幾種取樣方法1)從每個類簇中隨機挑選一個(One-per-cluster Sampling)在最理想的情況 下,相同程序錯誤導(dǎo)致的失敗測試用例都聚在同一個類簇中。要找出所有的程序錯誤,只需 要從每個類簇中隨機挑選一個測試用例即可。但實際上聚類的效果不可能那么好,一個類 簇中可能混雜了成功測試用例和不同的程序錯誤導(dǎo)致的失敗測試用例。另外,僅根據(jù)該錯 誤導(dǎo)致的一個失敗測試用例,程序員很難進行錯誤定位。因此,取樣的目標(biāo)是盡可能找出最 多的失敗測試用例。2)從每個類簇中隨機挑選多個(N-per-cluster Sampling)該方法旨在通過挑 選更多的測試用例來找出更多的失敗用例。但是該方法只是“從每個類簇中隨機挑選一個”的簡單擴展,它們本質(zhì)上都是簡單的隨機抽樣,并沒有利用任何信息來指導(dǎo)抽樣。3)自適應(yīng)取樣(Adaptive Sampling)首先從每個類簇中隨機挑選一個測試用例,然后對所有這些測試用例的執(zhí)行結(jié)果進行驗證。如果一個測試用例失敗了,則它所在類 簇中的所有剩余測試用例都會被挑選出來進行驗證;否則,該測試用例成功了,則它所在類 簇中所有剩余測試用例都被過濾掉。William Dickinson等人通過實驗證明,該自適應(yīng)挑選 方法要比以上兩種簡單隨機抽樣更有效。在約簡集大小一樣的情況下,該方法能挑選出更 多的失敗測試用例。然而,這種自適應(yīng)取樣技術(shù)的效果很大程度上依賴于第一次隨機挑選 出的測試用例。如果從一個類簇中隨機挑選出的測試用例驗證結(jié)果為失敗,那么整個類簇 都會被選中,即使該類簇中成功測試用例占了大部分;同樣,如果從一個類簇中隨機挑選出 的測試用例驗證結(jié)果為成功,那么整個類簇都會被拋棄,即使該類簇中失敗測試用例占了 大部分。
技術(shù)實現(xiàn)思路
本專利技術(shù)所要解決的技術(shù)問題是現(xiàn)有的基于觀測的軟件測試技術(shù)在測試結(jié)果檢查 上不夠全面,需要改進現(xiàn)有的“自適應(yīng)取樣”技術(shù),充分利用每個類簇中已被選中的測試用 例的執(zhí)行頻譜信息來幫助挑選測試用例,并決定何時停止從該類簇中取樣。本專利技術(shù)的技術(shù)方案為,軟件測試的測試用例執(zhí)行后, 根據(jù)測試用例的執(zhí)行路徑聚類得到多個類簇,在類簇中挑選測試用例進行驗證,根據(jù)被選 中的測試用例的驗證結(jié)果,計算其所執(zhí)行的語句的可信度,如果測試用例驗證通過,語句可 信度增加,反之則減少;如果一個語句的可信度低于給定的閾值,則該語句為可疑語句,可 疑語句構(gòu)成可疑語句集合;根據(jù)可疑語句集合計算該類簇中剩余的每個測試用例失敗的可 能性,某測試用例執(zhí)行過越多可疑語句其失敗可能性越高,挑選失敗可能性最高的那個測 試用例,然后根據(jù)該測試用例的驗證結(jié)果重新計算各語句的可信度,更新可疑語句集合,并 計算未驗證的剩余測試用例失敗的可能性,挑選下一個失敗可能性最高的測試用例來驗證 其結(jié)果;整個取樣過程如此重復(fù)下去,直到該類簇中所有剩余測試用例的失敗可能性都為 0,即剩余測試用例的所執(zhí)行語句均不在可疑語句集合中,取樣剩余的測試用例均不再驗證 其結(jié)果,實現(xiàn)測試用例的約簡并確保被取樣的測試用例中失敗測試用例的比例。本專利技術(shù)具體步驟如下1)設(shè)聚類后得到m個類簇C1, C2. . . Cffl, j表示類簇編號,初始化j = 1 ;2)初始化所有語句的可信度為0 ;從類簇Ci中挑選執(zhí)行語句最多的測試用例t ;3)驗證測試用例測試人員驗證測試用例t的執(zhí)行結(jié)果,獲取反饋信息該測試用 例是失敗,還是成功;4)計算執(zhí)行語句可信度根據(jù)測試用例t的驗證結(jié)果,計算語句的可信度,計算語 句可信度的公式為confidence (s) = passed (s)-failed (s),即語句s的可信度等于執(zhí)行過 S并且通過的測試用例的個數(shù),減去執(zhí)行過S并且失敗的測試用例個數(shù),也就是如果t驗證 失敗了,則t執(zhí)行過的所有語句的可信度減1 ;否則,t成功了,則t執(zhí)行過的所有語句的可 信度加1 ;5)語句識別根據(jù)語句的可信度,將語句識別為可疑語句和可信語句兩種,設(shè)定 一個閾值Conf idenceThreshold,簡寫為CT,所有可信度小于CT的語句被識別為可疑語句,具體公式為suspicious (S) = {s e S I confidence (s) < CT};所有可信度大于或等于CT的 語句被識別為可信語句,具體公式為correct (S) = {s e S | confidence (s) >= CT};可疑 語句集和可信語句集之間沒有交集胃Π CW(S) = 0 .6)測試用例失敗可能性度量測試用例t執(zhí)行過的語句集表示為t (S) = {s e Slt executes s},測試用例t失敗的可能性為其執(zhí)行過的可疑語句的個數(shù),計算公式為 failpossibiIity(t) = 11(S) Π suspicious (S) | ;7)選取類簇剩余測試用例中失敗可能性最大的測試用例根據(jù)計算出 來的剩余 測試用例的失敗可能性,選取其中失敗可能性最大的測試用例t’ ;如果多個測試用例擁有 最大失敗可能性,則采用隨機挑選的方法,從中挑選出一個測試用例t’ ;8)如果t’的失敗可能性值為0,則停止從類簇Cj中取樣,j = j+1,如果j <= m 則返回步驟2),開始從下一個類簇中取樣;如果j > m,即本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種測試用例聚類取樣方法,軟件測試的測試用例執(zhí)行后,根據(jù)測試用例的執(zhí)行路徑聚類得到多個類簇,其特征是在類簇中挑選測試用例進行驗證,根據(jù)被選中的測試用例的驗證結(jié)果,計算其所執(zhí)行的語句的可信度,如果測試用例驗證通過,語句可信度增加,反之則減少;如果一個語句的可信度低于給定的閾值,則該語句為可疑語句,可疑語句構(gòu)成可疑語句集合;根據(jù)可疑語句集合計算該類簇中剩余的每個測試用例失敗的可能性,某測試用例執(zhí)行過越多可疑語句其失敗可能性越高,挑選失敗可能性最高的那個測試用例,然后根據(jù)該測試用例的驗證結(jié)果重新計算各語句的可信度,更新可疑語句集合,并計算未驗證的剩余測試用例失敗的可能性,挑選下一個失敗可能性最高的測試用例來驗證其結(jié)果;整個取樣過程如此重復(fù)下去,直到該類簇中所有剩余測試用例的失敗可能性都為0,即剩余測試用例的所執(zhí)行語句均不在可疑語句集合中,取樣剩余的測試用例均不再驗證其結(jié)果,實現(xiàn)測試用例的約簡并確保被取樣的測試用例中失敗測試用例的比例。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:趙志宏,嚴(yán)莎莉,陳振宇,章宸,
申請(專利權(quán))人:南京大學(xué),
類型:發(fā)明
國別省市:84[中國|南京]
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。