6. 測試

最佳實踐

擴充套件模組

任何複雜度達到一定程度的程式碼庫都需要有配套的測試系統,以確保在新增新程式碼時,程式碼庫能繼續正確且高效地執行,並持續滿足使用者的需求。本模組列出了您應該開始學習的基礎知識。

6.1 通用測試基礎

學習成果

  • 理解測試的總體目的

    • 確保應用程式的功能能夠(並持續)為目標使用者群體在選定的質量水平上正常執行。

    • 確保程式碼和功能符合選定的質量標準,並符合既定的符合性標準、基準或指南。

  • 常見測試型別的目的

    • 功能測試(與單元測試相關):檢查 Web 應用程式的功能是否按預期工作,例如使用者互動、表單、導航、連結和其他核心功能。

    • 可用性測試:評估 Web 應用程式的使用者友好性。這包括評估使用者導航應用程式、完成任務和實現目標的難易程度。

    • 相容性測試(又稱跨瀏覽器測試):確保 Web 應用程式在不同的瀏覽器、作業系統和裝置上都能正常執行。

    • 效能測試:衡量 Web 應用程式在不同負載下的響應速度、速度、可伸縮性和穩定性(另請參閱 擴充套件 4:效能)。

    • 安全測試:識別 Web 應用程式安全機制中的漏洞和弱點(另請參閱 擴充套件 5 安全與隱私)。

    • 可訪問性測試:確保殘障人士可以使用 Web 應用程式,符合可訪問性指南,例如 Web 內容可訪問性指南(另請參閱 可訪問性)。

6.2 功能和相容性測試

學習成果

  • 理解這兩者密切相關——您希望您的 Web 應用程式功能能夠在各種目標瀏覽器/裝置上為目標使用者群體正常執行。此外,可以使用可用工具在很大程度上自動化此類測試。

  • 一些可訪問性測試可以自動化,例如,“影像是否都有 alt 文字?”。

  • 執行自動化測試的典型流程

    • 確定目標使用者群體是誰,以及他們正在使用哪些瀏覽器。

    • 確定應測試的功能項。這些可以從視覺(“佈局看起來是否應該這樣?”)到面向使用者的函式(“搜尋框是否返回結果?”)再到更低級別的程式碼(“函式 x() 是否返回預期結果?”)不等。

    • 一些測試還將測試整合模組是否與其他程式碼庫部分正常工作(整合測試)。

    • 使用合適的工具集編寫測試來測試這些功能。

    • 定期執行測試(例如,每次提交到倉庫後)以檢視是否有測試失敗。

    • 記錄測試結果。

    • 修復程式碼並重新執行測試以確保它們透過,並確保程式碼更新沒有引入新的錯誤(迴歸測試)。

  • 瞭解用於執行自動化測試的典型工具集

    • 結合使用物理裝置和虛擬機器(如 VirtualBox)來提供不同的瀏覽器和裝置組合。

    • 使用 Selenium/WebDriver 在已安裝的瀏覽器上執行特定測試並返回結果,從而在瀏覽器出現故障時及時通知您。可以使用 webdriver.ionightwatch.js 等包透過 Node.js 程式碼控制 WebDriver(也存在其他平臺整合)。

    • Playwright 是一個流行的替代方案。

    • 使用 JestMocha 等庫,直接在程式碼庫中編寫自己的功能測試。

    • 使用基於雲的服務進行跨瀏覽器自動化功能測試,例如 LambdaTestSauce LabsBrowserStackTestingBot。其中大多數服務都提供 API,允許您從 Node.js 等平臺執行測試。

  • 瞭解如何使用持續整合 (CI) 工具將測試整合到 GitHub

    • 瞭解其實用性——您可以設定一個系統,在每次提交程式碼更改時自動執行測試套件。

    • 使用 CircleCITravis CI 等工具來實現這一點。

資源

6.3 可用性測試

學習成果

  • 理解可用性測試與功能測試的區別——功能測試在很大程度上可以自動化(主要檢查程式碼是否返回預期結果),而可用性測試通常需要與真實測試物件進行手動測試(例如,“頁面是否允許我找到最重要的功能,並且使用起來是否直觀?”)。

  • 作為可用性測試的一部分,應進行一些可訪問性測試——例如,您可能可以透過 Tab 鍵訪問表單元素進行填寫,但對於輔助技術使用者來說,該表單是否有意義?他們能否瞭解它要求提供什麼資訊?

  • 可用性測試的典型流程

    • 確定要測試的應用程式功能方面(可以是假設或您想測試的問題陳述),以及最適合測試它們的目標使用者群體。

    • 招募一些測試物件進行測試。5-10 次成功的會話足以開始識別重複出現的可用性問題。

    • 為測試物件編寫指令碼,讓他們按照指令碼測試功能(例如,“導航到產品頁面,搜尋一個元件,然後將其新增到購物車”)。

    • 與測試物件一起執行可用性測試並記錄會話。

    • 分析會話,並確定需要進行的改進。

    • 進行改進。

    • 衡量改進是否解決了問題(例如,透過檢視關鍵指標的變化,或透過與新一批測試物件重新執行可用性測試)。

  • 執行可用性測試的典型工具集

    • 需要清晰的指示:向測試物件解釋測試的目的。指導他們在執行任務時“出聲思考”。觀察他們的互動,並記錄他們遇到的任何問題或困難。鼓勵參與者提供誠實的反饋。

    • 視訊會議軟體,如 Zoom,它包含螢幕共享功能,以便您觀察測試物件正在做什麼,並能夠錄製會話以便以後回顧。

    • 眼動追蹤軟體可能很有用,它可以讓您看到使用者在嘗試遵循指令碼時在網站上關注的地方。

資源

上一篇:5. 安全與隱私 下一篇:7. JavaScript 框架