非開發者軟體測試能抓到、而程式碼審查抓不到的問題
謊報
畫面顯示成功訊息,實際上什麼都沒存下來。讀程式碼看到的是意圖,不是結果。
困惑
流程在技術上沒問題,卻沒有人走得完。這種事只有真人才會察覺。
假設
在建立它的那個帳號上正常,換成其他人就失敗。
對持有第一個帳號的人來說完全看不見。
四個不需要程式碼的檢查
做一次,然後重新整理。 這能區分「畫面更新了」和「資料存下來了」。這是報酬率最高的一項檢查。
換另一個人的身分再做一次。 第二個帳號可以立刻找出權限上的隱含假設。
故意做錯。 送出不合法的內容,確認應用程式會明確告知,而不是默默失敗。
什麼都不填就做一次。 空狀態總是最後才做,也最少被測到。
寫出真的會被修好的問題回報
三句話就夠,不需要任何技術術語。你依序做了什麼。你預期會發生什麼。實際上發生了什麼。「我填完表單按下儲存,我預期清單裡會出現這筆資料,但清單一直是空的,直到我重新整理」——這樣的描述直接指向缺陷,不需要別人再去解讀。
這同時也是一項檢查。只要寫下來一次,之後每一次變更都能重跑。
當沒有人處理你的回報時該怎麼辦
這個角色最常見的挫折,是明明找到了真的問題,卻只能看著它擱在那裡。問題通常不是沒有人相信你,而是回報的內容不足以讓任何人動手。
有三件事可以補上這個落差。寫清楚是哪個帳號、哪個環境,因為只發生在某一類使用者身上的問題,本質上是另一種問題。寫清楚是每次都會發生還是偶爾發生,因為偶發和穩定重現的成因完全不同,知道是哪一種可以省下一小時。還有,明確寫出你原本預期的結果,因為有一半的情況,爭議其實出在需求而不是程式碼,這種事值得早點攤開來談。
這些都不需要技術術語。這就是一份只被分類歸檔的回報,和一份真的被修好的回報之間的差別。
讓這些檢查留得比你更久
非開發者測試的限制從來不是技能,而是一個人能重複檢查的量就是那麼多。用白話描述流程、再讓它自動執行,就能打破這個上限,而且不需要任何人去學一套框架。
這些都不需要終端機。在 TestSprite 控制台建立一個專案,用白話描述要檢查什麼,然後指向你的應用程式。團隊裡的開發者如果偏好命令列,也可以用同樣的方式操作,相關內容在 CLI 儲存庫。
有兩條路,而選擇的關鍵其實在於誰負責這條流水線。從控制台接上 GitHub App ,完全不需要改動你的儲存庫,因為它回應的是你的建置本來就會發出的部署。而新增一個 GitHub Actions 步驟,則是把檢查放進儲存庫裡,和建置的其他部分一樣接受審查。
TestSprite 如何讓你的檢查長久留存
你用向同事說明的方式描述一段流程,TestSprite 就拿它去跑你的應用程式。不用測試程式碼、不用框架、不用終端機。在控制台建立專案,指向你的產品,然後寫下那三句話:你做了什麼、你預期什麼、之後應該成立的又是什麼。
從此之後,每一次變更都會執行。本頁的四項檢查不再是你得手動重複的動作,而是一份在你忙別的事情時仍持續運作的紀錄。
價值很具體:你對「應該發生什麼」的理解不再只存在於你的腦袋裡,這正是讓這份貢獻被其他人看見、並在你轉往下一件事之後仍然留存的原因。
我需要學會寫程式嗎?
不需要。用白話描述流程就好。你帶來的價值在於知道應該發生什麼,而那不是一項寫程式的技能。
我怎麼知道我的檢查是真的有效?
故意把功能弄壞,確認檢查會失敗。花一分鐘,而這是唯一能證明它真的有接上任何東西的方法。
如果開發者不理會我的回報怎麼辦?
用那三句話。一段具體的操作順序加上明確的預期,比一句「壞掉了」難打發得多。
我應該在變更前還是變更後測試?
都要。變更之前就存在的檢查,能告訴你這次變更有沒有弄壞什麼,那是更有價值的方向。
最值得檢查的單一件事是什麼?
做一個動作,然後重新整理。在這裡出問題的產品比任何地方都多,而且只要五秒鐘。