功能測試是一種測試,旨在確定每個應用程式功能是否按照軟體要求工作。將每個功能與相應的要求進行比較,以確定其輸出是否符合最終使用者的期望。測試是通過提供樣本輸入、捕獲結果輸出並驗證實際輸出是否與預期輸出相同來完成的。
一些功能測試範例包括:
與非功能測試不同,功能測試不關心調查應用程式底層原始程式碼的品質、安全性或性能。它不衡量速度、可擴展性和可靠性。
相反,功能測試側重於處理結果,而不是處理機制,並確定應用程式是否滿足基本的最低使用者期望。
從這個意義上說,功能測試定義幾乎是黑盒測試的同義詞,而另一方面,白盒測試更常見的是非功能測試的特徵。
功能測試計劃通常遵循以下順序:
確定測試目標
功能測試目標是軟體根據專案要求預期具有的功能。測試目標包括驗證應用程式是否按預期工作,以及它是否正常處理錯誤和意外情況。
創建測試方案
為給定功能制定所有可能(或至少所有最重要的)測試方案的清單。測試方案描述了該功能的不同使用方式。例如,對於支付模組,測試場景可能包括多種貨幣、處理無效或過期的卡號,以及生成交易成功完成的通知。
創建測試數據
根據您確定的測試場景創建類比正常使用條件的測試數據。您可以手動輸入測試數據(例如,從 MS-Excel 電子表格或列印輸出),也可以通過腳本或測試工具自動輸入數據,該腳本或測試工具從資料庫、平面檔、XML 或電子表格中讀取和輸入數據。每組輸入數據還應具有關聯的數據,這些數據描述輸入數據應生成的預期結果。
設計測試案例
根據測試輸入的不同預期結果創建測試用例。例如,如果輸入無效的信用卡號,應用程式應顯示有意義的錯誤消息。
執行測試案例
通過應用程式運行測試用例,並將實際結果與預期結果進行比較。如果實際輸出和預期輸出不同,則表示該功能未通過測試,應記錄缺陷。
審議、跟蹤和解決缺陷
一旦發現缺陷,就應該將其記錄在正式的跟蹤系統上,整個項目團隊都可以訪問該系統。在將缺陷標記為已關閉之前,應對應用程式進行必要的更改並再次執行測試用例以確認解決方案。
功能測試自動化工具能夠與被測應用程式的使用者介面進行交互。他們可以識別螢幕上的物件,例如清單框、文本框和按鈕,並且可以進行選擇、輸入數據並按下它們。
許多功能測試自動化工具都包括一個記錄器,當使用者與螢幕上的應用程式及其物件交互時,它會“監視”使用者,記錄他們輸入系統的數據,以及使用者執行的操作,例如按下按鈕或選擇功能表。然後,可以使用錄製過程中捕獲的對象、數據和操作來重播這些操作,以複製用戶的活動。測試工具會記錄這些操作的結果,並與自動化工程師定義的預期結果進行比較,以確定測試是通過還是失敗。
功能測試自動化工程師可以使用工具識別的物件逐步構建測試,也可以從記錄開始,自定義步驟並參數化數據以將其泛化,並使測試能夠在不同的環境中運行,包括各種瀏覽器和行動裝置。
現今領先的測試自動化工具封裝了採用機器學習、電腦視覺、神經網路和自然語言處理等先進技術的Intelligence (AI)功能。這有助於以與人類相同的方式識別螢幕上的對象,自然地與對象互動和操作對象,並允許使用簡單的英語編寫測試。
基於 AI 的功能測試自動化已被證明可以減少測試創建時間、提高測試覆蓋率、提高測試資產的彈性並減少測試維護工作。
儘早創建測試用例
在開始創建測試用例之前,不要等待應用程式或模組編碼完成。在專案的早期階段,使用者需求將是最新的。您可以隨時根據需要修改測試用例。
自動化
功能測試可能是一個艱巨、重複且耗時的過程。自動化程度越高,確保所需功能或識別和糾正缺陷的速度就越快,在應用交付過程中節省的測試時間和成本就越多。自動化所有測試用例可能是不可能的,甚至是可取的,但只是將最重要的測試用例從手動名冊中移除可以極大地提高您的測試投資回報率。
瞭解使用者的思維過程
功能測試人員必須對最終使用者的思維過程有深刻的理解。每個應用程式通常有不同類型的使用者(買方、賣方、管理員、數據錄入員、主管等)。對於每個測試計劃,必須考慮不同類型的使用者及其應用程式的典型導航。
優先
測試人員的時間和資源是有限的。並非每個功能都可以測試。某些應用程式功能是高優先順序的,因此必須優先於低優先順序功能進行測試。
雖然Functional Testing 對許多組織來說可能是一個挑戰,適當自動化的功能測試 QA 組織的好處遠遠超過這些挑戰,而利用經過驗證的功能測試工具的力量是解決這個問題的最佳方法。了解OpenText™功能測試自動化如何協助您從功能測試中獲得最佳價值。
借助 AI 的力量加速測試自動化
讓您的開發人員參與整合的自動化左移測試
隨時隨地開發、調試、監控和優化應用程式
透過真實的 API 和模擬加速軟體測試
借助 AI 驅動的 DevOps 自動化、測試和質量,更快地交付更好的軟體