功能测试是一种测试,旨在确定每个应用程式功能是否按照软体要求工作。将每个功能与相应的要求进行比较,以确定其输出是否符合最终使用者的期望。测试是通过提供样本输入、捕获结果输出并验证实际输出是否与预期输出相同来完成的。
一些功能测试范例包括:
與非功能测试不同,功能测试不關心調查應用程式底層原始程式碼的品質、安全性或性能。它不衡量速度、可擴展性和可靠性。
相反,功能测试側重於處理結果,而不是處理機制,並確定應用程式是否滿足基本的最低使用者期望。
從這個意義上說,功能测试定義幾乎是黑盒測試的同義詞,而另一方面,白盒測試更常見的是非功能测试的特徵。?
功能测试計劃通常遵循以下順序:
确定测试目标
功能测试目標是軟體根據專案要求預期具有的功能。測試目標包括驗證應用程式是否按預期工作,以及它是否正常處理錯誤和意外情況。
创建测试方案
為给定功能制定所有可能(或至少所有最重要的)测试方案的清单。测试方案描述了该功能的不同使用方式。例如,对於支付模组,测试场景可能包括多种货币、处理无效或过期的卡号,以及生成交易成功完成的通知。
创建测试数据
根據您確定的測試場景創建類比正常使用條件的測試數據。您可以手動輸入測試數據(例如,從 MS-Excel 電子表格或列印輸出),也可以通過腳本或測試工具自動輸入數據,該腳本或測試工具從資料庫、平面檔、XML 或電子表格中讀取和輸入數據。每組輸入數據還應具有關聯的數據,這些數據描述輸入數據應生成的預期結果。
设计测试案例
根据测试输入的不同预期结果创建测试用例。例如,如果输入无效的信用卡号,应用程式应显示有意义的错误消息。
执行测试案例
通过应用程式运行测试用例,并将实际结果与预期结果进行比较。如果实际输出和预期输出不同,则表示该功能未通过测试,应记录缺陷。
审议、跟踪和解决缺陷
一旦發現缺陷,就應該將其記錄在正式的跟蹤系統上,整個項目團隊都可以訪問該系統。在將缺陷標記為已關閉之前,應對應用程式進行必要的更改並再次執行測試用例以確認解决方案。
功能测试自动化工具能夠與被測應用程式的使用者介面進行交互。他們可以識別螢幕上的物件,例如清單框、文本框和按鈕,並且可以進行選擇、輸入數據並按下它們。
許多功能测试自动化工具都包括一個記錄器,當使用者與螢幕上的應用程式及其物件交互時,它會“監視”使用者,記錄他們輸入系統的數據,以及使用者執行的操作,例如按下按鈕或選擇功能表。然後,可以使用錄製過程中捕獲的對象、數據和操作來重播這些操作,以複製用戶的活動。測試工具會記錄這些操作的結果,並與自动化工程師定義的預期結果進行比較,以確定測試是通過還是失敗。
功能测试自动化工程師可以使用工具識別的物件逐步構建測試,也可以從記錄開始,自定義步驟並參數化數據以將其泛化,並使測試能夠在不同的環境中運行,包括各種瀏覽器和行动装置。
如今,領先的測試自动化工具封裝了人工智慧 (础滨) 功能,這些功能採用了機器學習、計算機視覺、神經網路和自然語言處理等先進技术。這有助於像人類一樣識別螢幕上的物體,自然地與物體交互和操作,並使測試能夠使用簡單的英語編寫。
基於 AI 的功能测试自动化已被證明可以減少測試創建時間、提高測試覆蓋率、提高測試資產的彈性並減少測試維護工作。
儘早创建测试用例
在开始创建测试用例之前,不要等待应用程式或模组编码完成。在专案的早期阶段,使用者需求将是最新的。您可以随时根据需要修改测试用例。
自动化
功能测试可能是一個艱巨、重複且耗時的過程。自动化程度越高,確保所需功能或識別和糾正缺陷的速度就越快,在应用交付过程中節省的測試時間和成本就越多。自动化所有測試用例可能是不可能的,甚至是可取的,但只是將最重要的測試用例從手動名冊中移除可以極大地提高您的測試投資回報率。
瞭解使用者的思维过程
功能测试人員必須對最終使用者的思維過程有深刻的理解。每個應用程式通常有不同類型的使用者(買方、賣方、管理員、數據錄入員、主管等)。對於每個測試計劃,必須考慮不同類型的使用者及其應用程式的典型導航。
优先
測試人員的時間和资源是有限的。並非每個功能都可以測試。某些應用程式功能是高优先順序的,因此必須优先於低优先順序功能進行測試。
雖然Functional Testing 對許多組織來說可能是一個挑戰,適當自动化的功能测试 QA 組織的好處遠遠超過這些挑戰,而利用經過驗證的功能测试工具的力量是解決這個問題的最佳方法。了解好色先生TV? Functional Test自动化如何協助您從功能测试中獲得最佳價值。
人工智慧驅動的測試自动化
左移以加快交付速度
随时随地测试移动应用。提高生产力
通過測試、品質和 AI 驅動的自动化加速應用交付