成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

介紹功能測試中故障模型的建立

開發 測試
故障模型是軟件測試的基礎,也是一個判斷測試方法是否成熟的重要標志。本文介紹的是功能測試中的故障模型,希望對你有幫助,一起來看。

故障模型是將測試人員的經驗和直覺盡量歸納和固化,使得可以重復使用。測試人員通過理解軟件在做什么,來猜測可能出錯的地方,并應用故障模型有目的地使它暴露缺陷。下面介紹功能測試中故障模型的建立。

1. 概述

故障模型是軟件測試的基礎,也是一個判斷測試方法是否成熟的重要標志。在測試的過程中,要確保每一個目標狀態都被測試,那么測試必須是系統的;為了最終定位軟件缺陷,所以測試必須是集中的;測試需要使用大量的測試用例和重復性測試,因此測試必須是自動的。若要滿足上述三個測試條件,我們必須建立故障模型。

故障模型是將測試人員的經驗和直覺盡量歸納和固化,使得可以重復使用。測試人員通過理解軟件在做什么,來猜測可能出錯的地方,并應用故障模型有目的地使它暴露缺陷。它具有一定的形式和足夠的信息對錯誤進行預測,因此對測試人員來說,構造一個準確的故障模型,是選擇測試策略、設計測試用例和測試執行的基礎。在建立故障模型時,希望故障模型在框架上是通用的,但是建立具體的故障模型時一定要針對具體的軟件類型、應用環境、甚至開發工具才有意義。一個成熟的故障模型必須具備下列條件:

1)該模型是符合實際的:大多數系統中存在的故障都可以用該模型來表示;

2)模型下的故障個數是可容忍的:模型下的故障個數一般和系統的規模是成線性關系;

3)模型下的故障是可以測試的:存在一個算法,利用該算法可以檢測模型中的每一個故障。

本文將從軟件的功能和技術特點出發,如軟件的輸入、輸出、數據以及處理等,分析在軟件功能測試過程中,我們通常應建立的故障模型及按照故障模型所提供的缺陷類型尋找盡量多的缺陷。

2. 輸入型故障模型

主要是對用戶的各種輸入進行建模,因為用戶的輸入是無法預期的,可能的組合狀態也是千變萬化。軟件功能除了能讓正確的輸入得到正確的輸出之外,還必須對非法和不合邏輯的輸入進行處理,防止因數據異常造成不可挽回的錯誤。典型的建模方法有:

1)使用非法數據:從輸入數據的類型、長度、邊界值等方面考慮,測試軟件是否允許不正確的輸入進入系統并進行處理,是否有錯誤處理代碼,代碼是否正確。

2)使用默認值輸入:檢測軟件中所使用的變量是否初始化,是否將非法數據默認為合法邊界內的某個合理值。

3)使用特殊字:檢測軟件是否正確處理了特殊字符和數據類型。

4)使用使緩沖區溢出的合法輸入:輸入超過允許的最大長度的數據,檢測軟件是否檢查字符串/緩沖區的邊界。

5)使用可能產生錯誤的合法輸入組合:測試多個輸入值的組合,確認這些值的組合是否會互相影響而引起軟件失效。

6)重復輸入相同的合法輸入序列:檢測軟件是否考慮了循環處理的邊界。

3. 輸出型故障模型

軟件的輸出通常是最直觀也是用戶最關注的,輸出型故障模型就是從軟件輸出角度出發,分析造成故障的可能原因。例如通過一個正確的輸入在不同情況下產生不同輸出的情況可以對輸入和輸出的關系進行進一步驗證;可采用列舉等方法,強制軟件產生不符合業務背景知識的無效的輸出,從而進行處理,規避不必要的錯誤;強制修改輸出的屬性、查看輸出結果,測試初始化代碼和修改代碼是否同步;檢查用戶界面刷新情況,在不同的操作下測試界面刷新時間是否正確、界面刷新區域計算是否正確。

在大多數的軟件中,功能輸出的正確與否直接決定了軟件實現的好壞,輸出型故障模型所覆蓋的故障也占有相當大的比例。因此,我們在測試過程中應建立這種故障模型,從故障結果進行分析,判斷造成故障的影響因素。

4. 計算型故障模型

對于部分軟件程序,常需要進行大量的計算,因此該模型應該盡可能包括關于計算方面的各種錯誤。包括變量的定義與使用方面的錯誤;數據的冗余;數組變量的越界錯誤;數據類型不匹配的錯誤;還有數據操作方面錯誤,包括函數調用參數傳遞錯誤、賦值語句錯誤等。

在建立計算型故障模型的時候,要定義數據并且對這些數據執行各種故障操作,盡可能使模型比較完善。體現在功能層面上,可以使用非法的操作數和操作符組合來驗證計算要求的合法性、強制使計算結果溢出考慮數據結構存儲的正確性、同時對數據進行操作檢測數據共享性等方法來建立故障模型。

5. 流程型故障模型

這是一種程序控制流的故障模型,是對在程序中同樣占很大比例的循環結構和分支結構建立的模型。循環故障主要包括永不循環故障和死循環故障,這主要是由循環條件錯誤引起的。循環條件的錯誤中包括變量錯誤和運算符錯誤,在未執行循環之前,循環變量的初值設置出錯以致永不循環;進入循環以后,循環變量的值不作修改以致發生死循環。

而分支故障則包括判定條件故障和謂詞結構故障,由于判定條件的出錯或者變量初值設置錯誤而導致不執行分支結構;對于進入了分支結構的執行,可能因為謂詞的錯誤而提前退出分支結構。

由此可知,流程型故障模型很可能是由一串連續的故障所組成的。因此在軟件功能測試中,我們可以通過判斷軟件流程是否正確執行、功能分支是否覆蓋全面、循環操作是否正常結束等方法來檢測軟件流程的正確性。

6. 資源型故障模型

資源型故障模型是在文件系統超載、系統介質忙或不可用、介質損壞等情況下,運行被測程序進行測試。此類故障模型的建立通常需要輔助測試工具進行環境的模擬。當磁盤負荷到達一定程度或可用物理資源十分有限時,系統進程十分容易進入“死鎖”狀態或出現不可恢復的錯誤。產生死鎖的根本原因在于系統提供的資源個數少于并發進程所要求的該類資源數。顯然,由于資源有限,不可能為所有要求資源的進程無限制地提供資源。

但是,可以采用適當的方法,以達到消除或規避“死鎖”的目的。因此判斷軟件在何種操作下會導致“死鎖”以及軟件對介質損壞的糾錯能力也就變得極其重要。所以我們應該建立這種故障模型,并給出相應的測試用例。

7. 結論

故障模型的建立對于故障定位、故障分析以及生成相應的測試用例是非常有用的。本文在前人研究的基礎上,僅僅從軟件功能層面出發,提出了五種常用的故障模型。而在實際的軟件測試工程中,由于軟件故障原因的多樣性,還有很多故障模型有待于進一步細化和探討。

【編輯推薦】

  1. 如何做好和完善功能測試總結
  2. 中間件的核心功能測試內容分析
  3. 軟件自動化測試在功能測試中的應用
  4. Hadoop性能優化功能測試詳解
責任編輯:于鐵 來源: 李書杰
相關推薦

2011-07-08 11:19:51

jspaction

2009-09-02 17:44:41

C#字符串處理

2011-09-07 14:02:57

MPLS故障MPLS

2023-02-20 14:44:22

DDD領域模型

2010-06-09 19:34:58

UML圖

2010-11-02 13:45:52

TFS2010VS2010微軟

2014-04-09 11:13:37

測試驅動開發

2011-05-11 14:28:31

IS-IS路由IP-Trunk

2010-03-16 13:04:17

Python環境

2010-03-22 15:58:08

Python模塊功能

2019-10-25 10:34:49

變異測試單元測試

2011-04-18 12:52:37

自動化測試功能測試軟件測試

2010-03-16 17:41:14

Python字符串

2010-03-09 10:25:42

Linux wap網關

2009-10-13 14:58:00

CCIE故障檢測檢查表

2009-03-24 08:33:14

AndroidGoogle移動os

2010-06-29 14:48:44

SNMP Trap

2010-09-16 16:08:46

2025-03-10 08:30:00

開源大模型

2023-09-13 14:45:14

性能測試開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一a一片一级一片啪啪 | 国产区在线观看 | 黄色免费三级 | 99精品电影 | 99久久久久国产精品免费 | 亚洲第一网站 | 美女国产一区 | 日韩一区二区三区在线观看 | 日韩一级电影免费观看 | xxxxx黄色片 欧美一区免费 | 91精品国产综合久久久动漫日韩 | 日本不卡一区二区三区 | 国产精品99一区二区 | 久草视频在线播放 | 999久久久久久久久6666 | 欧美日本一区 | 一级做a爰片性色毛片视频停止 | 精品久久久久久亚洲精品 | 一二三区在线 | 亚洲天堂中文字幕 | 亚洲 中文 欧美 日韩 在线观看 | www久久久 | 在线观看免费观看在线91 | 精品久久久久久亚洲精品 | 91免费视频观看 | 国内精品免费久久久久软件老师 | 日本天天操 | 91欧美激情一区二区三区成人 | 高清国产一区二区 | 日本五月婷婷 | 日韩精品一区二区三区免费观看 | 九九久久国产 | 蜜桃视频在线观看免费视频网站www | 天天操网 | 九九久久精品视频 | 五月激情综合 | 亚洲天堂男人的天堂 | av黄色在线 | 人人爽人人爽人人片av | 日韩欧美国产一区二区 | 久久一区二区三区电影 |