任何複雜度達到一定程度的程式碼庫都需要有配套的測試系統,以確保在新增新程式碼時,程式碼庫能繼續正確且高效地執行,並持續滿足使用者的需求。本模組列出了您應該開始學習的基礎知識。
6. 測試
最佳實踐
擴充套件模組
6.1 通用測試基礎
學習成果
-
理解測試的總體目的
-
確保應用程式的功能能夠(並持續)為目標使用者群體在選定的質量水平上正常執行。
-
確保程式碼和功能符合選定的質量標準,並符合既定的符合性標準、基準或指南。
-
-
常見測試型別的目的
-
功能測試(與單元測試相關):檢查 Web 應用程式的功能是否按預期工作,例如使用者互動、表單、導航、連結和其他核心功能。
-
可用性測試:評估 Web 應用程式的使用者友好性。這包括評估使用者導航應用程式、完成任務和實現目標的難易程度。
-
相容性測試(又稱跨瀏覽器測試):確保 Web 應用程式在不同的瀏覽器、作業系統和裝置上都能正常執行。
-
效能測試:衡量 Web 應用程式在不同負載下的響應速度、速度、可伸縮性和穩定性(另請參閱 擴充套件 4:效能)。
-
安全測試:識別 Web 應用程式安全機制中的漏洞和弱點(另請參閱 擴充套件 5 安全與隱私)。
-
可訪問性測試:確保殘障人士可以使用 Web 應用程式,符合可訪問性指南,例如 Web 內容可訪問性指南(另請參閱 可訪問性)。
-
6.2 功能和相容性測試
學習成果
-
理解這兩者密切相關——您希望您的 Web 應用程式功能能夠在各種目標瀏覽器/裝置上為目標使用者群體正常執行。此外,可以使用可用工具在很大程度上自動化此類測試。
-
一些可訪問性測試可以自動化,例如,“影像是否都有 alt 文字?”。
-
執行自動化測試的典型流程
-
確定目標使用者群體是誰,以及他們正在使用哪些瀏覽器。
-
確定應測試的功能項。這些可以從視覺(“佈局看起來是否應該這樣?”)到面向使用者的函式(“搜尋框是否返回結果?”)再到更低級別的程式碼(“函式
x()是否返回預期結果?”)不等。 -
一些測試還將測試整合模組是否與其他程式碼庫部分正常工作(整合測試)。
-
使用合適的工具集編寫測試來測試這些功能。
-
定期執行測試(例如,每次提交到倉庫後)以檢視是否有測試失敗。
-
記錄測試結果。
-
修復程式碼並重新執行測試以確保它們透過,並確保程式碼更新沒有引入新的錯誤(迴歸測試)。
-
-
瞭解用於執行自動化測試的典型工具集
-
結合使用物理裝置和虛擬機器(如 VirtualBox)來提供不同的瀏覽器和裝置組合。
-
使用 Selenium/WebDriver 在已安裝的瀏覽器上執行特定測試並返回結果,從而在瀏覽器出現故障時及時通知您。可以使用 webdriver.io 和 nightwatch.js 等包透過 Node.js 程式碼控制 WebDriver(也存在其他平臺整合)。
-
Playwright 是一個流行的替代方案。
-
使用基於雲的服務進行跨瀏覽器自動化功能測試,例如 LambdaTest、Sauce Labs、BrowserStack 或 TestingBot。其中大多數服務都提供 API,允許您從 Node.js 等平臺執行測試。
-
-
瞭解如何使用持續整合 (CI) 工具將測試整合到 GitHub
資源
6.3 可用性測試
學習成果
-
理解可用性測試與功能測試的區別——功能測試在很大程度上可以自動化(主要檢查程式碼是否返回預期結果),而可用性測試通常需要與真實測試物件進行手動測試(例如,“頁面是否允許我找到最重要的功能,並且使用起來是否直觀?”)。
-
作為可用性測試的一部分,應進行一些可訪問性測試——例如,您可能可以透過 Tab 鍵訪問表單元素進行填寫,但對於輔助技術使用者來說,該表單是否有意義?他們能否瞭解它要求提供什麼資訊?
-
可用性測試的典型流程
-
確定要測試的應用程式功能方面(可以是假設或您想測試的問題陳述),以及最適合測試它們的目標使用者群體。
-
招募一些測試物件進行測試。5-10 次成功的會話足以開始識別重複出現的可用性問題。
-
為測試物件編寫指令碼,讓他們按照指令碼測試功能(例如,“導航到產品頁面,搜尋一個元件,然後將其新增到購物車”)。
-
與測試物件一起執行可用性測試並記錄會話。
-
分析會話,並確定需要進行的改進。
-
進行改進。
-
衡量改進是否解決了問題(例如,透過檢視關鍵指標的變化,或透過與新一批測試物件重新執行可用性測試)。
-
-
執行可用性測試的典型工具集
-
需要清晰的指示:向測試物件解釋測試的目的。指導他們在執行任務時“出聲思考”。觀察他們的互動,並記錄他們遇到的任何問題或困難。鼓勵參與者提供誠實的反饋。
-
視訊會議軟體,如 Zoom,它包含螢幕共享功能,以便您觀察測試物件正在做什麼,並能夠錄製會話以便以後回顧。
-
眼動追蹤軟體可能很有用,它可以讓您看到使用者在嘗試遵循指令碼時在網站上關注的地方。
-
資源
- 可用性測試 101,nngroup.com (2019)