基於關鍵字的測試框架及示例


關鍵字驅動測試

關鍵字驅動測試是一種功能測試,也稱為表驅動測試或基於動作詞的測試。在這種測試中,使用表格格式(最可能是電子表格)來定義要執行的功能的關鍵字。

基本上,這是一種指令碼技術,它使用資料檔案包含與被測軟體相關的關鍵字。這些關鍵字代表執行特定步驟所需的一組操作。它包括高階和低階關鍵字以及關鍵字引數,這些引數組合起來定義測試用例的操作。

測試首先標識一組關鍵字,然後將操作與關鍵字關聯起來。每個測試操作(例如開啟和關閉瀏覽器、滑鼠點選等)都由一個關鍵字定義,例如 openbrowser、click、Typtext 等。

關鍵字驅動測試最適合經驗不足或非技術測試人員。使用這種方法,它允許以更概念的方式編寫測試用例。此外,它還使自動化能夠在 SDLC(軟體開發生命週期)的早期階段啟動,遠早於交付可靠的構建進行測試。基於關鍵字的測試具有高度的可重用性。

但是,最初開發關鍵字和相關功能可能需要更長的時間。此外,它可能會對技術能力強的測試人員造成潛在的限制。

例如,考慮一個網站。關鍵字“登入”用於自動化框架來測試與其關聯的登入功能。同樣,關鍵字“登出”用於自動化框架來測試與其相關的登出功能。


關鍵字示例:

關鍵字描述
登入登入到“XYZ”網站
郵件傳送郵件
登出登出“XYZ”網站
通知查詢未讀通知

關鍵字驅動框架

關鍵字驅動框架是一個用於自動化測試的框架,它將測試用例分成四個部分,以將編碼與測試用例分離,並有效地測試這些步驟。

它將測試用例分成測試步驟、測試步驟的物件、測試步驟的操作以及測試物件的資料,以便更好地理解。

元件

  • **函式庫** - 它是一個 JAVA 類,其中定義了所有關鍵字。也就是說,所有要在軟體上執行的操作都定義為庫類檔案中的使用者定義方法。

  • **Excel 表格** - 使用者定義的方法及其功能細節記錄在 Excel 表格中,以便使用者瞭解庫包含哪些關鍵字。這些表格就像庫檔案的摘要,對建立測試用例模板很有用,使用者可以在表格中檢視關鍵字列表併為測試用例中的操作選擇相應的關鍵字。

  • **測試用例模板** - 根據專案生成測試用例模板。但是,建立模板沒有特定的規則或標準。它們是根據專案需要框架表現的程度建立的。這種表現可能僅僅是關鍵字,甚至測試資料和UI元素也包含在內。

  • **物件庫** - 可以找到 UI 定位器,並且可以在模板中確認其值或儲存在不同的物件庫中。

  • **驅動程式/測試指令碼** - 這是讀取 Excel 表格並執行相應操作的主要指令碼。它是根據模板的建立方式設計的。

建立關鍵字驅動框架的過程

  • **Excel 表格** - 識別關鍵字並將其記錄在 Excel 表格中。

  • **函式庫** - 它包含業務流程的函式。執行測試用例時,它從表格中讀取關鍵字並相應地呼叫函式。

  • **資料表** - 用於儲存要在應用程式中使用的測試資料。

  • **物件庫** - 基於關鍵字驅動框架,選擇一個物件庫。

  • **測試指令碼** - 根據框架的設計,為每個手動測試用例建立一個測試指令碼,或一個驅動程式指令碼。

關鍵字驅動測試的需求

  • 標準庫管理的常用元件。

  • 有助於以更概念的方式編寫測試。

  • 高可重用性。

  • 指令碼細節對使用者隱藏。

  • 不需要指令碼語言。

  • 簡潔、可維護且靈活的測試。

如何進行關鍵字驅動測試

關鍵字驅動測試可以手動和自動執行。但是,通常它使用自動化測試。

自動化基於關鍵字的測試的目的

  • 降低維護成本。

  • 避免冗餘規範。

  • 函式指令碼的重用。

  • 出色的可移植性和測試支援。

  • 以相同或更少的努力執行更多測試。

使用關鍵字驅動測試,在開發的早期階段,可以建立簡單的功能測試來逐段測試軟體。組合關鍵字驅動測試的一種簡單方法是記錄它。然後,可以根據要求自定義測試。每個關鍵字應至少與一個命令關聯,該命令可以執行與該關鍵字關聯的操作。執行所有測試用例後,測試庫(由測試自動化框架呼叫)將解釋關鍵字。

關鍵字驅動測試可以概括為以下步驟:

  • 識別低階和高階關鍵字。

  • 實現關鍵字。

  • 建立測試用例。

  • 建立驅動程式指令碼。

  • 執行自動化測試指令碼。

關鍵字驅動測試工具

  • **HP QTP** - 這是一款用於功能測試的自動化工具,它能夠執行自動化測試以檢測錯誤、缺陷或差距,與被測軟體的估計結果相反。它由 Mercury Interactive 開發。後來,HP 收購了它,目前 MicroFocus 擁有 QTP。QTP(Quick Test Professional)也稱為 UFT(Unified Functional Testing)。QTP/UFT 是一款基於圖示的工具,能夠自動化軟體的迴歸測試和功能測試。對於技術和非技術測試人員來說,這個工具都很容易使用。它提供錄製和回放功能,可用於桌面和基於 Web 的應用程式。QTP/UFT 還支援業務流程測試 (BPT)。該工具基本上基於指令碼語言 VB 指令碼。UFT 使用 VBscript 自動化應用程式,並支援大量的軟體開發環境,例如 SAP、Oracle 等。它幫助測試人員在沒有任何中斷的情況下執行自動化的功能測試。

  • **Selenium** - 這是一款開源工具,用於在不同瀏覽器和平臺上驗證 Web 應用程式。Selenium 測試指令碼可以使用各種程式語言建立,例如 PHP、Perl、Ruby、Java、C#、Python 等。通常,使用 Selenium 測試工具進行測試被稱為 Selenium。它是一套軟體,每個部分都滿足不同的 Selenium QA 測試需求。這些工具包括:Selenium IDE(整合開發環境)、Selenium RC(遠端控制)、WebDriver 和 Selenium Grid。Selenium RC 和 WebDriver 整合到一個框架中,形成 Selenium 2。Selenium 1 是 Selenium RC。

Selenium 與 QTP 的比較

SeleniumQTP
開源商業
可擴充套件有限的附加元件
支援不同的瀏覽器僅支援 Firefox、Internet Explorer 和 Chrome
支援不同的作業系統僅支援 Windows
支援移動裝置透過使用 HP Mobile Centre 支援移動應用程式測試自動化
即使瀏覽器最小化也可以執行測試需要軟體在桌面上可見
可以執行並行測試可以執行並行測試,但使用付費產品 - Quality Centre

QTP 相對於 Selenium 的優勢

  • QTP 可以測試 Web 和桌面應用程式,而 Selenium 只能測試 Web 應用程式。

  • QTP 包含內建的物件庫,而 Selenium 沒有。

  • QTP 自動化速度更快,因為它是一個功能齊全的 IDE。而 Selenium 自動化速度較慢,因為它只有用於開發的第三方 IDE。

  • QTP 可以訪問瀏覽器內的控制元件,而 Selenium 無法訪問被測軟體外部的元素。

  • 與 Selenium 不同,QTP 提供專業的客戶支援。

  • QTP 具有將測試資料匯出到外部格式的固有能力。

  • QTP 自動建立測試報告。

  • QTP 包含內建的引數化支援。

儘管 QTP 具有許多比 Selenium 更多的優勢,但後者在以下方面超越了前者:

  • 成本

  • 靈活性

  • 並行測試

關鍵字驅動測試的優勢

  • 它使功能測試人員即使在應用程式未準備好時也能規劃測試自動化。此外,一旦建立了框架,手動和技術測試人員都可以輕鬆建立用於自動化的測試指令碼。

  • 此測試維護並記錄在 Excel 表格中,並且沒有公開程式碼,因此測試指令碼易於閱讀和理解。關鍵字和操作與測試用例如此完美地相似,以至於編寫和維護變得更加容易。

  • 即使在交付軟體之前,測試人員也可以開始建立關鍵字驅動的測試用例,因為物件庫可以稍後輕鬆建立。使用文件或從其他需求收集的資訊,可以構建與相應手動測試過程相關的關鍵字資料表。

  • 藉助模組化,關鍵字驅動測試提供了並進一步提高了可重用性。由於只有一個驅動程式/測試指令碼,它強烈鼓勵程式碼重用。

  • 即使沒有任何程式設計知識,也可以生成測試用例。

  • 關鍵字驅動測試不依賴於任何特定的程式語言或工具。

  • 它支援所有自動化工具。

測試用例示例

  • TC_01 − 登入“XYZ”網站,確定今天執行的事務數量。

  • TC_02 − 登入“XYZ”網站,向其中一位客戶傳送電子郵件,然後登出。

  • TC_03 − 登入“XYZ”網站,查詢收到的通知(如有)。

結論

關鍵字驅動測試是一種指令碼技術,使用資料檔案儲存與被測軟體相關的關鍵字。通常,它由自動化測試執行。即使沒有任何程式設計知識,也可以建立測試用例,並且該測試支援所有自動化工具。

更新於:2021年9月22日

瀏覽量:1K+

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告