點樣喺推出前測試你嘅應用程式:實用推出前計劃
要測試應用程式推出前嘅狀況,先列出用家必須能夠完成嘅幾個流程,然後以全新用家嘅身份,分別喺電腦同手機上逐一執行,再試吓各種出錯嘅情況:空白數據、錯誤輸入、第二個帳戶、慢速網絡。任何涉及金錢或私人資料嘅嘢都要格外小心測試,並且喺發佈後,喺正式網址上重複主要流程。最後,觀察一個從未見過應用程式嘅人嘗試使用佢。
你唔需要測試團隊或者測試框架,只需要一份清單、一兩個小時,同埋確實照住清單一步步點擊嘅紀律。
第一步:寫下真正重要嘅流程
流程就係用家前來要完成嘅一個由頭到尾嘅任務。大多數應用程式有三至六個真正重要嘅流程。以一個預約應用程式為例:
- 註冊並確認帳戶
- 搵一堂課並預約
- 取消預約
- 為課堂套票付款
- 職員:查看今日嘅預約
如果你已經寫咗用戶故事,佢哋嘅接受準則其實就已經係你嘅測試個案。如果未有,就為每個流程寫一行,列明「成功」係咩樣。
將佢哋排序。賺錢嘅流程,或者每位用家都會經歷嘅流程(例如註冊、登入、核心操作),要最先同最徹底測試。
第二步:以全新用家測試順利流程
「順利流程」係指流程完全按照設計進行。以陌生人嘅體驗去測試:
- 使用私人瀏覽視窗,咁樣你就未有登入,亦冇任何已儲存嘅資料。
- 使用一個全新帳戶,並用一個你可以收到驗證信嘅真實電郵。
- 由首頁或者一個連結開始,而唔係由你喺建立時書籤咗嘅頁面開始。
新用家冇任何數據。好多錯誤只會喺清單空白、個人檔案冇相片,或者仲未有任何購買紀錄時先出現。你自己擁有大量測試數據嘅帳戶,會將呢啲錯誤掩蓋。
第三步:嘗試搞亂佢
而家再重複每個流程,並故意做錯事。
| 試呢樣嘢 | 你要檢查嘅事項 |
|---|---|
| 空白提交表格,或者只係輸入空格 | 必填欄位有強制執行,並有清楚嘅訊息 |
| 超長文字、表情符號、帶重音符號嘅名字 | 版面保持正常,資料亦能正確儲存 |
| 格式錯誤:電話欄位輸入字母、輸入過去嘅日期 | 網頁同伺服器兩邊都有驗證 |
| 連按提交按鈕兩下 | 冇重複訂單或重複預約 |
| 流程進行中途按瀏覽器返回按鈕 | 冇損壞嘅狀態,亦冇遺失資料 |
| 每頁都重新整理 | 資料會保留;冇空白頁面或 404 |
| 登出後按返回 | 私人頁面唔會再顯示 |
| 兩個分頁同時編輯同一件嘢 | 最後一次儲存唔會靜靜咁清除第一次嘅內容 |
重新整理特別值得留意:如果你按住應用程式操作時一切正常,但喺較深層頁面重新整理後出現 404,請參閱點樣修復部署後出現嘅 404 錯誤。
第四步:用兩個帳戶測試權限
對任何有帳戶功能嘅應用程式來說,呢個係最重要嘅測試,但也最常被忽略。
建立兩個普通用家 A 同 B;如果你嘅應用程式有管理員,再加一個管理員。
- 以 A 身份建立一筆紀錄。改以 B 身份登入,睇吓 B 可唔可以睇到、編輯或者刪除呢筆紀錄。除非設計上就係咁,否則佢哋都唔應該可以。
- 以 A 身份複製其中一筆紀錄嘅網址。改以 B 身份登入,然後直接打開嗰個網址。
- 以普通用家身份,嘗試直接輸入管理頁面嘅網址。
- 完全登出,再試吓同樣嘅網址。
如果呢度發現問題,喺修好之前唔好推出。檢查必須喺伺服器端進行,而唔係只係隱藏一個按鈕。我哋嘅 AI 建立應用程式保安清單會更深入講解。
第五步:喺真實裝置上測試
喺真正嘅手機上打開應用程式,唔好只係睇吓一個窄嘅瀏覽器視窗。
- 你可以唔使放大,就撳到每一個按鈕嗎?
- 鍵盤會唔會擋住你正在輸入嘅欄位?
- 表格同寬闊嘅內容係可以捲動,定係會自動換行,而唔係將頁面推到一邊?
- 文字唔使捏大都睇得清嗎?
如果可以,至少用一部 iPhone(Safari)同一部 Android 手機(Chrome)測試。Safari 尤其在日期、影片同固定定位元素方面有自己嘅特別行為。
第六步:端到端測試金錢同電郵功能
任何涉及收費卡付款或發送電郵嘅功能,都需要完整跑一次。
**付款。**使用付款服務商嘅測試模式同測試卡號。檢查成功付款、被拒絕嘅卡,以及取消結帳。確認付款後,訂單或訂閱會喺你嘅應用程式入面出現,而唔只係喺服務商嘅後台。如果你嘅應用程式依賴 Webhook(付款服務商發送畀你伺服器嘅訊息),要確認喺已發佈嘅應用程式上都有收到,而唔只係喺開發環境。之後,喺推出前轉用正式金鑰,並完成一宗真實但小額嘅購買,然後退款。
**電郵。**用真實地址喺兩至三個唔同服務商註冊。檢查電郵會唔會到達、會唔會落入垃圾郵件,以及電郵入面每個連結是否都指向正式網域,而唔係預覽地址。
第七步:檢查速度同錯誤
- 打開瀏覽器嘅開發者工具(按右鍵 → 檢查),並喺每個主要頁面查看主控台分頁。紅色錯誤即使唔見得有問題,都值得修正。
- 用流動數據而唔係 Wi-Fi,喺手機上載入網站。如果第一個畫面要幾秒先出現,先睇吓圖片大小。
- 喺 Chrome 開發者工具執行免費審核,例如 Lighthouse,快速了解效能同無障礙功能。
第八步:測試已發佈嘅應用程式,而唔只係預覽
預覽同已發佈嘅應用程式並唔係同一個環境。喺告訴任何人推出之前,喺正式網址上重複主要流程:
- 是否已為已發佈嘅應用程式設定所有環境變數同機密資料?
- 佢是否使用正確嘅資料庫,並且有你預期嘅數據?
- 登入重新導向同電郵連結是否使用正式網域?
- 較深層頁面重新整理後,能否正確載入?
第九步:觀察其他人使用
俾一兩個人一個目標(「幫我預約星期六嘅瑜伽班」),而唔係指示。觀察,但唔好幫手,並記低佢哋喺邊度猶豫。呢個係找出令人混淆嘅字句同隱藏按鈕最快嘅方法。如果想做較大規模嘅版本,參閱點樣進行測試版測試。
當佢哋遇到錯誤時,要用正確格式寫低:步驟、預期結果,以及實際結果。我哋的指南點樣寫一份好嘅錯誤報告列出咗格式。
使用 AI 幫手測試
如果你用 AI 建立應用程式,可以要求佢幫忙規劃同執行測試:
列出呢個應用程式嘅主要用家流程,並且為每個流程列出最容易出錯嘅特殊情況:空白狀態、無效輸入、權限,以及重新整理。整理成一份我可以逐項跟進嘅清單。
以兩個唔同嘅測試用家登入,檢查用家 B 可唔可以睇到或更改用家 A 建立嘅任何嘢,包括直接打開 A 嘅紀錄網址。先報告你發現咗乜,再進行修正。
將 AI 自己嘅測試報告視為第一輪檢查。對於付款同權限相關嘅流程,仍然要自己逐步點擊測試。
Mythex 內嘅測試
喺 Mythex 入面,/test 指令會執行 App Testing:代理會透過瀏覽器針對你嘅實時預覽進行操作,點擊各個頁面,擷取截圖,並喺對話中報告壞咗嘅流程。最適合用於指定流程,例如「測試註冊同預約一堂課」。用 /fix 或一般訊息修正佢發現嘅問題,然後再次執行 /test。App Testing 使用嘅係預覽,所以發佈後你仍要自己喺已發佈嘅網址上檢查主要流程。參閱文件入面嘅 App Testing,以及當出現失敗時,參閱我哋嘅點樣除錯 AI 建立嘅應用程式指南。
常見錯誤
- **只以自己身份測試。**你嘅管理員帳戶擁有大量數據,會掩蓋空白狀態同權限問題。
- **只喺電腦上測試。**好多網站嘅訪客大部分都係用手機瀏覽。
- **冇測試第二個帳戶。**用家數據外洩,係一個應用程式推出時可能出現最嚴重嘅錯誤。
- **信任預覽。**正式應用程式有唔同嘅設定,所以都要測試。
- **修復錯誤後,冇重新測試相鄰功能。**修改一個表格可能會弄壞另一個同樣共用程式碼嘅表格。
推出前清單
- 主要流程已列出並排好先後次序
- 每個流程都以全新用家身份,喺私人視窗入面通過
- 空白、無效、超長同重複嘅輸入都已處理
- 每個頁面重新整理後都正常
- 用戶睇唔到或者更改唔到彼此嘅資料,即使透過網址都唔得
- 普通用家同未登入嘅訪客都無法進入管理頁面
- 喺真正嘅 iPhone 同 Android 手機上運作正常
- 付款已測試:成功、被拒、取消,並且之後應用程式會更新
- 電郵會到達、唔會落入垃圾郵件,並且連結指向正式網域
- 主要頁面嘅主控台冇紅色錯誤
- 主要流程已喺已發佈嘅網址上重複測試
- 至少有一位外人喺你旁邊觀察下試用過
常見問題
小型應用程式推出前需要幾多測試?
要做到有信心:全新用家喺手機同電腦上都可以完成主要流程、用家睇唔到彼此嘅資料,以及任何涉及金錢嘅功能可以端到端正常運作。對大部分小型應用程式來說,通常係幾個集中嘅小時,而唔係幾個星期。
最小可行產品(MVP)需要自動化測試嗎?
未必。人手測試核心流程已經可以捉到大部分會阻礙推出嘅錯誤。當你經常改動應用程式,並且希望快速知道有冇弄壞一啲原本運作正常嘅功能時,自動化測試就開始有回報。
應該喺預覽定正式應用程式上測試?
兩樣都要。先喺預覽入面全面測試,然後喺發佈後嘅正式應用程式上重複主要流程,因為缺少環境變數、不同資料庫,或者路由設定,都可能令正式版本表現唔同。
除咗我自己,仲應該由邊個測試?
至少要有一個從未見過呢個應用程式嘅人。俾佢哋一個目標,而唔係指示,然後喺旁邊觀察,唔好幫手。建立者好容易不自覺咁避開會出錯嘅路徑。