軟體工程第二次個人作業

aitongsheng發表於2024-04-10

在瀋陽航空航天大學計算機學院,我完成了我的軟體工程第二次作業,旨在深入熟悉高質量軟體的開發過程,特別是單元測試環節。我的任務是從語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋中選擇一個標準來設計測試用例。我選擇了語句覆蓋標準,因為它能有效確保程式碼的每一行都至少執行一次,從而發現可能的錯誤。

我從2024年4月5日開始著手這項作業,並在2024年4月10日完成,期間編寫了46行程式碼並自豪地實現了零錯誤的成果。在測試用例的設計中,我注重覆蓋各種可能的情況:

  1. 首先,我設計了一個測試空陣列的用例,期望輸出為‘0’,以確保在沒有元素時,迴圈不會執行,並且能夠直接返回max_so_far的初始值。
  2. 接著,我考慮了全為負數的陣列,同樣預期輸出為‘0’。這個測試用例幫我驗證了當所有元素都是負數時,max_so_far將保持為0的邏輯。
  3. 我還設計了一個包含正數和負數的陣列,最大子陣列在中間的情況,期望輸出為20。這個測試用例幫我確保了所有路徑都被執行,包括兩個if語句和更新max_so_farmax_ending_here的值。
  4. 另一個測試用例考慮了正負數混合的陣列,其中最大子陣列在末尾,期望輸出為7。這進一步測試了所有路徑,尤其是當最大子陣列和出現在陣列末尾時的情況。
  5. 最後,我建立了一個所有元素都是正數的測試用例,期望輸出為10。這確保了max_ending_here不會因為負數而被重置為0。

我使用了本機單元測試專案對這些測試用例進行自動化測試,並得到了成功透過的結果,這充分展示了我的程式碼覆蓋率和質量。我還將我的作業釋出到了Github上(https://github.com/aitongsheng/shengaitong),以便於與同學們分享和交流。

透過這次作業,我不僅加深了對單元測試重要性的理解,還提升了自己設計測試用例和使用測試工具的能力。我相信這些經驗和技能將在我的軟體工程職業生涯中發揮重要作用。

相關文章