標籤:測試載入器 變異 配置
變異測試是通過改變被測對象的源碼,比較單元測試用例的結果,來判斷單元測試用例的品質。瞭解不是很深,只能粗粗介紹,歡迎大家補充。
網上發現變異測試的資料很少,大多是學術論文為主。
變異測試的公主要是mujava與muclipse,muclipse是基於mujava的,並且整合於eclipse上的外掛程式,官網介紹
mujava http://cs.gmu.edu/~offutt/mujava/
muclipse http://muclipse.sourceforge.net/index.php
根據官網一步步來,居然沒有成功,逐個改變參數摸索,終於能出結果了,所以寫下這邊文章,希望減少大家研究的時間
1. 安裝muclipse
由於官網提供的下載url打不開,只好網上找個edu.ncsu.muclipse_1.3.0.jar下載,放入eclipse plugins目錄下,重新啟動eclipse,就算安裝上啦,eclipse的這種安裝方法真簡單。
2. 準備的測試案例
package demo1;
public class Example {
public int multiply(int a, int b) {
return a * b;
}
}
package demo1;
public class ExampleTest {
public void setUp() throws Exception {
}
public void tearDown() throws Exception {
}
public int testMultiply()
{
Example ex = new Example();
return ex.multiply(1, 1);
}
}
3. 配置環境
1. 建立或者匯入項目,下載extendedOJ.jar包,匯入到Libraries
右擊project name -> properties -> java build path -> Libraries -> Add External JARs, select it and click ok
650) this.width=650;" src="http://img.blog.csdn.net/20140626151614031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
in source tab, 可以修改output folder,就是編譯後的.class檔案的地址,這裡預設是bin
650) this.width=650;" src="http://img.blog.csdn.net/20140626151642718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
2. 編譯項目,可以在bin裡面看到編譯後的.class檔案
右鍵項目名,build project
3. 產生變異後的源檔案
1. 右鍵項目名-> run as -> run configuration...
配置Deriectories
650) this.width=650;" src="http://img.blog.csdn.net/20140626151701218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
配置Operator
650) this.width=650;" src="http://img.blog.csdn.net/20140626151709265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
click run 產生變異代碼,具體見result目錄
4.eclipse裡顯示mutation結果
windows -> show view
650) this.width=650;" src="http://img.blog.csdn.net/20140626151729093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
注意這邊只有method-level有變異的執行個體
650) this.width=650;" src="http://img.blog.csdn.net/20140626152038703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
650) this.width=650;" src="http://img.blog.csdn.net/20140626152049093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
5. 執行test
配置muclipse test:右擊項目名->run as -> run configuration
650) this.width=650;" src="http://img.blog.csdn.net/20140626152107984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
配置testing operation : 由於生產的變異執行個體只有method level的,所以class-level的不要勾上,不然會有錯誤,click run button
650) this.width=650;" src="http://img.blog.csdn.net/20140626152826156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
6. 看結果
點擊重新整理按鈕
650) this.width=650;" src="http://img.blog.csdn.net/20140626152514296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmppYXpodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
本文出自 “愛工作愛生活” 部落格,轉載請與作者聯絡!