iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

可以獲得什麼?

理解什麼是例外處理,以及為什麼要測試它。


什麼是例外處理?

昨天說到例外處理,到底什麼是例外處理呢?

例外處理(Exception handling)是指在軟體中處理異常或意外情況的機制。當程式執行過程中並不是 100% 不會發生問題,重點會是在發生錯誤、不正確的操作或其他意外情況時,系統應該能夠識別這些情況,並且適當地處理它們,以防止程式崩潰(crash)或資料損壞,同時提供適當的錯誤訊息或日誌信息(log),以便續追蹤。

因此例外處理會帶來以下好處:

  • 提供簡易好懂的錯誤處理機制:

例外處理允許開發者設計統一的、優雅的錯誤處理機制,而不是在每個錯誤發生的地方進行繁瑣的錯誤處理邏輯。這可以使程式碼更加簡潔和易於維護。

  • 增強程式的穩定性:

例外處理會處理各種錯誤和異常情況,使程式在運行時更加穩定。它可以避免程式因未處理的錯誤而崩潰,並確保程式可以優雅地處理錯誤。

  • 提供更好的用戶體驗:

當程式發生錯誤時,良好的例外處理可以向使用者提供有用的錯誤訊息,幫助用戶理解問題並提供解決方案。這提供了更好的用戶體驗,用戶不會感到困惑或沮喪。例如遇到問題時,提供錯誤排除指引,讓使用者可以自行排除問題,避免使用者去詢問客服,造成不必要的詢問時間。

  • 提高資訊安全性:

例外處理可以幫助檢測和防止潛在的安全漏洞。通過處理潛在的安全威脅,以及避免錯誤代碼外流,可減少攻擊的風險。

  • 減少程式錯誤的機會:

例外處理可以在發生錯誤時及早檢測和處理問題,從而減少錯誤在程式碼中累積的機會。這有助於提高程式的品質。如果有產生 log,可以再之後進行程式優化調整,使程式碼更為精進。

測試例外處理

測試優點

針對例外處理的特點,測試例外處理有以下優點:

  1. 提高系統的穩定性和可靠性:

軟體在運行時會遇到各種異常情況,如無效的輸入、不正確的操作、硬體資源不足等等。如果例外處理不正確,這累異常情況可能會導致系統崩潰或不可預測的行為。透過測試例外處理,可確認系統在遇到異常情況時能夠穩定運行,提高系統的可靠性。

  1. 保護數據完整性:

當系統遇到異常情況時,例如資料庫錯誤或網路連線中斷,正確的例外處理可以保護數據的完整性。這意味著即使發生錯誤,系統也能夠防止數據損壞或丟失。

  1. 提供良好的用戶體驗:

當用戶在使用軟體時遇到問題,他們期望能夠獲得有用的錯誤訊息和指導。正確的例外處理可以提供清晰的錯誤訊息,幫助用戶理解問題並提供解決方案,從而提供良好的用戶體驗。

  1. 安全性:

某些異常情況可能會被惡意用戶利用以進行攻擊,例如通過輸入不當的數據來觸發系統漏洞。測試例外處理可以幫助發現和修復潛在的安全問題,從而提高系統的安全性。

  1. 減少維護成本:

在軟體的生命週期中,可能需要進行更新和維護。如果例外處理不正確,則在後續的維護過程中可能會變得更加困難和昂貴。正確處理異常情況可以減少維護成本。

測試階段

在各個作業邏輯中會進行例外處理,我們可藉由不同的測試顆粒度,去檢測這些訊息有哪些,這些規則是不是符合需求,以及訊息內容可以提供良好的用戶體驗。

  1. 單元測試(Unit Testing):

在這個階段,測試會專注於測試單個函數或模組的異常處理。測試案例可以模擬引發異常的情況,並檢查異常處理程式的執行是否正確。

  1. 整合測試(Integration Testing):

在這個階段,測試目的確保不同模組間的異常情況能夠正確地傳遞或處理。例如,當一個模組調用另一個模組時,應該能夠處理來自被調用模組的異常。

  1. 系統測試(System Testing):

在這個階段,測試應該模擬整個系統的異常情況,包括用戶界面和系統集成。測試案例可以測試用戶如何處理不正確的輸入,以及系統如何回應。

  1. 驗收測試(Acceptance Testing):

這個階段通常涉及整個應用程式或系統的最終用戶測試。用戶應該模擬各種實際使用情況,包括可能的異常情況,以確保系統在生產環境中適當處理它們。


後記

例外處理是個非常值得研究的東西,做得好的話,用戶的體驗會很好,而且程式的穩定度和追蹤問題都很容易解決。是個值得花時間投資要如何測試或處理的功能。


參考資料


上一篇
【D11】實例簡述:測試四階段與測試方法
下一篇
【D13】測試類型介紹:回歸測試
系列文
精實30天:QA 概念養成計劃31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言