指南

點樣喺推出前測試你嘅應用程式:實用推出前計劃

要測試應用程式推出前嘅狀況,先列出用家必須能夠完成嘅幾個流程,然後以全新用家嘅身份,分別喺電腦同手機上逐一執行,再試吓各種出錯嘅情況:空白數據、錯誤輸入、第二個帳戶、慢速網絡。任何涉及金錢或私人資料嘅嘢都要格外小心測試,並且喺發佈後,喺正式網址上重複主要流程。最後,觀察一個從未見過應用程式嘅人嘗試使用佢。

你唔需要測試團隊或者測試框架,只需要一份清單、一兩個小時,同埋確實照住清單一步步點擊嘅紀律。

第一步:寫下真正重要嘅流程

流程就係用家前來要完成嘅一個由頭到尾嘅任務。大多數應用程式有三至六個真正重要嘅流程。以一個預約應用程式為例:

  1. 註冊並確認帳戶
  2. 搵一堂課並預約
  3. 取消預約
  4. 為課堂套票付款
  5. 職員:查看今日嘅預約

如果你已經寫咗用戶故事,佢哋嘅接受準則其實就已經係你嘅測試個案。如果未有,就為每個流程寫一行,列明「成功」係咩樣。

將佢哋排序。賺錢嘅流程,或者每位用家都會經歷嘅流程(例如註冊、登入、核心操作),要最先同最徹底測試。

第二步:以全新用家測試順利流程

「順利流程」係指流程完全按照設計進行。以陌生人嘅體驗去測試:

  • 使用私人瀏覽視窗,咁樣你就未有登入,亦冇任何已儲存嘅資料。
  • 使用一個全新帳戶,並用一個你可以收到驗證信嘅真實電郵。
  • 由首頁或者一個連結開始,而唔係由你喺建立時書籤咗嘅頁面開始。

新用家冇任何數據。好多錯誤只會喺清單空白、個人檔案冇相片,或者仲未有任何購買紀錄時先出現。你自己擁有大量測試數據嘅帳戶,會將呢啲錯誤掩蓋。

第三步:嘗試搞亂佢

而家再重複每個流程,並故意做錯事。

試呢樣嘢你要檢查嘅事項
空白提交表格,或者只係輸入空格必填欄位有強制執行,並有清楚嘅訊息
超長文字、表情符號、帶重音符號嘅名字版面保持正常,資料亦能正確儲存
格式錯誤:電話欄位輸入字母、輸入過去嘅日期網頁同伺服器兩邊都有驗證
連按提交按鈕兩下冇重複訂單或重複預約
流程進行中途按瀏覽器返回按鈕冇損壞嘅狀態,亦冇遺失資料
每頁都重新整理資料會保留;冇空白頁面或 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)需要自動化測試嗎?

未必。人手測試核心流程已經可以捉到大部分會阻礙推出嘅錯誤。當你經常改動應用程式,並且希望快速知道有冇弄壞一啲原本運作正常嘅功能時,自動化測試就開始有回報。

應該喺預覽定正式應用程式上測試?

兩樣都要。先喺預覽入面全面測試,然後喺發佈後嘅正式應用程式上重複主要流程,因為缺少環境變數、不同資料庫,或者路由設定,都可能令正式版本表現唔同。

除咗我自己,仲應該由邊個測試?

至少要有一個從未見過呢個應用程式嘅人。俾佢哋一個目標,而唔係指示,然後喺旁邊觀察,唔好幫手。建立者好容易不自覺咁避開會出錯嘅路徑。

Mythex · Pricing · 用 AI 建造任何嘢 · 網站及應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(台灣)