• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 詳解IBM Rational Functional Tester 的工作原理

    發表于:2011-06-19來源:領測軟件測試網采編作者:IBM點擊數: 標簽:
    Rational Functional Tester 可以操控被測控件、完成用戶指定的自動測試動作,但前提是它需要具備與被測應用程序(Application Under Test,AUT)進行通訊的能力。要做到這一點,Rational Functional Tester 首先必須建立自身與被測應用的溝通渠道,該過程對于

     

      Rational Functional Tester 測試的前提

      相信很多讀者在接觸 Rational Functional Tester 這類自動化測試工具后,都會有這樣的疑問:它為什么可以操縱 Java 程序或者瀏覽器呢?

      Rational Functional Tester 可以操控被測控件、完成用戶指定的自動測試動作,但前提是它需要具備與被測應用程序(Application Under Test,AUT)進行通訊的能力。要做到這一點,Rational Functional Tester 首先必須建立自身與被測應用的溝通渠道,該過程對于 Rational Functional Tester 而言,被稱為“啟用被測應用程序”。

      目前 Rational Functional Tester 可以支持如下領域的被測應用程序:基于 Java 平臺的程序、基于 .Net 平臺的程序、HTML 程序,以及基于 Siebel、SAP、Flex 等特定平臺的應用程序。Rational Functional Tester 提供了這樣的一個向導窗口來幫助用戶“啟用被測應用程序”,在這個簡潔的對話框的“啟用(Enable)”按鈕和“測試(Test)”按鈕的背后,還隱藏著更多的細節。

      圖 1. 啟用環境向導對話框

    圖 1. 啟用環境向導對話框

      在 Rational Functional Tester 的術語詞典里,這里的每一類應用程序都被稱為“域”(domain)。建立溝通渠道的操作,都是作用在某個特定的“域”上,你可以在 Rational Functional Tester 和“Java 域”之間建立溝通渠道,這就是在 Rational Functional Tester 中啟動 Java 被測應用程序的過程;依此類推,你也可以為 .Net 程序、 SAP 程序建立它們和 Rational Functional Tester 之間的特有的溝通渠道,使得 Rational Functional Tester 可以進而對 .Net 程序、 SAP 程序進行測試。在為每類程序(或進程)建好溝通渠道后,你還需要對渠道進行必要的測試,檢驗通訊是否能正常工作。Rational Functional Tester 正是通過這些溝通渠道來對被測程序(或進程)的控件發出指令、執行動作的。

      建立溝通渠道時,Rational Functional Tester 對于被測應用程序,會新建一個 DomainImplementation 對象實例,由它來抽象出一個接口,提供具體的域相關細節給 Rational Functional Tester。DomainImplementation 對象的使命有:

      獲取該域最高級別的對象

      注冊該域可用的代理對象

      為指定的控件創建代理對象

      下圖是啟用瀏覽器環境的測試結果,可以看見 Java,HTML 兩種 DomainImplementation 對象都被加載,來完成 HTML 被測應用的測試。(因為 HTML 應用程序在呈現時會涉及到 Java 內容)

      圖 2. 瀏覽器啟用的測試結果

    圖 2. 瀏覽器啟用的測試結果

      “域”、“頂級對象”、“測試對象”、“代理對象”,又有這么多新名詞出現,它們和 Rational Functional Tester 的運作有著怎樣的關系呢?下面我們會逐一介紹它們的作用和典型動作。

      Rational Functional Tester 進程級交互

      Rational Functional Tester 進程模型

      我們知道,運行中的程序和軟件是以進程的形式存在的。首先我們來看一下 Rational Functional Tester 和被測程序間的進程相關細節。在 Rational Functional Tester 的設計規劃里,各個相關進程按照所處位置和相對關系分成兩類:客戶端進程和服務器端進程。被測應用程序進程被稱為“Rational Functional Tester 服務器端進程”,而錄制,回放,對象查看器,和集成開發環境(IDE,Eclipse 或 Visual Studio .Net)等進程則被稱為“Rational Functional Tester 客戶端進程”。不論用戶使用的是 Java 編程環境還是 .Net 編程環境來進行腳本開發,進程間的關系皆是如此,如下圖所示。更直觀地說,與 Rational Functional Tester 直接相關的進程是客戶端,與被測程序直接相關的進程是服務器端。

      圖 3. 客戶端進程和被測應用程序(服務器端進程)

    圖 3. 客戶端進程和被測應用程序(服務器端進程)

      Rational Functional Tester 與被測應用程序的進程級交互

     

      Rational Functional Tester 客戶端進程與被測應用程序進程進行交互,并從中獲取必要的相關信息來完成錄制、回放、對象查看之類的動作。它們借助進程間通訊(IPC)層的共享內存進行通訊。

      圖 4. 進程和測試上下文

    圖 4. 進程和測試上下文

      Rational Functional Tester 給每個相關進程(包括客戶端及服務器進程)創建測試上下文(TestContext)對象,并在共享內存里進行注冊,該測試上下文對象是測試過程中用來操作被測程序的句柄(reference)。已注冊的測試上下文對象將承擔關聯進程的所有通信。通常情況下,測試上下文對象會關聯到一個操作系統級的被測進程,或測試客戶端。當然,有時會有多個測試上下文對象關聯到同一個進程。

      兩個被測應用程序的測試上下文(TestContext)對象是無法直接通訊的,它們需要一個中介:Rational Functional Tester 客戶端進程的測試上下文對象,來傳遞通訊信息。圖 5 的上半部是 Rational Functional Tester 客戶端進程,下半部是各類服務器端進程,即被測程序,它們之間的交流和通訊只能在共享內存區域完成的。

      圖 5. 進程和測試上下文內部結構

    圖 5. 進程和測試上下文內部結構

      注:偵窺內存,英文術語為Spy Memory,即共享內存,其中的各類測試上下文承擔被測程序及Rational Functional Tester間通訊功能。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>