自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹功能測(cè)試中故障模型的建立

開發(fā) 測(cè)試
故障模型是軟件測(cè)試的基礎(chǔ),也是一個(gè)判斷測(cè)試方法是否成熟的重要標(biāo)志。本文介紹的是功能測(cè)試中的故障模型,希望對(duì)你有幫助,一起來看。

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

1. 概述

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

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

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

2)模型下的故障個(gè)數(shù)是可容忍的:模型下的故障個(gè)數(shù)一般和系統(tǒng)的規(guī)模是成線性關(guān)系;

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

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

2. 輸入型故障模型

主要是對(duì)用戶的各種輸入進(jìn)行建模,因?yàn)橛脩舻妮斎胧菬o法預(yù)期的,可能的組合狀態(tài)也是千變?nèi)f化。軟件功能除了能讓正確的輸入得到正確的輸出之外,還必須對(duì)非法和不合邏輯的輸入進(jìn)行處理,防止因數(shù)據(jù)異常造成不可挽回的錯(cuò)誤。典型的建模方法有:

1)使用非法數(shù)據(jù):從輸入數(shù)據(jù)的類型、長(zhǎng)度、邊界值等方面考慮,測(cè)試軟件是否允許不正確的輸入進(jìn)入系統(tǒng)并進(jìn)行處理,是否有錯(cuò)誤處理代碼,代碼是否正確。

2)使用默認(rèn)值輸入:檢測(cè)軟件中所使用的變量是否初始化,是否將非法數(shù)據(jù)默認(rèn)為合法邊界內(nèi)的某個(gè)合理值。

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

4)使用使緩沖區(qū)溢出的合法輸入:輸入超過允許的最大長(zhǎng)度的數(shù)據(jù),檢測(cè)軟件是否檢查字符串/緩沖區(qū)的邊界。

5)使用可能產(chǎn)生錯(cuò)誤的合法輸入組合:測(cè)試多個(gè)輸入值的組合,確認(rèn)這些值的組合是否會(huì)互相影響而引起軟件失效。

6)重復(fù)輸入相同的合法輸入序列:檢測(cè)軟件是否考慮了循環(huán)處理的邊界。

3. 輸出型故障模型

軟件的輸出通常是最直觀也是用戶最關(guān)注的,輸出型故障模型就是從軟件輸出角度出發(fā),分析造成故障的可能原因。例如通過一個(gè)正確的輸入在不同情況下產(chǎn)生不同輸出的情況可以對(duì)輸入和輸出的關(guān)系進(jìn)行進(jìn)一步驗(yàn)證;可采用列舉等方法,強(qiáng)制軟件產(chǎn)生不符合業(yè)務(wù)背景知識(shí)的無效的輸出,從而進(jìn)行處理,規(guī)避不必要的錯(cuò)誤;強(qiáng)制修改輸出的屬性、查看輸出結(jié)果,測(cè)試初始化代碼和修改代碼是否同步;檢查用戶界面刷新情況,在不同的操作下測(cè)試界面刷新時(shí)間是否正確、界面刷新區(qū)域計(jì)算是否正確。

在大多數(shù)的軟件中,功能輸出的正確與否直接決定了軟件實(shí)現(xiàn)的好壞,輸出型故障模型所覆蓋的故障也占有相當(dāng)大的比例。因此,我們?cè)跍y(cè)試過程中應(yīng)建立這種故障模型,從故障結(jié)果進(jìn)行分析,判斷造成故障的影響因素。

4. 計(jì)算型故障模型

對(duì)于部分軟件程序,常需要進(jìn)行大量的計(jì)算,因此該模型應(yīng)該盡可能包括關(guān)于計(jì)算方面的各種錯(cuò)誤。包括變量的定義與使用方面的錯(cuò)誤;數(shù)據(jù)的冗余;數(shù)組變量的越界錯(cuò)誤;數(shù)據(jù)類型不匹配的錯(cuò)誤;還有數(shù)據(jù)操作方面錯(cuò)誤,包括函數(shù)調(diào)用參數(shù)傳遞錯(cuò)誤、賦值語句錯(cuò)誤等。

在建立計(jì)算型故障模型的時(shí)候,要定義數(shù)據(jù)并且對(duì)這些數(shù)據(jù)執(zhí)行各種故障操作,盡可能使模型比較完善。體現(xiàn)在功能層面上,可以使用非法的操作數(shù)和操作符組合來驗(yàn)證計(jì)算要求的合法性、強(qiáng)制使計(jì)算結(jié)果溢出考慮數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的正確性、同時(shí)對(duì)數(shù)據(jù)進(jìn)行操作檢測(cè)數(shù)據(jù)共享性等方法來建立故障模型。

5. 流程型故障模型

這是一種程序控制流的故障模型,是對(duì)在程序中同樣占很大比例的循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)建立的模型。循環(huán)故障主要包括永不循環(huán)故障和死循環(huán)故障,這主要是由循環(huán)條件錯(cuò)誤引起的。循環(huán)條件的錯(cuò)誤中包括變量錯(cuò)誤和運(yùn)算符錯(cuò)誤,在未執(zhí)行循環(huán)之前,循環(huán)變量的初值設(shè)置出錯(cuò)以致永不循環(huán);進(jìn)入循環(huán)以后,循環(huán)變量的值不作修改以致發(fā)生死循環(huán)。

而分支故障則包括判定條件故障和謂詞結(jié)構(gòu)故障,由于判定條件的出錯(cuò)或者變量初值設(shè)置錯(cuò)誤而導(dǎo)致不執(zhí)行分支結(jié)構(gòu);對(duì)于進(jìn)入了分支結(jié)構(gòu)的執(zhí)行,可能因?yàn)橹^詞的錯(cuò)誤而提前退出分支結(jié)構(gòu)。

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

6. 資源型故障模型

資源型故障模型是在文件系統(tǒng)超載、系統(tǒng)介質(zhì)忙或不可用、介質(zhì)損壞等情況下,運(yùn)行被測(cè)程序進(jìn)行測(cè)試。此類故障模型的建立通常需要輔助測(cè)試工具進(jìn)行環(huán)境的模擬。當(dāng)磁盤負(fù)荷到達(dá)一定程度或可用物理資源十分有限時(shí),系統(tǒng)進(jìn)程十分容易進(jìn)入“死鎖”狀態(tài)或出現(xiàn)不可恢復(fù)的錯(cuò)誤。產(chǎn)生死鎖的根本原因在于系統(tǒng)提供的資源個(gè)數(shù)少于并發(fā)進(jìn)程所要求的該類資源數(shù)。顯然,由于資源有限,不可能為所有要求資源的進(jìn)程無限制地提供資源。

但是,可以采用適當(dāng)?shù)姆椒?,以達(dá)到消除或規(guī)避“死鎖”的目的。因此判斷軟件在何種操作下會(huì)導(dǎo)致“死鎖”以及軟件對(duì)介質(zhì)損壞的糾錯(cuò)能力也就變得極其重要。所以我們應(yīng)該建立這種故障模型,并給出相應(yīng)的測(cè)試用例。

7. 結(jié)論

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

【編輯推薦】

  1. 如何做好和完善功能測(cè)試總結(jié)
  2. 中間件的核心功能測(cè)試內(nèi)容分析
  3. 軟件自動(dòng)化測(cè)試在功能測(cè)試中的應(yīng)用
  4. Hadoop性能優(yōu)化功能測(cè)試詳解
責(zé)任編輯:于鐵 來源: 李書杰
相關(guān)推薦

2011-07-08 11:19:51

jspaction

2009-09-02 17:44:41

C#字符串處理

2023-02-20 14:44:22

DDD領(lǐng)域模型

2011-09-07 14:02:57

MPLS故障MPLS

2010-06-09 19:34:58

UML圖

2010-11-02 13:45:52

TFS2010VS2010微軟

2014-04-09 11:13:37

測(cè)試驅(qū)動(dòng)開發(fā)

2010-03-16 13:04:17

Python環(huán)境

2011-05-11 14:28:31

IS-IS路由IP-Trunk

2010-03-22 15:58:08

Python模塊功能

2011-04-18 12:52:37

自動(dòng)化測(cè)試功能測(cè)試軟件測(cè)試

2010-03-16 17:41:14

Python字符串

2010-03-09 10:25:42

Linux wap網(wǎng)關(guān)

2019-10-25 10:34:49

變異測(cè)試單元測(cè)試

2009-10-13 14:58:00

CCIE故障檢測(cè)檢查表

2009-03-24 08:33:14

AndroidGoogle移動(dòng)os

2010-06-29 14:48:44

SNMP Trap

2023-09-13 14:45:14

性能測(cè)試開發(fā)

2010-09-16 16:08:46

2025-03-10 08:30:00

開源大模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)