1. 程式人生 > >白盒測試和黑盒測試詳解

白盒測試和黑盒測試詳解

白盒測試也稱結構測試或邏輯驅動測試,它是按照程式內部的結構測試程式,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程式中的每條通路是否都能按預定要求正確工作。

這一方法是把測試物件看作一個開啟的盒子,測試人員依據程式內部邏輯結構相關資訊,設計或選擇測試用例,對程式所有邏輯路徑進行測試,通過在不同點檢查程式的狀態,確定實際的狀態是否與預期的狀態一致。

採用什麼方法對軟體進行測試呢?常用的軟體測試方法有兩大類:靜態測試方法和動態測試方法。其中軟體的靜態測試不要求在計算機上實際執行所測程式,主要以一些人工的模擬技術對軟體進行分析和測試;而軟體的動態測試是通過輸入一組預先按照一定的測試準則構造的例項資料來動態執行程式,而達到發現程式錯誤的過程。

白盒測試的測試方法有程式碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、Z路徑覆蓋、程式變異。

白盒測試法的覆蓋標準有邏輯覆蓋、迴圈覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。

六種覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋發現錯誤的能力呈由弱至強的變化。語句覆蓋每條語句至少執行一次。判定覆蓋每個判定的每個分支至少執行一次。條件覆蓋每個判定的每個條件應取到各種可能的值。判定/條件覆蓋同時滿足判定覆蓋條件覆蓋。條件組合覆蓋每個判定中各條件的每一種組合至少出現一次。路徑覆蓋使程式中每一條可能的路徑至少執行一次。

"白盒"法全面瞭解程式內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程式的內部結構,從檢查程式的邏輯著手,得出測試資料。貫穿程式的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程式違反了設計規範,即程式本身是個錯誤的程式。第二,窮舉路徑測試不可能查出程式中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與資料相關的錯誤。

如何挑選白盒測試工具

白盒測試目前主要用在具有高可靠性要求的軟體領域,例如:軍工軟體、航天航空軟體、工業控制軟體等等。白盒測試工具在選購時應當主要是對開發語言的支援、程式碼覆蓋的深度、嵌入式軟體的測試、測試的視覺化等。

對開發語言的支援:白盒測試工具是對原始碼進行的測試,測試的主要內容包括詞法分析與語法分析、靜態錯誤分析、動態檢測等。但是對於不同的開發語言,測試工具實現的方式和內容差別是較大的。目前測試工具主要支援的開發語言包括:標準C、C++、Visual C++、Java、Visual J++等。

程式碼的覆蓋深度:從覆蓋源程式語句的詳盡程度分析,邏輯覆蓋標準包括以下不同的覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正判定條件覆蓋。

·語句覆蓋 為了暴露程式中的錯誤,程式中的每條語句至少應該執行一次。因此語句覆蓋(Statement Coverage)的含義是:選擇足夠多的測試資料,使被測程式中每條語句至少執行一次。語句覆蓋是很弱的邏輯覆蓋。

·判定覆蓋 比語句覆蓋稍強的覆蓋標準是判定覆蓋(Decision Coverage)。判定覆蓋的含義是:設計足夠的測試用例,使得程式中的每個判定至少都獲得一次“真值”或“假值”,或者說使得程式中的每一個取“真”分支和取“假”分支至少經歷一次,因此判定覆蓋又稱為分支覆蓋。

·條件覆蓋 在設計程式中,一個判定語句是由多個條件組合而成的複合判定。為了更徹底地實現邏輯覆蓋,可以採用條件覆蓋(Condition Coverage)的標準。條件覆蓋的含義是:構造一組測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。

·多條件覆蓋 多條件覆蓋也稱條件組合覆蓋,它的含義是:設計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。

·修正條件判定覆蓋 修正條件判定覆蓋是由歐美的航空/航天製造廠商和使用單位聯合制定的“航空運輸和裝備系統軟體認證標準”,目前在國外的國防、航空航天領域應用廣泛。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結果。它要求滿足兩個條件:首先,每一個程式模組的入口和出口點都要考慮至少要被呼叫一次,每個程式的判定到所有可能的結果值要至少轉換一次;其次,程式的判定被分解為通過邏輯操作符(and、or)連線的布林條件,每個條件對於判定的結果值是獨立的。

不同的測試工具對於程式碼的覆蓋能力也是不同的,通常能夠支援修正條件判定覆蓋的測試工具價格是極其昂貴的。

嵌入式軟體的測試:對於嵌入式軟體的測試,我們還需要一方面進一步考慮測試工具對於嵌入式作業系統的支援能力,例如DOS、Vxworks、Neculeus、Linux和Windows CE等;另一方面還需要考慮測試工具對於硬體平臺的支援能力,包括是否支援所有64/32/16位CPU 和 MCU,是否可以支援 PCI/VME/CPCI 匯流排。

測試的視覺化:白盒測試是工作量巨大並且枯燥的工作,視覺化的設計對於測試來說是十分重要的。在選購白盒測試工具時,應當考慮該款測試工具的視覺化是否良好,例如:測試過程中是否可以顯示覆蓋率的函式分佈圖和上升趨勢圖,是否使用不同的顏色區分已執行和未執行的程式碼段顯示分配記憶體情況實時圖表等,這些對於測試效率和測試質量的提高是具有很大的作用的。

白盒測試之基本路徑測試法

白盒測試的測試方法有程式碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、Z路徑覆蓋、程式變異。

其中運用最為廣泛的是基本路徑測試法。

基本路徑測試法是在程式控制流圖的基礎上,通過分析控制構造的環路複雜性,匯出基本可執行路徑集合,從而設計測試用例的方法。

設計出的測試用例要保證在測試中程式的每個可執行語句至少執行一次。

在程式控制流圖的基礎上,通過分析控制構造的環路複雜性,匯出基本可執行路徑集合,從而設計測試用例。包括以下4個步驟和一個工具方法:

1. 程式的控制流圖:描述程式控制流的一種圖示方法。

2. 程式圈複雜度:McCabe複雜性度量。從程式的環路複雜性可匯出程式基本路徑集合中的獨立路徑條數,這是確定程式中每個可執行語句至少執行一次所必須的測試用例數目的上界。

3. 匯出測試用例:根據圈複雜度和程式結構設計用例資料輸入和預期結果。

4. 準備測試用例:確保基本路徑集中的每一條路徑的執行。

工具方法:

圖形矩陣:是在基本路徑測試中起輔助作用的軟體工具,利用它可以實現自動地確定一個基本路徑集。

程式的控制流圖:描述程式控制流的一種圖示方法。

圓圈稱為控制流圖的一個結點,表示一個或多個無分支的語句或源程式語句

流圖只有二種圖形符號:

圖中的每一個圓稱為流圖的結點,代表一條或多條語句。

流圖中的箭頭稱為邊或連線,代表控制流

任何過程設計都要被翻譯成控制流圖。

如何根據程式流程圖畫出控制流程圖?

在將程式流程圖簡化成控制流圖時,應注意:

在選擇或多分支結構中,分支的匯聚處應有一個匯聚結點。

邊和結點圈定的區域叫做區域,當對區域計數時,圖形外的區域也應記為一個區域。

基本路徑測試法的步驟:

第一步:畫出控制流圖

流程圖用來描述程式控制結構。可將流程圖對映到一個相應的流圖(假設流程圖的菱形決定框中不包含複合條件)。在流圖中,每一個圓,稱為流圖的結點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被對映為一個結點,流圖中的箭頭,稱為邊或連線,代表控制流,類似於流程圖中的箭頭。一條邊必須終止於一個結點,即使該結點並不代表任何語句(例如:if-else-then結構)。由邊和結點限定的範圍稱為區域。計算區域時應包括圖外部的範圍。

第二步:計算圈複雜度

圈複雜度是一種為程式邏輯複雜性提供定量測度的軟體度量,將該度量用於計算程式的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。

有以下三種方法計算圈複雜度:

流圖中區域的數量對應於環型的複雜性;

給定流圖G的圈複雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數量,N是流圖中結點的數量;

給定流圖G的圈複雜度V(G),定義為V(G)=P+1,P是流圖G中判定結點的數量。

第三步:匯出測試用例 根據上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程式通路。V(G)值正好等於該程式的獨立路徑的條數。)

路徑1:4-14

路徑2:4-6-7-14

路徑3:4-6-8-10-13-4-14

路徑4:4-6-8-11-13-4-14

根據上面的獨立路徑,去設計輸入資料,使程式分別執行到上面四條路徑。

白盒測試三步法

1) 根據程式碼的功能,人工設計測試用例進行基本功能測試;

2) 統計白盒覆蓋率,為未覆蓋的白盒單位設計測試用例,實現完整的白盒覆蓋,比較理想的覆蓋率是實現100%語句、條件、分支、路徑覆蓋;

3) 自動生成大量的測試用例,捕捉"程式設計師未處理某些特殊輸入"形成的錯誤。

第1步的測試用例通常是現成的,因為詳細設計文件會規定程式的基本功能,沒有文件的,程式設計師在程式設計時也要想清楚程式的功能,這些基本功能就是基本測試用例;

第2步是在第1步的基礎上,檢查未覆蓋的白盒單位,由於未覆蓋的邏輯單位通常對應未測試的等價類,因此第2步可以找出第1步所遺漏的測試用例;

第3步用自動動態測試彌補第2步的固有缺陷。

"三步法"儘量避免重複工作,白盒方法和黑盒方法相結合,人工方法和自動方法相補充,如果第2步的覆蓋率比較理想,那麼基本上可以保證找出所有等價類。在開發過程允許的限度內,"三步法"已接近極限,當得起"徹底測試"四個字。

黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試地,把程式看作一個不能開啟的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入資料而產生正確的輸出資訊。黑盒測試著眼於程式外部結構,不考慮內部邏輯結構,主要針對軟體介面和軟體功能進行測試。

黑盒測試是以使用者的角度,從輸入資料與輸出資料的對應關係出發進行測試的。很明顯,如果外部特性本身有問題或規格說明的規定有誤,用墨盒測試方法是發現不了的。

黑盒測試法注重於測試軟體的功能需求,主要試圖發現下列幾類錯誤。

功能不正確或遺漏;

介面錯誤;

資料庫訪問錯誤;

效能錯誤;

初始化和終止錯誤等。

從理論上講,黑盒測試只有採用窮舉輸入測試,把所有可能的輸入都作為測試情況考慮,才能查出程式中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但可能的輸入進行測試。這樣看來,完全測試是不可能的,所以我們要進行有針對性的測試,通過制定測試案例指導測試的實施,保證軟體測試有組織、按步驟,以及有計劃地進行。黑盒測試行為必須能夠加以量化,才能真正保證軟體質量,而測試用例就是將測試行為具體量化的方法之一。具體的黑盒測試用例設計方法包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、正交試驗設計法、功能圖法等。

等價類劃分的辦法是把程式的輸入域劃分成若干部分(子集),然後從每個部分中選取少數代表性資料作為測試用例。每一類的代表性資料在測試中的作用等價於這一類中的其他值。該方法是一種重要的,常用的黑盒測試用例設計方法。

1) 劃分等價類: 等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的,併合理地假定:測試某等價類的代表值就等於對這一類其它值的測試.因此,可以把全部輸入資料合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件,就可以用少量代表性的測試資料.取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.

有效等價類:是指對於程式的規格說明來說是合理的,有意義的輸入資料構成的集合.利用有效等價類可檢驗程式是否實現了規格說明中所規定的功能和效能.

無效等價類:與有效等價類的定義恰巧相反.

設計測試用例時,要同時考慮這兩種等價類.因為,軟體不僅要能接收合理的資料,也要能經受意外的考驗.這樣的測試才能確保軟體具有更高的可靠性.

2)劃分等價類的方法:下面給出六條確定等價類的原則.

①在輸入條件規定了取值範圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類.

②在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類.

③在輸入條件是一個布林量的情況下,可確定一個有效等價類和一個無效等價類.

④在規定了輸入資料的一組值(假定n個),並且程式要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類.

⑤在規定了輸入資料必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則).

⑥在確知已劃分的等價類中各元素在程式處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類.

3)設計測試用例:在確立了等價類後,可建立等價類表,列出所有劃分出的等價類:

輸入條件 有效等價類 無效等價類

... ... ...

... ... ...

然後從劃分出的等價類中按以下三個原則設計測試用例:

①為每一個等價類規定一個唯一的編號.

②設計一個新的測試用例,使其儘可能多地覆蓋尚未被覆蓋地有效等價類,重複這一步.直到所有的有效等價類都被覆蓋為止.

③設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重複這一步.直到所有的無效等價類都被覆蓋為止.

邊界值分析是通過選擇等價類邊界的測試用例。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。它是對等價類劃分方法的補充.

(1)邊界值分析方法的考慮:

長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤.

使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試資料,而不是選取等價類中的典型值或任意值作為測試資料.

(2)基於邊界值分析方法選擇測試用例的原則:

1)如果輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值作為測試輸入資料.

2)如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試資料.

3)根據規格說明的每個輸出條件,使用前面的原則1).

4)根據規格說明的每個輸出條件,應用前面的原則2).

5)如果程式的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素作為測試用例.

6)如果程式中使用了一個內部資料結構,則應當選擇這個內部資料結構的邊界上的值作為測試用例.

7)分析規格說明,找出其它可能的邊界條件.

錯誤推測法是基於經驗和直覺推測程式中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.

錯誤推測方法的基本思想: 列舉出程式中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模組中常見的錯誤. 以前產品測試中曾經發現的錯誤等, 這些就是經驗的總結. 還有, 輸入資料和輸出資料為0的情況. 輸入表格為空格或輸入表格只有一行. 這些都是容易發生錯誤的情況. 可選擇這些情況下的例子作為測試用例.

因果圖法:

前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯絡, 相互組合等. 考慮輸入條件之間的相互組合,可能會產生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多. 因此必須考慮採用一種適合於描述對於多種條件的組合,相應產生多個動作的形式來考慮設計測試用例. 這就需要利用因果圖(邏輯模型).

因果圖方法最終生成的就是判定表. 它適合於檢查程式輸入條件的各種組合情況.

利用因果圖生成測試用例的基本步驟:

(1) 分析軟體規格說明描述中, 那些是原因(即輸入條件或輸入條件的等價類),那些是結果(即輸出條件), 並給每個原因和結果賦予一個識別符號.

(2) 分析軟體規格說明描述中的語義.找出原因與結果之間, 原因與原因之間對應的關係. 根據這些關係,畫出因果圖.

(3) 由於語法或環境限制, 有些原因與原因之間,原因與結果之間的組合情況不不可能出現. 為表明這些特殊情況, 在因果圖上用一些記號表明約束或限制條件.

(4) 把因果圖轉換為判定表.

(5) 把判定表的每一列拿出來作為依據,設計測試用例.

從因果圖生成的測試用例(區域性,組合關係下的)包括了所有輸入資料的取TRUE與取FALSE的情況,構成的測試用例數目達到最少,且測試用例數目隨輸入資料數目的增加而線性地增加.

前面因果圖方法中已經用到了判定表.判定表(Decision Table)是分析和表達多邏輯條件下執行不同操作的情況下的工具.在程式設計發展的初期,判定表就已被當作編寫程式的輔助工具了.由於它可以把複雜的邏輯關係和多種條件組合的情況表達得既具體又明確.

判定表通常由四個部分組成.

條件樁(Condition Stub):列出了問題得所有條件.通常認為列出得條件的次序無關緊要.

動作樁(Action Stub):列出了問題規定可能採取的操作.這些操作的排列順序沒有約束.

條件項(Condition Entry):列出針對它左列條件的取值.在所有可能情況下的真假值.

動作項(Action Entry):列出在條件項的各種取值情況下應該採取的動作.

規則:任何一個條件組合的特定取值及其相應要執行的操作.在判定表中貫穿條件項和動作項的一列就是一條規則.顯然,判定表中列出多少組條件取值,也就有多少條規則,既條件項和動作項有多少列.

判定表的建立步驟:(根據軟體規格說明)

①確定規則的個數.假如有n個條件.每個條件有兩個取值(0,1),故有 種規則.

②列出所有的條件樁和動作樁.

③填入條件項.

④填入動作項.等到初始判定表.

⑤簡化.合併相似規則(相同動作).

B. Beizer 指出了適合使用判定表設計測試用例的條件:

①規格說明以判定表形式給出,或很容易轉換成判定表.

②條件的排列順序不會也不影響執行哪些操作.

③規則的排列順序不會也不影響執行哪些操作.

④每當某一規則的條件已經滿足,並確定要執行的操作後,不必檢驗別的規則.

⑤如果某一規則得到滿足要執行多個操作,這些操作的執行順序無關緊要.

正交試驗設計法,就是使用已經造好了的正交表格來安排試驗並進行資料分析的一種方法,目的是用最少的測試用例達到最高的測試覆蓋率。

黑盒測試的優點

1. 基本上不用人管著,如果程式停止運行了一般就是被測試程式crash了

2. 設計完測試例之後,下來的工作就是爽了,當然更苦悶的是確定crash原因

黑盒測試的缺點

1. 結果取決於測試例的設計,測試例的設計部分來勢來源於經驗,OUSPG的東西很值得借鑑

2. 沒有狀態轉換的概念,目前一些成功的例子基本上都是針對PDU來做的,還做不到針對被測試程式的狀態轉換來作

3. 就沒有狀態概念的測試來說,尋找和確定造成程式crash的測試例是個麻煩事情,必須把周圍可能的測試例單獨確認一遍。而就有狀態的測試來說,就更麻煩了,尤其不是一個單獨的testcase造成的問題。這些在堆的問題中表現的更為突出。

黑盒測試(功能測試)工具的選擇

那麼,如何高效地完成功能測試?選擇一款合適的功能測試工具並培訓一支高素質的工具使用隊伍無疑是至關重要的。儘管現階段存在少數不採用任何功能測試工具,從事功能測試外包專案的軟體服務企業。短期來看,這類企業盈利狀況尚可,但長久來看,它們極有可能被自動化程度較高的軟體服務企業取代。

目前,用於功能測試的工具軟體有很多,針對不同架構軟體的工具也不斷推陳出新。這裡重點介紹的是其中一個較為典型自動化測試工具,即Mercury公司的WinRunner。

WinRunner是一種用於檢驗應用程式能否如期執行的企業級軟體功能測試工具。通過自動捕獲、檢測和模擬使用者互動操作,WinRunner能識別出絕大多數軟體功能缺陷,從而確保那些跨越了多個功能點和資料庫的應用程式在釋出時儘量不出現功能性故障。

WinRunner的特點在於: 與傳統的手工測試相比,它能快速、批量地完成功能點測試; 能針對相同測試指令碼,執行相同的動作,從而消除人工測試所帶來的理解上的誤差; 此外,它還能重複執行相同動作,測試工作中最枯燥的部分可交由機器完成; 它支援程式風格的測試指令碼,一個高素質的測試工程師能借助它完成流程極為複雜的測試,通過使用萬用字元、巨集、條件語句、迴圈語句等,還能較好地完成測試指令碼的重用; 它針對於大多數程式語言和Windows技術,提供了較好的整合、支援環境,這對基於Windows平臺的應用程式實施功能測試而言帶來了極大的便利。

WinRunner的工作流程大致可以分為以下六個步驟:

1.識別應用程式的GUI

在WinRunner中,我們可以使用GUI Spy來識別各種GUI物件,識別後,WinRunner會將其儲存到GUI Map File中。它提供兩種GUI Map File模式: Global GUI Map File和GUI Map File per Test。其最大區別是後者對每個測試指令碼產生一個GUI檔案,它能自動建立、儲存、載入,推薦初學者選用這種模式。但是,這種模式不易於描述物件的改變,其效率比較低,因此對於一個有經驗的測試人員來說前者不失為一種更好的選擇,它只產生一個共享的GUI檔案,這使得測試指令碼更容易維護,且效率更高。

2.建立測試指令碼

在建立測試指令碼時,一般先進行錄製,然後在錄製形成的指令碼中手工加入需要的TSL(與C語言類似的測試指令碼語言)。錄製指令碼有兩種模式: Context Sensitive和Analog,選擇依據主要在於是否對滑鼠軌跡進行模擬,在需要回放時一般選用Analog。在錄製過程中這兩種模式可以通過F2鍵相互切換。

只要看看現代軟體的規模和功能點數就可以明白,功能測試早已跨越了單靠手工敲敲鍵盤、點點滑鼠就可以完成的階段。而效能測試則是控制系統性能的有效手段,在軟體的能力驗證、能力規劃、效能調優、缺陷修復等方面都發揮著重要作用。

3.對測試指令碼除錯(debug)

在WinRunner中有專門一個Debug Toolbar用於測試指令碼除錯。可以使用step、pause、breakpoint等來控制和跟蹤測試指令碼和檢視各種變數值。

4.在新版應用程式執行測試指令碼

當應用程式有新版本釋出時,我們會對應用程式的各種功能包括新增功能進行測試,這時當然不可能再來重新錄製和編寫所有的測試指令碼。我們可以使用已有的指令碼,批量執行這些測試指令碼測試舊的功能點是否正常工作。可以使用一個call命令來載入各測試指令碼。還可在call命令中加各種TSL指令碼來增加批量能力。

5.分析測試結果

分析測試結果在整個測試過程中最重要,通過分析可以發現應用程式的各種功能性缺陷。當執行完某個測試指令碼後,會產生一個測試報告,從這個測試報告中我們能發現應用程式的功能性缺陷,能看到實際結果和期望結果之間的差異,以及在測試過程中產生的各類對話方塊等。

6.回報缺陷(defect)

在分析完測試報告後,按照測試流程要回報應用程式的各種缺陷,然後將這些缺陷發給指定人,以便進行修改和維護。

常用的功能測試方法

功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到使用者要求的功能。