實驗三-軟體測試

lm999999999999999發表於2024-04-26

一、實驗題目 :軟體測試

二、實驗目的

1、熟悉開發環境下的自動化測試工具;

1、利用自動化測試工具進行自動化單元測試。

三、實驗內容

1、選擇開發環境,IDEA或PYCHARM任選其一;

2、基於所選擇的開發環境實現對輸入的n個整數進行排序的程式碼;

3、對所編寫程式碼設計測試用例;

4、基於所選擇的開發環境開展單元測試。

IDEA環境:

   利用Junit對所編寫程式碼進行單元測試

   https://blog.csdn.net/antony9118/article/details/51736135

PYCHARM環境:

   利用unittest對所編寫程式碼進行單元測試

   https://zhuanlan.zhihu.com/p/688994644

四、實驗要求

1、預先準備的程式碼要求獨立編寫,嚴禁抄襲,具體排序演算法可以自由選擇一種;

2、利用平臺提供的單元測試工具對程式碼中的方法或函式進行單元測試,擷取測試結果。

五、設計單元測試用例
測試用例1 :正序列表 [1,2,3,4,5] 預期輸出:[1,2,3,4,5]
測試用例2 :倒序列表 [5,4,3,2,1] 預期輸出:[1,2,3,4,5]
測試用例3 :重複元素列表 [3, 2, 2, 1, 4, 3, 1] 預期輸出:[1, 1, 2, 2, 3, 3, 4]
測試用例4 :隨機元素列表 [64, 34, 25, 12, 22, 11, 90] 預期輸出:[11,12,22,25,34,64,90]
測試用例5 :空列表 [ ] 預期輸出:[ ]
測試用例6 :只含有一個元素列表 [7] 預期輸出:[7]

六、單元測試結果截圖

七、實驗中遇到的問題及解決方法

1.測試失敗:
如果你的氣泡排序函式實現有誤,那麼測試可能會失敗。確保你的排序演算法能夠正確地對所有測試用例進行排序。
測試用例設計不當也可能導致測試失敗。例如,如果你沒有覆蓋到所有可能的邊界情況或異常情況,那麼可能存在漏網之魚。
2.效能問題:
氣泡排序演算法本身不是最高效的排序演算法,特別是對於大資料集來說。如果你的測試包含了大規模的資料集,那麼測試可能會執行得很慢。
如果你的實現沒有正確地最佳化(例如,沒有提前終止排序當列表已經有序時),那麼效能問題可能會更加明顯。
3.資料型別問題:
如果你的氣泡排序函式沒有正確處理非數字型別的資料,或者沒有處理列表中的None值或其他不可比較的物件,那麼測試可能會丟擲異常。
4.列表修改問題:
如果你的氣泡排序函式修改了原始列表而不是返回一個新的排序後列表,這可能會在某些測試情況下導致問題。特別是當測試用例期望函式返回一個新的列表時。
5.斷言失敗:
如果你的測試斷言(如self.assertEqual)與函式實際返回的結果不匹配,測試將失敗。這通常意味著你的函式沒有按預期工作。
6.測試覆蓋率不足:
如果你的測試用例沒有覆蓋到所有可能的程式碼路徑,那麼可能存在一些隱藏的錯誤沒有被測試捕捉到。你可以考慮使用工具來測量你的測試覆蓋率。
7.環境問題:
如果你的測試程式碼在不同的環境(例如,不同的Python版本或不同的作業系統)下執行,可能會出現環境問題。確保你的測試在各種環境下都能穩定執行。
為了更好地解決這些問題,我採取以下措施:

1.設計全面的測試用例,覆蓋各種邊界情況和異常情況。
2.使用效能分析工具來檢查你的排序演算法效能。
3.確保你的函式能夠處理各種資料型別,並正確處理不可比較的物件。
4.如果你的函式應該返回一個新的列表而不是修改原始列表,請確保你遵守這一約定。
5.使用程式碼覆蓋率工具來檢查你的測試是否覆蓋了所有程式碼路徑。
6.在不同的環境下執行你的測試,以確保其穩定性和相容性。

相關文章