亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種測(cè)試用例選擇方法和裝置的制造方法

文檔序號(hào):9217116閱讀:590來源:國知局
一種測(cè)試用例選擇方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)測(cè)試技術(shù),尤指一種測(cè)試用例選擇方法和裝置。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)程序作為其中一項(xiàng)重要的發(fā)展內(nèi)容,對(duì)計(jì)算機(jī)程 序進(jìn)行錯(cuò)誤定位為測(cè)該程序的主要方式。為了產(chǎn)生較好的錯(cuò)誤定位效果,目前通常使用的 錯(cuò)誤定位技術(shù)需要覆蓋度很高的測(cè)試用例集作為輸入,需要收集每個(gè)測(cè)試用例的覆蓋信息 和執(zhí)行結(jié)果,兩者缺一不可。
[0003] 然而,在一些程序失效的測(cè)試場(chǎng)景下,并沒有大量已知執(zhí)行結(jié)果的測(cè)試用例可以 用來進(jìn)行錯(cuò)誤定位,例如處于開發(fā)過程中的計(jì)算機(jī)程序。在這種情況下,已知執(zhí)行結(jié)果的測(cè) 試用例的數(shù)量通常非常少,將這些少量的已知執(zhí)行結(jié)果測(cè)試用例用于錯(cuò)誤定位時(shí),無法準(zhǔn) 確定位出程序的錯(cuò)誤語句。在上述場(chǎng)景中場(chǎng)景,測(cè)試用例的覆蓋信息可以通過插粧的方法 自動(dòng)收集,但是這些測(cè)試用例的執(zhí)行結(jié)果是未知的,需要通過進(jìn)一步的判斷以獲取執(zhí)行結(jié) 果;例如可以通過運(yùn)行所有測(cè)試用例來判斷執(zhí)行結(jié)果是否正確,即判斷所有測(cè)試用例的執(zhí) 行結(jié)果是否與預(yù)期相符合;再例如,還可以通過構(gòu)造自動(dòng)化的測(cè)試預(yù)言來判斷所有測(cè)試用 例的執(zhí)行結(jié)果的判定。
[0004] 顯然地,現(xiàn)有技術(shù)在進(jìn)行錯(cuò)誤定位時(shí),由于需要預(yù)先獲取所有測(cè)試用例的執(zhí)行結(jié) 果,從而導(dǎo)致通過錯(cuò)誤定位的效率較低的問題。

【發(fā)明內(nèi)容】

[0005] 為了解決上述技術(shù)問題,本發(fā)明提供了一種測(cè)試用例選擇方法和裝置,以解決現(xiàn) 有技術(shù)在進(jìn)行錯(cuò)誤定位時(shí),由于需要預(yù)先獲取所有測(cè)試用例的執(zhí)行結(jié)果,從而導(dǎo)致通過錯(cuò) 誤定位的效率較低的問題。
[0006] 第一方面,本發(fā)明提供的一種測(cè)試用例選擇方法,包括:
[0007] 通過第一測(cè)試用例集中每個(gè)測(cè)試用例運(yùn)行程序,獲取所述第一測(cè)試用例集中每個(gè) 測(cè)試用例對(duì)應(yīng)于程序中每條語句的覆蓋信息,其中,所述第一測(cè)試用例集包括至少一個(gè)失 敗測(cè)試用例和第二測(cè)試用例集;
[0008] 根據(jù)所述第一測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息,將所述第二測(cè)試用例集中 的部分所述測(cè)試用例添加到第三測(cè)試用例集中;
[0009] 通過已添加的第三測(cè)試用例集中的每個(gè)測(cè)試用例定位出所述程序中錯(cuò)誤的語句, 以計(jì)算出所述程序中每條語句的可疑度。
[0010] 在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述第三測(cè)試用例集的初始值包括所述 至少一個(gè)失敗測(cè)試用例,所述根據(jù)所述第一測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息,將所 述第二測(cè)試用例集中的部分所述測(cè)試用例添加到第三測(cè)試用例集中之前,還包括:
[0011] 根據(jù)所述第一測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息將所述程序的語句劃分為 動(dòng)態(tài)基本塊DBB,所述動(dòng)態(tài)DBB中的語句具有相同覆蓋信息;
[0012] 根據(jù)當(dāng)前第三測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息,生成所述動(dòng)態(tài)DBB的當(dāng)前 最大分組集合,所述當(dāng)前最大分組集合中的最大分組包括一個(gè)或多個(gè)所述動(dòng)態(tài)DBB,所述當(dāng) 前最大分組集合中的每個(gè)最大分組被所述當(dāng)前第三測(cè)試用例集中相同的測(cè)試用例覆蓋;
[0013] 根據(jù)所述第一測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息,將所述第二測(cè)試用例集中 的部分所述測(cè)試用例添加到第三測(cè)試用例集中,包括:
[0014] 從當(dāng)前第二測(cè)試用例集中選擇將當(dāng)前分組集合中的分組劃分為第一分組和第二 分組的測(cè)試用例,所述已選擇的測(cè)試用例對(duì)所述第一分組和所述第二分組具有不同的覆蓋 信息,所述當(dāng)前分組集合中的分組包括一個(gè)或多個(gè)所述動(dòng)態(tài)DBB,分組集合的初始值為通過 所述第三測(cè)試用例集的初始值生成的最大分組集合;
[0015] 獲取所述已選擇的測(cè)試用例的執(zhí)行結(jié)果,并將所述已選擇的測(cè)試用例添加到所述 當(dāng)前第三測(cè)試用例集中;
[0016] 當(dāng)所述當(dāng)前分組集合中的每個(gè)分組均不能被所述當(dāng)前第二測(cè)試用例集中測(cè)試用 例劃分時(shí),判斷所述當(dāng)前分組集合與通過所述當(dāng)前第三測(cè)試用例集生成的最大分組集合是 否相同;
[0017] 若不同,則將所述當(dāng)前分組集合中的分組進(jìn)行合并以形成最大分組,從而根據(jù)所 述第一測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息,繼續(xù)執(zhí)行將所述第二測(cè)試用例集中的部分 所述測(cè)試用例添加到第三測(cè)試用例集的操作,其中,所述合并的分組為所述當(dāng)前分組集合 中被相同數(shù)量的正確測(cè)試用例和相同數(shù)量的失敗測(cè)試用例覆蓋的分組;
[0018] 若相同,則完成所述第三測(cè)試用例集的添加操作。
[0019] 根據(jù)第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述從當(dāng) 前第二測(cè)試用例集中選擇將當(dāng)前分組集合中的分組劃分為第一分組和第二分組的測(cè)試用 例,包括:
[0020] 從所述當(dāng)前第二測(cè)試用例集中選擇將所述分組均勻的劃分為所述第一分組和所 述第二分組的測(cè)試用例。
[0021] 根據(jù)第一方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中, 從所述當(dāng)前第二測(cè)試用例集中選擇的測(cè)試用例滿足以下條件:
[0022]
,其中,Split(t,gD=min(|gn |,|gi21)
[0023] 其中,S(gi)表示被所述已選擇的測(cè)試用例t覆蓋的分組gi中包含錯(cuò)誤語句的程 度,|G〇g|表示根據(jù)所述當(dāng)前第三測(cè)試用例集I;形成的分組的數(shù)量,sPiit(t,gi)表示所 述已選擇的測(cè)試用例t將所述分組gi劃分為所述第一分組gn和所述第二分組gi2中較小 的一個(gè)包含的動(dòng)態(tài)DBB的數(shù)量。
[0024] 第二方面,本發(fā)明提供的一種測(cè)試用例選擇裝置,包括:
[0025] 獲取模塊,用于通過第一測(cè)試用例集中每個(gè)測(cè)試用例運(yùn)行程序,獲取所述第一測(cè) 試用例集中每個(gè)測(cè)試用例對(duì)應(yīng)于程序中每條語句的覆蓋信息,其中,所述第一測(cè)試用例集 包括至少一個(gè)失敗測(cè)試用例和第二測(cè)試用例集;
[0026] 添加模塊,用于根據(jù)所述獲取模塊獲取的第一測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋 信息,將所述第二測(cè)試用例集中的部分所述測(cè)試用例添加到第三測(cè)試用例集中;
[0027] 錯(cuò)誤定位模塊,用于通過所述添加模塊添加的第三測(cè)試用例集中的每個(gè)測(cè)試用例 定位出所述程序中錯(cuò)誤的語句,以計(jì)算出所述程序中每條語句的可疑度。
[0028] 在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述第三測(cè)試用例集的初始值包括所述 至少一個(gè)失敗測(cè)試用例,所述裝置還包括:第一生成模塊,用于在所述添加模塊根據(jù)所述獲 取模塊獲取的第一測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息,將所述第二測(cè)試用例集中的部 分所述測(cè)試用例添加到第三測(cè)試用例集中之前,根據(jù)所述獲取模塊獲取的第一測(cè)試用例集 中每個(gè)測(cè)試用例的覆蓋信息將所述程序的語句劃分為動(dòng)態(tài)基本塊DBB,所述動(dòng)態(tài)DBB中的 語句具有相同覆蓋信息;
[0029] 第二生成模塊,用于根據(jù)當(dāng)前第三測(cè)試用例集中每個(gè)測(cè)試用例的覆蓋信息,生成 所述動(dòng)態(tài)DBB的當(dāng)前最大分組集合,所述當(dāng)前最大分組集合中的最大分組包括一個(gè)或多個(gè) 所述動(dòng)態(tài)DBB,所述當(dāng)前最大分組集合中的每個(gè)最大分組被所述當(dāng)前第三測(cè)試用例集中相 同的測(cè)試用例覆蓋;
[0030] 則添加模塊,包括:選擇單元,用于從當(dāng)前第二測(cè)試用例集中選擇將當(dāng)前分組集合 中的分組劃分為第一分組和第二分組的測(cè)試用例,所述已選擇的測(cè)試用例對(duì)所述第一分組 和所述第二分組具有不同的覆蓋信息,所述當(dāng)前分組集合中的分組包括一個(gè)或多個(gè)所述動(dòng) 態(tài)DBB,分組集合的初始值為通過所述第三測(cè)試用例集的初始值生成的最大分組集合;
[0031] 添加單元,用于獲取所述選擇單元已選擇的測(cè)試用例的執(zhí)行結(jié)果,并將所述已選 擇的測(cè)試用例添加到所述當(dāng)前第三測(cè)試用例集中;
[0032] 判斷單元,用于當(dāng)所述當(dāng)前分組集合中的每個(gè)分組均不能被所述當(dāng)前第二測(cè)試用 例集中測(cè)試用例劃分時(shí),判斷所述當(dāng)前分組集合與通過所述當(dāng)前第三測(cè)試用例集生成的最 大分組集合是否相同;
[0033] 則所述添加單元,還用于在所述判斷單元的判斷結(jié)果為不同時(shí),將所述當(dāng)前分組 集合中的分組進(jìn)行合并以形成最大分組,從而根據(jù)所述第一測(cè)試用例集中每個(gè)測(cè)試用例的 覆蓋信息,繼續(xù)執(zhí)行將所述第二測(cè)試用例集中的部分所述測(cè)試用例添加到第三測(cè)試用例集 的操作,其中,所述合并的分組為所述當(dāng)前分組集合中被相同數(shù)量的正確測(cè)試用例和相同 數(shù)量的失敗測(cè)試用例覆蓋的分組;或者,
[0034] 所述添加單元,還用于在所述判斷單元的判斷結(jié)果為相同時(shí),完成所述第三測(cè)試 用例集的添加操作。
[0035] 根據(jù)第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述選擇 單元,具體用于從所述當(dāng)前第二測(cè)試用例集中選擇將所述分組均勻的劃分為所述第一分組 和所述第二分組的測(cè)試用例。
[0036] 根據(jù)第二方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中, 所述選擇單元從所述當(dāng)前第二測(cè)試用例集中選擇的測(cè)試用例滿足以下條件:
[0037]
,其中,Split(t,gD=min(|gn |,|gi21)
[0038] 其中,S(gi)表示被所述已選擇的測(cè)試用例t覆蓋的分組gi中包含錯(cuò)誤語句的程 度,|G〇g|表示根據(jù)所述當(dāng)前第三測(cè)試用例集I;形成的分組的數(shù)量,sPiit(t,gi
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1