天天看點

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

小組成員:王傑(201421123055)、王震(201421123054)

coding位址:https://git.coding.net/a506504661/danyuances.git

一、需求分析:

  1. 通過單元測試代碼,測試加法是否能正确工作;
  2. 通過單元測試代碼,測試加減乘除功能。
  3. 通過單元測試代碼,測試計算類對于各種參數的支援:

a. 輸入是有錯誤的,例如 “1 ++ 2” 。

b. 在數值範圍是 -1000 .. 1000 的時候,傳進去 “10000 + 32768”。

c. 或者是 “ 248 / 0” 怎麼辦?

d. 怎麼告訴函數的調用者 “你錯了”? 把傳回的字元串定義為 “-1” 來表示?

e. 那麼如果真的計算結果是 “-1” 又怎麼處理呢?

二、設計測試架構, 模拟測試資料:

  (1) 請給出計算子產品的測試用例及運作結果

    加法測試用例:"3/4"+"1/2" 運作結果:"5/4"

    減法測試用例:"3/4"-"1/2" 運作結果:"1/2"

    乘法測試用例:"3/4"*"1/2" 運作結果:"3/8"

    除法測試用例:"3/4"/"1/2" 運作結果:"3/2"

    約分測試用例:77/88 運作結果:"7/8"

    負數計算測試用例:"-3/4"-"1/2" 運作結果:"5/4"

    輸入錯誤運算符測試用例:"3/4"+-"1/2" 運作結果:"請輸入正确運算符!"

    将輸入整數轉換為分數形式測試用例:"5" 運作結果:"5/1"

  (2) 描述測試過程中遇到的問題以及解決的方案。

  測試過程中對代碼又有所修改,過了一個禮拜沒看略顯生疏。因為要進行單元測試是以要将方法拿出來單獨做一個類,原本代碼就把算法單獨做了一個類,然後再界面類進行調用。雖然已經将算法單獨一個類,但是方法有點多,很亂。比如在算法實作方面,傳參包涵三個分數1、分數2及運算符号,通過傳入運算符号的類型自動選擇算法類型進行運算,将算法封裝了,還因為有一個将分數化簡的功能,将參數劃分為分子分母進行運算,都有關聯,是以沒辦法将加減乘除分開成單獨函數,不然整個核心算法全亂套了。是以進行單元檢測一個compute(String,String,String)方法包涵加減乘除,還檢測了f(),SetNumeratorAndDenominator()等方法。在進行測試過程中遇到了許多問題,首先是對 assertEquals(a,b)方法的使用不當,對傳入參數的疑惑,整型還是字元串型。通過查文檔了解其方法。然後傳參檢測compute()方法,直接運作錯誤,回去看代碼才發現傳入數值隻能是分數,即便是整數也要将其轉化為分數進行運算,之前編寫 算法是将分數和整數的算法統一轉化為分數計算,輸出時如果是整數再将其轉化回來,是以測試時輸入隻能輸入分數,然後額外将整數轉化為分數的方法單獨成一個方法寫成并進行測試。測試算法時由于隻能識别四種運算符——"+-*/"。是以保證邏輯完整,在輸入錯誤運算符是将進行報錯,輸出"請輸入正确運算符!"。在本次結對程式設計的過程中,多次出現問題,在與結伴夥伴商讨下都解決了,并做了不少的完善工作。

  (3) 請展示上面描述的單元測試的每個環節。

    

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

  

三、 小結與感受:

  由于之前程式設計時想法太奇葩,很多功能方法聯系太緊密了,是以要将其拆分成單獨類或函數難度有點大,都可以等于重新編輯了。還是一開始對子產品化,方法的獨立性的思想不足,導緻代碼太亂,不好進一步修改。

  評價下夥伴:

先來一片面包:這次程式設計很積極,多次找我開始單元檢測,由于我有事拖了很久,很友愛的迎合了我的時間,主動找我協商問題,并在程式設計時給予大量建議。

在把肉放上:做事太急于求成,不沉穩。

再來一片面包:靜下心來好好做,不急。淡定。

四、 在隔了一周之後再看之前的代碼,是否更能體會到下面這些東西

  1) 良好的設計

  挺滿意之前的設計,都按照了功能去實作了。

  2) 編碼規範

   規範性比較差,由于還隻是兩個人合作,是以代碼的編碼規範還是兩個人能看懂就草草帶過,參數的命名也很随意,還要聯系上下文代碼才能了解。還是需要好好規範一下。

  3) 必要的注釋

  大緻的注釋都有,各個函數的用處開頭都有注釋,這點還是做的不錯的。

五、程式設計時圖檔

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

五、psp

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