天天看點

結對程式設計2——單元測試

(201421123002 翁珊;201421123006 黃月梅;201421123007 徐曉珊) 

題目要求:

  1. 結對程式設計實作上述功能,同樣的,在程式正式開發之前,請先預估下PSP每個環節的消耗時間(分鐘),并在過程中統計實際耗時(分鐘),最後送出PSP表格。依然注意,這個主要是給你們自己看的,不必造假資料。
  2. 繼續兩人結對協作,把編碼規範、領航員和駕駛員角色互換做到位。
  3. 單元測試: 有單元測試保證,有代碼覆寫率。

需求分析:

1.把計算子產品提取出來,單獨建立一個類。

計算子產品單獨成類Calc:

package happy;


public class Calc{

    static int getGCD(int i, int j) //求最大公約數
    {
        int temp;
        while (i % j != 0) {
            temp = i % j;
            i = j;
            j = temp;
        }
        return j;
    }

    static String Reduction(int i, int j) 
    {
        String k;
        if (j == 1) {
            k = i + "";
        } else {
            k = (i) + "" + "/" + (j) + "";
        }
        return k;
    }

    static boolean compare(String a, String b) //比較輸入值與答案
    {
        if (a.equals(b))
            {System.out.println("回答正确");
            return true;}
        else
            {
            System.out.println("回答錯誤,正确答案是" + b);
            return false;
            }
    }
}      

2.針對提取出來的計算類的接口函數做單元測試。

單元測試代碼如下:

package happy;

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class CalcTest {

    @Before
    public void setUp() throws Exception {
    }

    @After
    public void tearDown() throws Exception {
    }

    @Test
    public void testGetGCD() {
        assertEquals(Calc.getGCD(10, 5), 5);
    }

    @Test
    public void testReduction() {
        assertEquals(Calc.Reduction(9, 5), "9/5");
    }

    @Test
    public void testMain() {
        
    }
}      

單元測試結果:

結對程式設計2——單元測試

代碼覆寫率:

結對程式設計2——單元測試
結對程式設計2——單元測試

描述測試過程中遇到的問題以及解決的方案:

    測試中的除零錯誤,由于我們一開始在程式設計的時候就設定了出書的值不為零,是以不會出現不能除的情況。對于兩個運算符的情況也是,在程式設計的一開始就設定隻能生成一個運算符,是以不會出現類似a++的情況。

小結與感受:通過測試,是否有效發現了程式計算子產品的問題,并給予改進?

    因為子產品是根據助教發的寫的,是以将自己原先的程式給拆解開來,并删除了一些沒有必要的類,例如:GUI。再進行的單元測試。在拆解的過程中使得程式出現了很大的改變,程式在測試的時候出現了很多的問題。但是實在是由于我們組的程式設計能力有限,時間也是很有限,使得很多問題沒有的到有效的解決,希望自己的程式設計能力能夠有所提高。至少在目前,這種做作業還是有很大的難度,需要投入很大的精力,卻得不到理想的效果。

隔周看之前的代碼:

(1)良好的設計:在開始設計程式的時候就要進行合理地規劃。對程式的功能進行合理地劃分,這樣後期對程式功能的完善跟擴充更加具有彈性。

(2)編碼規範:在定義的時候盡量避免使用a,b,c等無意義的變量,會影響在後序實驗過程中的代碼閱讀和了解。

(3)必要的注釋:在寫程式時需要進行必要的注釋的填寫,會幫助後期對程式總體架構的了解。而且程式不僅僅是給自己看的,也要讓别人能夠了解,從這點上說,注釋還是很有必要的

git克隆助教的架構:

結對程式設計2——單元測試

 git上交截圖:

結對程式設計2——單元測試
結對程式設計2——單元測試

coding連結:

https://coding.net/u/watermelon123/p/homework3/git

結對照片:

結對程式設計2——單元測試

PSP表格:

PSP2.1 Personal Software Process Stages Estimated Time(hour) Actual Time (hour)
Planning 計劃 0.5
· Estimate 估計這個任務需要多少時間 10 12
Development 開發 5 6
· Analysis 需求分析 (包括學習新技術) 1 1.5
· Design Spec 生成設計文檔
· Design Review 設計複審 2
· Coding Standard 代碼規範
· Design 具體設計
· Coding 具體編碼 4 4.5
· Code Review 代碼複審
· Test 測試(自我測試,修改代碼,送出修改)
Reporting 報告
· 測試報告 1/6
計算工作量
并提出過程改進計劃 0.25