我們在上一篇文章聊到了測試左移所需的 8 大能力中的前面 4 個,包含學習研究、反應回饋、作戰計畫、追溯管理的能力,這四個能力也是我們平常工作與生活上遇到困難時的解決問題的核心能力,建議還沒看過第一篇的朋友,可以先回第一篇了解一下。那麼接下來我們要就繼續聊聊測試左移的另外四個能力。
可追溯性建置完成後代表準備工作告一段落,就要準備進入執行面了。接下來就是把應用場景給模擬出來,創造一個可以控制變數的環境來藉此確認產品功能與規格是否符合客戶要求。要把環境模擬建立起來需要兩個部分,硬體環境模擬準備,軟體流程環境準備。要先幫產品準備好適合的設備、陪測物與一個可控制的軟體執行環境,按照追溯計畫裡的控制流程實現出測試所需要的條件,例如一個產品具備有防雷擊 5kv 的能力,那我們就得為它準備一台可以輸出 5kv 高壓電的設備來模擬雷擊的發生。
軟體執行環境包含工作站、服務器、執行器等等也都要預先確認準備,讓測試項目可以像插入遊戲卡一樣快速穩定的執行。現在網路很發達,透過 VPN 遠端連線到實驗室、工作站也是值得考慮的方案,特別在混合式辦公環境,會很方便。
特別提醒一下,軟硬體環境建置的時候要優先考慮硬體,主要是硬體通常具備針對性或特殊性且佔有很高的固定成本,萬一又遇到缺貨準備期會很長,一旦硬體架構決定後就很難變更替換,是整體方案裡彈性最小的部分,一但有狀況就會嚴重影響專案進度。
大部分的 QA 可能都不具備寫程式開發能力,因此把測試流程實現在購買的第三方軟體平台上就變成他們的主要工作。當然使用第三方軟體也會受到一些限制,例如不支援想要的自動化控制功能,或者不支援需要的硬體設備,因此造成了就算知道完整流程,卻整合不起來的困境。QA 是否能具備程式設計的整合能力變成自動測試程度高低的關鍵。如果我們想測試一個網路服務瞬間在一秒鐘內可以承受多少封包量不會當機,就能把想法用自己用程式設計來實現,模擬大量客戶端發送封包給伺服器端的功能,隨著要設計架構也越來越龐大,利用軟體設計工程技術像是物件導向、設計模式都是不錯的選擇,讓測試流程也能模組化開發。
順便說個題外話,我還記得剛開始接觸測試領域的時候曾經聽過一個似是而非的說法「測試的精隨在於硬體設備」。基本上你能看得見的東西都不是秘密,真正的精髓藏就在你看不到的地方,就是那些測試流程、以及實現流程的軟體設計來也就是原始碼,就是這些看不見的東西為整個系統帶來了生命力。所以對於想要認真實現測試左移的 QA,一定要掌握那些外人看不到的關鍵技術與能力。
現在我已經看到有越來越多的 QA 具備高階軟體工程的能力,他們並不滿足於只會寫 code 的能力,對於軟體需求規格也很要求,團隊內部也不斷自我要求 coding convention, coding style , 使用 gitlab 管理源代碼管理還順便整合 CI/CD ,開發測試軟體開發模式漸漸從 Waterfall 慢慢變成 DevOps,讓持續開發整合的變成 QA 每天工作的一部份。 QA 們也因為個性細緻優勢加持將軟體工程的每個步驟做得嚴謹仔細,所以當哪天突然發生 QA 軟體能力超越軟體工程師的情況時真的請不要太訝異。
實現了測試左移後,產品設計驗證的效率將大幅提升,連晚上的時間也善加利用。以前只要專案在趕,老闆們的唯一反應就是先要求加班,如果加班還進度還不夠就繼續投入更多人力開始輪班、最後歐印讓員工連假日都繼續來加班,員工們工作與生活失衡離職率大增。加班真的是唯一解嗎?有沒有思考過是提升個體的效率?我認為仔細思考如何用科技的力量提升個體能力以及充分利用時間才是正解。
有了測試左移的觀念,加上自己開發的能力在每個把關站設計提供適合的測試解決方案,只要能夠遠端下指令,就算人不在現場的晚上的時間也能很好排程利用,遠端搭配混合辦公的工作模式也逐漸形成。現在 QA 可以在白天上班努力實現項目中的設計方案,晚上也能自動 build code 跟跑測試程式,搭配產品自動測試完畢後系統還會給出測試報告,將出現的 bug 自動整合到專案裡面,成為白天優先處理的一部分,工作形成了一個正向循環。 不但老闆的願望被實現了,QA 也受惠於科技的力量,work life balance。
實現測試左移後的每個站點都會有QA把關,不只 RD,包含 PM 與相關人員也會好奇現在所處階段的產品的可靠度究竟如何,設計上是否和規格滿足客戶需求。考慮到傳統的測試站測試完畢後只會出示一份密密麻麻的文字檔報告,不但閱讀起來不舒服,不熟悉排版的人更是找不到自己想要的測試結果,於是 QA 們還需要再追加一個數據處理跟表達的能力。
把測試的結果資料重新整合變成容易閱讀的資訊,利用電子看板,圖文並茂以一目瞭然的方式呈現就很適合人的閱讀習慣。經過刻意安排的總結資訊看板,可以引導觀看者的思路。例如:畫面一出來就先來個大總結,A 產品在 P2 階段的驗證項目總共有 100 條,失敗的有 5 條,通過率 95%,目標合格率是 100%,用圓餅圖來呈現。看報告的人很清楚目前所有測試項目的執行狀況,以及那 5% 的主要原因,利用 Drill down 功能進一步追進去了解問題,確認問題後再提出方案進行修正。看板上能做的事情還很多包含各種品質圖表、利用顏色管理等,這些可視化工具都能很快地幫助閱讀者了解全貌進行總結判斷,所以能將數據整理好再利用電子看板來呈現測試結果的能力也很重要。
就跟平台軟體一樣,Dashboard 也不一定要自己開發,市面上有很多有趣免費套件可以用,對於會寫程式的 QA 調用起來也不是太困難。要是真的不想自己動手做也可以考慮花錢購買縣城套裝軟體。
以上就是我想跟你分享的測試左移的 8 大能力,有些工作經驗的朋友應該並不會很難理解才對。工作與生活上的每個角色都有其存在的價值要發揮,而 QA 作為新一代的品質守門員們隨著自身經驗的累積,每次都能以 Open Mind 的態度能幫助自己與他人更深入的了解產品開發各個階段,過程中不斷與自己專業進行對話總結,測試左移自然水到渠成。這些解決問題的觀念也適合應用在個人生活上,讓時間幫助你鍍上屬於你自己的競爭優勢,這也是我想借測試左移一起來分享給大家的觀念。