并行程序路徑覆蓋測試數(shù)據(jù)的協(xié)同進(jìn)化生成方法
發(fā)布時間:2020-10-27 19:03
隨著近年來并行程序的廣泛應(yīng)用,并行程序的測試問題也逐漸被人們重視。其中,消息傳遞并行程序是一種常用的并行程序,這類程序的路徑覆蓋測試數(shù)據(jù)生成問題可以通過遺傳算法進(jìn)行求解。但是,傳統(tǒng)方法沒有充分利用并行程序調(diào)度序列提供的知識,導(dǎo)致算法效率難以滿足需求。因此,改進(jìn)并行程序的測試方法是十分必要的。針對這類問題,本文提出一種測試數(shù)據(jù)協(xié)同進(jìn)化生成方法,并開發(fā)了相應(yīng)原型系統(tǒng),提高了測試效率。本文主要有以下內(nèi)容:(1)提出了一種并行程序路徑覆蓋測試數(shù)據(jù)協(xié)同進(jìn)化生成方法。首先,根據(jù)調(diào)度序列生成對應(yīng)的種群;然后,給出種群與個體的性能評價方法;最后,依據(jù)種群與個體性能,在進(jìn)化過程中執(zhí)行個體遷移、種群消亡、種群合并等操作,生成測試數(shù)據(jù)。該方法與傳統(tǒng)遺傳算法相比,不但沒有引入對調(diào)度序列人工分析等額外人工干預(yù),提高了測試自動化程度,而且在生成測試數(shù)據(jù)的過程中使用多個調(diào)度序列,通過評價各調(diào)度序列生成測試數(shù)據(jù)的難易程度得到對應(yīng)種群的性能,進(jìn)化過程中將資源更多地分配給性能較好的種群,提高了算法效率。(2)開發(fā)了并行程序路徑覆蓋測試數(shù)據(jù)生成原型系統(tǒng)。該原型系統(tǒng)包括程序處理、進(jìn)化求解和結(jié)果處理等3個模塊,用于對程序執(zhí)行前的預(yù)處理、使用所提方法進(jìn)行進(jìn)化求解,以及結(jié)果保存和輸出等。進(jìn)化求解模塊是該原型系統(tǒng)的主要部分,使用C語言編寫,主要包種群定義、種群初始化,以及種群遷移、種群消亡、種群合并、種群規(guī)模計算、適應(yīng)值計算、編碼、解碼、選擇、交叉、變異等函數(shù)。利用該原型系統(tǒng)能夠針對不同程序使用本文所提方法自動高效生成測試數(shù)據(jù),提高了測試效率。本文所提方法能夠針對并行程序高效生成測試數(shù)據(jù),對軟件測試的發(fā)展做出了積極的貢獻(xiàn)。
【學(xué)位單位】:中國礦業(yè)大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2018
【中圖分類】:TP311.53
【部分圖文】:
圖 2-1 一個消息傳遞并行程序的示例Figure 2-1 An example of the message-passing parallel program記被測程序為 P ,其第i 個進(jìn)程為iP 。如果 P 有 n 個進(jìn)程,那么, 可以表示為0 1 1{ , ,..., }nP P P P 。進(jìn)程之間通過通信語句,即消息發(fā)送語句與消息接收語句,實現(xiàn)進(jìn)程之間的通信。不確定通信語句是指消息發(fā)送或接收的目標(biāo)進(jìn)程不確定的通信語句。在執(zhí)行程序時,由于這些語句在每次執(zhí)行時的目標(biāo)進(jìn)程不一定相同,程序的執(zhí)行狀況也有所不同,這就是并行程序的不確定性。示例程序包含 4 個進(jìn)程,記為0 1 2 3P {P , P , P , P}。該程序具有的 4 個調(diào)度序列如表 2-1 所示。表 2-1 調(diào)度序列Table 2-1 Scheduling sequence消息匹配調(diào)度序列04P05P012P013P1ss14P24P17P34P2ss
單點交叉與基本位變異,通過函數(shù) cross1 ()與 mutation()來實現(xiàn)。4.4 原型系統(tǒng)的使用(The Usage of this Prototype System)以第 3 章表 3-1 所列的一個被測程序 Gcd 為例,說明使用該原型系統(tǒng)生成測試數(shù)據(jù)的主要流程。首先,進(jìn)行程序分析,依據(jù)分析得到的進(jìn)程數(shù)、輸入個數(shù)、輸入范圍、調(diào)度序列信息等修改原型系統(tǒng)中相應(yīng)的參數(shù)。在該原型系統(tǒng)中,由于針對不同被測程序需要經(jīng)常性地修改這些參數(shù),因此將這些參數(shù)使用#define 語句在程序開始部分進(jìn)行定義,以便于快速簡便地修改這些參數(shù)。接著,對程序進(jìn)行插樁等處理,將處理后的程序添加到被測程序函數(shù)中,并指定目標(biāo)路徑。然后,使用編譯器進(jìn)行編譯與鏈接,將生成的 exe 文件調(diào)入 MPICH 軟件,設(shè)置進(jìn)程數(shù)等相關(guān)參數(shù)后,執(zhí)行程序。最后,MPICH 軟件輸出執(zhí)行結(jié)果,測試人員可以根據(jù)結(jié)果記錄相關(guān)信息或?qū)Τ绦蜻M(jìn)行進(jìn)一步分析。該程序的一次執(zhí)行結(jié)果如圖 4-9 所示。
【參考文獻(xiàn)】
本文編號:2858922
【學(xué)位單位】:中國礦業(yè)大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2018
【中圖分類】:TP311.53
【部分圖文】:
圖 2-1 一個消息傳遞并行程序的示例Figure 2-1 An example of the message-passing parallel program記被測程序為 P ,其第i 個進(jìn)程為iP 。如果 P 有 n 個進(jìn)程,那么, 可以表示為0 1 1{ , ,..., }nP P P P 。進(jìn)程之間通過通信語句,即消息發(fā)送語句與消息接收語句,實現(xiàn)進(jìn)程之間的通信。不確定通信語句是指消息發(fā)送或接收的目標(biāo)進(jìn)程不確定的通信語句。在執(zhí)行程序時,由于這些語句在每次執(zhí)行時的目標(biāo)進(jìn)程不一定相同,程序的執(zhí)行狀況也有所不同,這就是并行程序的不確定性。示例程序包含 4 個進(jìn)程,記為0 1 2 3P {P , P , P , P}。該程序具有的 4 個調(diào)度序列如表 2-1 所示。表 2-1 調(diào)度序列Table 2-1 Scheduling sequence消息匹配調(diào)度序列04P05P012P013P1ss14P24P17P34P2ss
單點交叉與基本位變異,通過函數(shù) cross1 ()與 mutation()來實現(xiàn)。4.4 原型系統(tǒng)的使用(The Usage of this Prototype System)以第 3 章表 3-1 所列的一個被測程序 Gcd 為例,說明使用該原型系統(tǒng)生成測試數(shù)據(jù)的主要流程。首先,進(jìn)行程序分析,依據(jù)分析得到的進(jìn)程數(shù)、輸入個數(shù)、輸入范圍、調(diào)度序列信息等修改原型系統(tǒng)中相應(yīng)的參數(shù)。在該原型系統(tǒng)中,由于針對不同被測程序需要經(jīng)常性地修改這些參數(shù),因此將這些參數(shù)使用#define 語句在程序開始部分進(jìn)行定義,以便于快速簡便地修改這些參數(shù)。接著,對程序進(jìn)行插樁等處理,將處理后的程序添加到被測程序函數(shù)中,并指定目標(biāo)路徑。然后,使用編譯器進(jìn)行編譯與鏈接,將生成的 exe 文件調(diào)入 MPICH 軟件,設(shè)置進(jìn)程數(shù)等相關(guān)參數(shù)后,執(zhí)行程序。最后,MPICH 軟件輸出執(zhí)行結(jié)果,測試人員可以根據(jù)結(jié)果記錄相關(guān)信息或?qū)Τ绦蜻M(jìn)行進(jìn)一步分析。該程序的一次執(zhí)行結(jié)果如圖 4-9 所示。
【參考文獻(xiàn)】
相關(guān)期刊論文 前9條
1 馮俊池;于磊;;測試數(shù)據(jù)生成中遺傳算法的改進(jìn)[J];計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報;2015年10期
2 鞏敦衛(wèi);任麗娜;;回歸測試數(shù)據(jù)進(jìn)化生成[J];計算機(jī)學(xué)報;2014年03期
3 張巖;鞏敦衛(wèi);;基于稀有數(shù)據(jù)撲捉的路徑覆蓋測試數(shù)據(jù)進(jìn)化生成方法[J];計算機(jī)學(xué)報;2013年12期
4 田甜;鞏敦衛(wèi);;消息傳遞并行程序路徑覆蓋測試數(shù)據(jù)生成問題的模型及其進(jìn)化求解方法[J];計算機(jī)學(xué)報;2013年11期
5 眭俊華;張恩陽;;基于知識的智能測試集成技術(shù)研究[J];計算機(jī)應(yīng)用;2006年07期
6 單錦輝,姜瑛,孫萍;軟件測試研究進(jìn)展[J];北京大學(xué)學(xué)報(自然科學(xué)版);2005年01期
7 劉璘琳,吳永英;一個CMM自評估系統(tǒng)的研究與開發(fā)[J];計算機(jī)工程;2004年16期
8 聶長海,徐寶文;基于接口參數(shù)的黑箱測試用例自動生成算法[J];計算機(jī)學(xué)報;2004年03期
9 王志言,劉椿年;區(qū)間算術(shù)在軟件測試中的應(yīng)用[J];軟件學(xué)報;1998年06期
本文編號:2858922
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2858922.html
最近更新
教材專著