日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结对作业2:单元测试

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结对作业2:单元测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

題目要求:

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

    1.把計算模塊提取出來,單獨創建一個類。

    ? 計算模塊單獨成類(CalcFunction)

    1 public class CalcFunction { 2 static int count=0,count1=0; 3 public static String add(Fraction a, Fraction b) //加法 參考分數間加減乘除 用四個變量表示兩個分數的分子分母 4 { 5 int i, j, k, s, m, n, p; 6 i = a.getNumerator();// 分子 7 j = a.getDenominator();// 分母 8 k = b.getNumerator(); 9 s = b.getDenominator(); 10 m = i * s + j * k; 11 n = s * j; 12 p = Calc.getGCD(m, n); 13 return Calc.Reduction(m / p, n / p); 14 15 } 16 17 public static String div(Fraction a, Fraction b)//除法 設置生成的隨機數不為0,則不存在除數為0的情況 18 19 { 20 int i, j, k, s, m, n, p; 21 i = a.getNumerator();// 分子 22 j = a.getDenominator();// 分母 23 k = b.getNumerator(); 24 s = b.getDenominator(); 25 m = s * i; 26 n = j * k; 27 p = Calc.getGCD(m, n); 28 return Calc.Reduction(m / p, n / p); 29 } 30 31 public static String sub(Fraction a, Fraction b)//減法 32 33 { 34 int i, j, k, s, m, n, p; 35 i = a.getNumerator();// 分子 36 j = a.getDenominator();// 分母 37 k = b.getNumerator(); 38 s = b.getDenominator(); 39 m = i * s - j * k; 40 n = j * s; 41 p = Calc.getGCD(m, n); 42 return Calc.Reduction(m / p, n / p); 43 } 44 45 public static String mul(Fraction a, Fraction b)//乘法 46 47 { 48 int i, j, k, s, m, n, p; 49 i = a.getNumerator();// 分子 50 j = a.getDenominator();// 分母 51 k = b.getNumerator(); 52 s = b.getDenominator(); 53 m = i * k; 54 n = j * s; 55 p = Calc.getGCD(m, n); 56 return Calc.Reduction(m / p, n / p); 57 } 58 59 }

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

    單元測試代碼如下:

    1 @Test 2 public void testAdd() { 3 Fraction a = new Fraction(2,3,"2/3"); 4 Fraction b = new Fraction(1,3,"1/3"); 5 6 assertEquals(CalcFunction.add(a,b), "1"); 7 } 8 9 @Test 10 public void testDiv() { 11 Fraction a = new Fraction(2,3,"2/3"); 12 Fraction b = new Fraction(1,3,"1/3"); 13 14 assertEquals(CalcFunction.div(a,b), "2"); 15 } 16 17 @Test 18 public void testSub() { 19 Fraction a = new Fraction(2,3,"2/3"); 20 Fraction b = new Fraction(1,3,"1/3"); 21 22 assertEquals(CalcFunction.sub(a,b), "1/3"); 23 } 24 25 @Test 26 public void testMul() { 27 Fraction a = new Fraction(2,3,"2/3"); 28 Fraction b = new Fraction(1,3,"1/3"); 29 30 assertEquals(CalcFunction.mul(a,b), "2/9"); 31 }

    計算模塊測試結果如下:

    其他測試(CalcTest):

    1 @Before 2 public void setUp() throws Exception { 3 } 4 5 @After 6 public void tearDown() throws Exception { 7 } 8 9 @Test 10 public void testGetGCD() { 11 assertEquals(Calc.getGCD(10, 5), 5); 12 } 13 14 @Test 15 public void testReduction() { 16 assertEquals(Calc.Reduction(9, 5), "9/5"); 17 }

    測試結果如下:

    代碼覆蓋率:

    ?測試中遇到的問題及解決:

    ? ? 因為要求利用助教提供的空殼進行代碼填充,所以對于代碼模塊的分割做的不是很好。后來將一些像gui模塊編寫這樣在這次作業中沒有用到的模塊刪除。對于除零錯誤,由于剛開始我們就設置了被除數不能出現=0的情況,就沒有考慮。運算符也是剛開始就設置了只有單個字符生成。

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

    ? ? 通過單元測試可以知道方法的某些地方出錯了,需要在方法定義的地方進行相應的修改。就像剛開始進行四則運算的測試時一開始測試失敗了,隨后找到原因在相應方法的源代碼上進行處理和修改,就可以測試成功了。再加上分了模塊后,發現代碼錯誤的時候找錯更容易,可以更好的進行修改。

    隔周看之前的代碼:

    (1)良好的設計

    ? ? 如果剛開始就能有良好的設計思想,做好模塊劃分和有單元測試的想法,現在的代碼就不會那么亂,不能很好的進行模塊劃分和測試。

    (2)編碼規范

    ? ? 代碼規范的重要性不言而喻,能讓大家看到類名函數名就能知道函數的用途是什么,這也是很重要的。這樣不僅自己,包括別的用戶也可以進行較為輕松的閱讀。

    (3)必要的注釋 ?

    ? ? 因為剛開始的代碼編寫比較簡單,所以忽略了注釋,導致現在再看之前的代碼較為吃力,但是因為方法的命名是根據其代表的意義的,所以還是能夠大致理解,但是警示了我們今后寫代碼要有一些基本的注釋。??

    git克隆助教的框架:

    ?

    ?git上交截圖:

    ?

    ????撮coding鏈接(所有代碼在src里)

    ?https://coding.net/u/xxs24/p/pairwork2/git

    ?

    結對照片:

    ?

    ?

    PSP表格:

    PSP2.1

    Personal Software Process Stages

    Estimated Time(hour)

    Actual Time (hour)

    Planning

    計劃

    0.5

    0.5

    · Estimate

    估計這個任務需要多少時間

    10

    12

    Development

    開發

    5

    6

    · Analysis

    需求分析 (包括學習新技術)

    1

    1.5

    · Design Spec

    生成設計文檔

    1

    1

    · Design Review

    設計復審

    1.5

    2

    · Coding Standard

    代碼規范

    0.5

    0.5

    · Design

    具體設計

    2

    2

    · Coding

    具體編碼

    4

    4.5

    · Code Review

    代碼復審

    0.5

    0.5

    · Test

    測試(自我測試,修改代碼,提交修改)

    0.5

    1

    Reporting

    報告

    0.5

    0.5

    ·

    測試報告

    1/6

    1/6

    ·

    計算工作量

    1/6

    0.5

    ·

    并提出過程改進計劃

    0.25

    0.25

    轉載于:https://www.cnblogs.com/xxs24/p/6628709.html

    總結

    以上是生活随笔為你收集整理的结对作业2:单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。