基于機(jī)器學(xué)習(xí)的編譯器測試優(yōu)化方法研究
發(fā)布時(shí)間:2021-11-27 11:20
編譯器是最重要的系統(tǒng)軟件之一。如果編譯器本身有問題,那么它編譯生成的可執(zhí)行文件可能會出現(xiàn)嚴(yán)重的錯(cuò)誤。編譯器測試能夠保證編譯器的質(zhì)量。近年來,許多技術(shù)促進(jìn)了編譯器自動化測試技術(shù)的發(fā)展。它們通常依賴于一些測試用例生成的工具(如Csmith等),用來生成大量的測試用例(編譯器測試的輸入)。因?yàn)榫幾g器是一個(gè)非常龐大、復(fù)雜的軟件,測試人員往往會利用大量的測試用例對編譯器進(jìn)行壓力測試。雖然現(xiàn)有的編譯器測試方法引入額外的特征對編譯器測試過程進(jìn)行改進(jìn),但是它們均存在嚴(yán)重的效率問題。編譯器測試優(yōu)化即優(yōu)化編譯器測試程序的執(zhí)行順序,加速編譯器測試過程,提升編譯器測試能力。許多加速編譯器測試的方法通過特定的準(zhǔn)則,優(yōu)先執(zhí)行最有可能觸發(fā)編譯器錯(cuò)誤的測試用例。但是,它們忽略了編譯器測試過程中的一個(gè)嚴(yán)重問題,即不同的測試用例極有可能觸發(fā)相同的編譯器錯(cuò)誤。測試覆蓋信息能夠有效地區(qū)分測試程序。由于編譯器測試中測試用例均是由自動化測試生成工具自動生成的,動態(tài)獲取測試程序的覆蓋信息的開銷是巨大的。本文提出一種能夠靜態(tài)獲取測試程序覆蓋信息的方法,利用得到的覆蓋信息,基于聚類的方法,重新排列測試程序在編譯器測試過程中的執(zhí)行順序,...
【文章來源】:吉林大學(xué)吉林省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:54 頁
【學(xué)位級別】:碩士
【部分圖文】:
使用隨機(jī)差異測試方法在三種不同的編譯器中進(jìn)行測試的流程
圖 2.1 主流編譯器測試方法2.2 編譯器測試加速本文中提及的編譯器測試技術(shù)均依賴于測試用例自動生成工具(如 Csmith)生成大量的測試程序[4],這些工作存在嚴(yán)重的效率問題,現(xiàn)有的研究工作都發(fā)現(xiàn)了這一問題[25-28]。近年來,一些針對編譯器測試中存在的效率問題的編譯器測試加
2.2 編譯器測試加速本文中提及的編譯器測試技術(shù)均依賴于測試用例自動生成工具(如 Csmith)生成大量的測試程序[4],這些工作存在嚴(yán)重的效率問題,現(xiàn)有的研究工作都發(fā)現(xiàn)了這一問題[25-28]。近年來,一些針對編譯器測試中存在的效率問題的編譯器測試加速方法被提出[27,28],如 TB-G 方法和 LET 方法。TB-G 方法是一種基于測試程序文本向量的排序方法[27]。TB-G 方法將每一個(gè)測試程序看作文本,并從文本中抽取和錯(cuò)誤可能相關(guān)的片段,最終將測試程序轉(zhuǎn)換為文本向量。其中,和錯(cuò)誤相關(guān)的字段包含語句字符,類型字符和操作符字符等。在得到一系列的文本向量后,TB-G 方法將其標(biāo)準(zhǔn)化為 0 和 1 組成的向量中的元素。TB-G 根據(jù)每一個(gè)測試程序?qū)?yīng)的向量和(0,0,…,0)的距離作為排序的準(zhǔn)則。圖 2.2 表示了 TB-G 方法的主要流程。本質(zhì)上說,TB-G 方法是一種基于距離的測試程序排序的方法。
【參考文獻(xiàn)】:
期刊論文
[1]基于程序路徑分析的有效蛻變測試[J]. 董國偉,聶長海,徐寶文. 計(jì)算機(jī)學(xué)報(bào). 2009(05)
本文編號:3522181
【文章來源】:吉林大學(xué)吉林省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:54 頁
【學(xué)位級別】:碩士
【部分圖文】:
使用隨機(jī)差異測試方法在三種不同的編譯器中進(jìn)行測試的流程
圖 2.1 主流編譯器測試方法2.2 編譯器測試加速本文中提及的編譯器測試技術(shù)均依賴于測試用例自動生成工具(如 Csmith)生成大量的測試程序[4],這些工作存在嚴(yán)重的效率問題,現(xiàn)有的研究工作都發(fā)現(xiàn)了這一問題[25-28]。近年來,一些針對編譯器測試中存在的效率問題的編譯器測試加
2.2 編譯器測試加速本文中提及的編譯器測試技術(shù)均依賴于測試用例自動生成工具(如 Csmith)生成大量的測試程序[4],這些工作存在嚴(yán)重的效率問題,現(xiàn)有的研究工作都發(fā)現(xiàn)了這一問題[25-28]。近年來,一些針對編譯器測試中存在的效率問題的編譯器測試加速方法被提出[27,28],如 TB-G 方法和 LET 方法。TB-G 方法是一種基于測試程序文本向量的排序方法[27]。TB-G 方法將每一個(gè)測試程序看作文本,并從文本中抽取和錯(cuò)誤可能相關(guān)的片段,最終將測試程序轉(zhuǎn)換為文本向量。其中,和錯(cuò)誤相關(guān)的字段包含語句字符,類型字符和操作符字符等。在得到一系列的文本向量后,TB-G 方法將其標(biāo)準(zhǔn)化為 0 和 1 組成的向量中的元素。TB-G 根據(jù)每一個(gè)測試程序?qū)?yīng)的向量和(0,0,…,0)的距離作為排序的準(zhǔn)則。圖 2.2 表示了 TB-G 方法的主要流程。本質(zhì)上說,TB-G 方法是一種基于距離的測試程序排序的方法。
【參考文獻(xiàn)】:
期刊論文
[1]基于程序路徑分析的有效蛻變測試[J]. 董國偉,聶長海,徐寶文. 計(jì)算機(jī)學(xué)報(bào). 2009(05)
本文編號:3522181
本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/3522181.html
最近更新
教材專著