天天看點

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

  碼市:https://git.coding.net/pyj76566/Homework.git

  組員   201421123085 童毅南

       201421123086 潘益靖

  上一周大家為四則運算程式設計了2-3個新功能,本次在隔了一周之後,我們循序漸進地進階。本次目标:

  1. 把計算子產品提取出來,單獨建立一個類。
  2. 針對提取出來的計算類的接口函數做單元測試

  a、需求分析:單元測試能夠讓我們寫的代碼更加健全,能夠讓程式能夠不用牽一發而動全身,大大

  的改善了後期的維護花費的工作量。我們把四則運算提取出來做單元測試

  --加法運算--

  

  首先我們提取的是加法,産生兩個新分數後調用Calculator.add()方法,在和我們算出的答案用JUNIT中的asserEquals方法比較答案是否一緻。

  當我們把分母替換成0時候,這行代碼就沒有通過了

  --減法運算--

  我們預設的分數都是正數的,是以當出現1-2=-1時候程式并沒有執行下去

  --乘法運算--

  乘法我們測試了有的功能,都能執行過

  --除法運算--

  不僅四則運算,我們還測試了其他的一些功能,有關分數的例如:

  --判斷一個數是否是分數--

  其中我們用到了assertFalse()方法 

    用法:assertFalse(boolean condition);

       condition:如果condition結果為false,則通過測試.

 圖中我們可以看出缺少分母的數判斷是否為分數的結果是false是以是通過了,同理缺少分子,不是數字,分母為零,分子為零,分數誤輸入為“O”(字母O)結果都是false
  
 --計算分子分母的最大公約數--
 

 
 當我們故意輸入一個錯的最大公約數,自然是通過不了。

 --判斷兩個分數是否相等--

 
 
 主要适用于測試兩個分數是否相等的功能,這個方法用于比較系統算出的答案和使用者輸入的答案書否相等。

 --代碼覆寫率--

 計算子產品的:
  
       
分數子產品的:      
 --小結與感受--
 
 之前的代碼我們已經做到了至少是好一些的規劃,每每要用到一個新方法時候,都不在這個方法裡面直接寫,而是重新寫一個目标方法,單元測試我覺得很有意義,能夠讓我寫代碼時候能夠把一個方法寫到盡量

 完美無缺,減少了以後的修改量,還是得代碼,條理清晰,一看到就能知道功能,不用再從頭開始想,這段代碼的意義。

      

  --體會--

  (1)良好的設計

  在設計程式之前一定要想好自己要設計什麼,功能有哪些,可能會出現的錯誤,不考慮這些的話最後隻能是想到一點兒改一點兒,别人提出建議改一點兒,又浪費時間又費事。

  (2)編碼規範

  這次這麼費勁兒的修改,我們知道以後寫程式的時候子產品化,函數獨立的好處了,就不會修改一點兒就要大幅度改動了,寫程式的時候變量名稱最好有意義,才能友善以後的讀改。

  (3)必要的注釋

  這個是早有體會,以後會一直這樣做的。

PSP(Personal Software Process)表格

Personal Software Process Stages Time (%) Senior Student Time (%)
Planning 計劃
· Estimate 估計這個任務需要多少時間 6h 7h
Development 開發
· Analysis 需求分析 (包括學習新技術) 0.5h
· Design Spec 生成設計文檔
· Design Review 設計複審
· Coding Standard 代碼規範 0.1h 0.2h
· Design 具體設計
· Coding 具體編碼 1h 2h
· Code Review 代碼複審 0.6h
· Test 測試(自我測試,修改代碼,送出修改)
Reporting 報告 2.6h
·Test Report 測試報告
· Size Measurement 計算工作量
·Postmortem & Process Improvement Plan 并提出過程改進計劃