Java Test #0: 軟體測試概念篇

Charlie Lee
Bucketing
Published in
4 min readJul 25, 2020

--

要如何測試軟體,軟體測試流程長怎樣,這篇文章告訴你

Photo by National Cancer Institute on Unsplash

項目

  • 為何要測試
  • 軟體測試的種類
  • 總結

為何要測試?

測試不是只存在軟體業,他存在各行各業之中像是:

  1. 木匠測量並且設計後,還是要時時刻刻觀察自己的產品是否符合預期,預防埋頭苦幹後最後產出來的跟當初設計的不一樣
  2. 自動化代工,需要隨時檢查生產線參數,確保生產的產品符合客戶期待
  3. 創業家要快速的生產產品,讓產品面對市場並且得到回饋,隨時修正公司未來走向

測試是為了調整方向,隨時檢驗正在做的事情是不是在往正確的方向前進,並且循序漸進的做好PDCA(Plan, Do, Check, Act)

軟體測試的種類

從頂層到底層的排序如下:

  • 驗收測試 — 讓產品面對市場或是客戶

最牽涉錢的一關,情境:
產品公司 - (使用者回饋就是驗收測試) : 功能問世後,透過向使用者收集的數據檢測功能被使用的意願,與是否符合使用者期待,使用者滿意的話自然產品獲利機會就會上升。
專案公司 - (進行驗收測試會議) : 整個開發週期或許甲方的心態因為時間的關係有所轉變,想要更改或修正功能。舉例:肺炎時期,健康照護系統想要追加每日感染人數功能,並且覺得是應該要包含在服務里。在此階段做好釐清並且修正,可以幫助在追回尾款時更加順利。 (許多甲方不願意付清尾款就是因為心態與當初和開發團隊討論時已經不一樣,對最終產品滿意度過低不願意付錢 / P.S.當然也有些就是不想付)

  • 系統測試

系統測試是確保軟體本身邏輯沒錯誤後開始進行,包含壓力測試(連線數量)/效能(反應速度)/安全(是否可以抵禦駭客攻擊)/容錯(若發生錯誤使否可以回滾,或是使用者可以持續使用最基礎的操作)

  • 整合測試

用一個情境就可以解釋整合測試,今天國際家具大廠希望台灣的代工工廠可以幫忙生產一千萬個椅子,如此龐大數量的椅子當然無法透過一家工廠生產,於是接洽此單的老闆找了五六家工廠,並且很聰明的設計分工模式,例如: A工廠負責生產椅腳/ B工廠負責生產椅背/ C工廠負責坐板,在洽談後規格(長度大小)後便約定一個月後各拿出原型嘗試組裝,一個月後要開始拼湊時,發現嚴重的問題,當初洽談規格時忘了討論彼此要互相組裝的插口,修正後如期完成國際家具大廠的訂單。

簡單來說上面做好模型,嘗試組裝並且發現插口不相符合時的行為就是整合測試。

單元測試確保每個功能Function都可以正常運作,在整合測試就可以更進接的確定每個Function模組是不是可以協作。

  • 單元測試

單元就是不可以在切割的意思,在Java程式裡就是每個class裡的function,在此環節就是確保每一行程式碼的正確性。

總結

4種測試的Input / Output

  1. 驗收測試: Input — 最終產品 / Output — 市場或使用者回饋是否符合預期
  2. 系統測試: Input — 完整的軟體 / Output — 效能安全容錯檢測,這樣的效能安全是否可以讓使用者穩定使用
  3. 整合測試: Input — 完整的程式模組 / Output — 模組間溝通是否有問題
  4. 單元測試: Input — Class Function / Output — 程式碼跑出來的結果是不是與開發者的期待一致

每個環節除了單元測試,都會牽涉到不只工程師的角色,所以在其他三個測試環節工程師偶爾會有點無力感(跨部門跨公司的溝通/市場分析調研/硬體採購),而單元測試是工程師可以完全掌控的環節,所以之後系列文會著重在單元測試與一點點整合測試。

--

--