手動測試與自動測試

手動測試時會檢查每個新任務的細節,除了正常使用情境與介面檢查外,也會測試極端情況、錯誤使用方式的處理、不同版本或權限的管理等等。

自動測試的環節出現在新版本的功能、優化、bug fix merge 到主要分支後、準備上線前的最後一道關卡,跟 DevOps、SRE 密切合作。主要測試項目為目前線上已有的功能與模組,例如註冊、登入、加入購物車、結帳流程等等,避免新的版本影響到原有功能。而新功能的自動化測項則是會邊開發邊加進去,逐漸提高代碼覆蓋率(code coverage)。

QA 主管負責掌管龐大的測試項目(Test Cases)資料庫,使用如 TestRails 這類型的工具將測試項目分類、互相關聯、複製、移動,同時跟工程師、產品經理溝通新的功能開發的測試項目、資源、時程。

手動測試和自動測試都很重要,前者強調使用情境、使用流程、UIUX的具象狀況,後者則是能快速檢查與盤點大部份重要功能的實作與邏輯運作狀況。


來源


自動化測試

測試:通過探索和實驗來學習產品來評估產品的過程,其中包括在某種程度上:質疑,研究,建模,觀察,推理等。

檢查:通過將算法決策規則應用於產品的特定觀察來進行評估的過程。

以體檢來比喻測試:

體檢很類似軟體檢查,透過體檢,得知人體是否有生病的可能性。

我們在體檢時,測量體重、高血壓、白血球數量等等,超過某個「標準」,就會出現紅字,提醒我們該注意飲食、增加運動量等等。

這些「標準」是經歷過數十年的實驗或是醫療紀錄累積下來,讓人類得知超標後,生病的記錄很高。

因此,當新功能或新產品還不一定有明確的標準時,必須經歷反覆驗證或是與開發者溝通、確認標準,且經歷長時間的觀察,確認 behavior 不會再變動,才有機會變成自動化檢查的項目。

簡而言之,能夠有明確標準的case,才有機會變成自動化檢查的項目,而這種方式有助於減少 QA 進行 regression的時間。

最後,引用倡導海盜派測試的邰曉梅來台演講曾提出:

其實 Testing 是以一種探索的過程,每個人對於產品品質的定義是不同的,而透過探索、溝通、協調的過程中,達到共識。這過程稱之為 「Quality Alignment」。

而我認為:

不管手動、自動、腳動、眼動來測試,只要能夠預防及找到bug,且能夠清楚地描述 reproduce步驟,就是好 QA

畢竟,預防及找到bug、確保品質,才是QA的工作,其他都只是手段,別把任何手段給神化了。

來源

留言