




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件功能性測試的21種故障模型人員的經驗和直覺盡量歸納和固化,就形成了一些故障模型。故障模型指明了故障是如何以及為什么會在軟件執(zhí)行時引起軟件失效。在測試過程中,我們可以按照這些故障模型所提供的缺陷類型和尋找該類缺陷的方法找到盡量多的缺陷。1.1缺陷產生原因開發(fā)人員通常用以下3種技術來處理非法輸入:?防止不正確的輸入進入被測軟件。過濾掉不正確的輸入,只允許合法輸入通過界?輸入了不正確的數(shù)據(jù)后,軟件提示錯誤信息,拒絕不正確的輸入。可見開發(fā)人員除了編寫主要的功能代碼外,還必須編寫對非法輸入的檢查代碼,這些代碼經常被遺忘,或者編寫完這部分代碼后,開發(fā)人員很少認真檢查,導致處理非法輸?輸入類型:鍵入無效的類型常會產生錯誤信息。?輸入長度:對于字符型,鍵入太多的字符常會引出錯誤信息。?邊界值:輸入邊界值或超過邊界值的數(shù)據(jù)。1.3測試方法小結?測試方法:分別從輸入數(shù)據(jù)的類型、長度、邊界值等方面進行考慮。?錯誤信息和錯誤要一致。?錯誤信息的內容為空,用戶不知道為什么出錯。?顯示的錯誤信息是給開發(fā)人員調試使用的,例如“Error5-unknowndata”開發(fā)人員可以通過該信息很容易找到錯誤類型,但是用戶根本不明白,不知道做錯了什?測試知識儲備:牢記各基本數(shù)據(jù)類型的邊界值。2.1缺陷產生原因軟件就會失效,正確地使用變量的順序是:聲明變量d給變量賦值d使用變量。通常會由于以下兩個原因使變量的默認值不正確:?給變量賦值這一步經常會被開發(fā)人員不經意地路過。?開發(fā)人員有時不確定到底要賦什么初始值,就隨便給了一個值,但用戶并不認可序把打印默認輸出份數(shù)設置為2份,會給用戶造成很大麻煩。2.2如何發(fā)現(xiàn)這類問題確定應用軟件中所使用的數(shù)據(jù)有以下一些基本原則:?查找選項按鈕、配置面板、安裝屏幕等。這種屏幕上顯示的數(shù)據(jù)常常在應用程序?接受軟件顯示的默認值。有時軟件需要用戶輸入一個值,如果沒有輸入任何值,軟件就可能失效。這時可以只是簡單的單擊“確定”按鈕來接受默認值,完成這個功?鍵入空值。刪掉默認值,使輸入域變成空值。?將默認值改為另一個值,這樣會使應用程序以不同的值來運行。?將輸入值改為另一個值,然后再變以空值。一個好的軟件會這樣處理以上情況,將輸入的不合法內容默認為合法邊界內的某個合理值,或者返回錯誤提示信息。2.3測試方法小結?應用場合:需要有默認值的地方。?測試方法:分別從選項按鈕、配置面板、安裝配置、開始界面等方面進行考慮,強制使用或不使用默認值等。?測試知識儲備:全面理解需求規(guī)格說明書中對默認值的要求;同時深刻理解被測軟3.1缺陷產生原因能導致程序掛起,主要包括以下3種情況:?字符集包括普通字符和特殊字符。例如,ASCII字符集包括普通字符和特殊字符。應用程序有時只能處理普通字符,當輸入特殊字符時就會出現(xiàn)錯誤。語言把\n、++和&這樣的字符用于特殊目的。如果將這些字符串鍵入到對話框中,程序必須進行錯誤處理,否則容易產生錯誤。?應用程序有時也使用設置名稱、系統(tǒng)對象和程序的保留字符串集合。只要在程序中使用了這些字符串,就可能導致失效3.2如何發(fā)現(xiàn)這類問題?根據(jù)被測軟件所處的操作系統(tǒng)、使用的程序設計語言、字符集等信息列出表格,通?根據(jù)經驗,軟件很少會因為這種操作而崩潰,通常它會掛起沒有響應。3.3測試方法小結?應用場合:需要接受字符輸入的地方。?測試方法:根據(jù)被測軟件的具體情況輸入非法字符。?測試知識儲備:盡可能多地了多地了解字符集、程序設計語言和操作系統(tǒng)中的保留字符串及其特定含義,可以使我們更好地分辨這類缺陷。4、輸入使緩沖區(qū)溢出的數(shù)據(jù)4.1缺陷產生原因開發(fā)人員沒有考慮傳送給內存緩沖區(qū)的字符串的大小。如果緩沖操作系統(tǒng)強制性地終止應用程序。4.2如何發(fā)現(xiàn)這類問題當應用程序允許輸入字母、數(shù)字時,通過GUI控件(如文本框),或者通過API調用的參數(shù)來進行這種測試。?首先弄清楚要測試的輸入域的長度,輸入最大字符串測試。?輸入一個比最大字符串長的字符串,應用程序可能出現(xiàn)錯誤提示信息,提示不允許輸入;或者輸入了更長的字符串使應用程序崩潰。4.3測試方法小結?應用場合:需要接受字符輸入的地方。?測試方法:根據(jù)被測軟件的具體情況輸入最大字符串或輸入一個比最大字符串更?測試知識儲備:盡可能多地和開發(fā)人員討論,以了解和確定輸入域的合理長度。5、輸入產生錯誤的合法數(shù)據(jù)組合5.1缺陷產生原因相影響而引起軟件失效。5.2如何發(fā)現(xiàn)這類問題首先要確定測試哪些輸入組合,并弄清楚它們之間的“關系”。如果具備以下任一特性,就可以認為這些變量是有“關系”的。?描述的是有關單個內部數(shù)據(jù)結構的屬性和內容。例如,輸入面板需要用戶輸入列表的“行”和“列”,這時測試人員要輸入單個內部數(shù)據(jù)結構“列表”的屬性“行和列”。些輸入變量具有了相互“關系”。5.3測試方法小結?應用場合:輸入值之間存在依賴關系。?測試方法:輸入可能是存在問題的組合值。?測試知識儲備:盡可能多的內部數(shù)據(jù)結構的屬性和內容,并與開發(fā)人員探討,以確定輸入的數(shù)據(jù)值。6.1缺陷產生原因單個輸入產生多種輸出的情況與先前的輸入和被測系統(tǒng)的狀態(tài)都有關系。例如,在文字處理程序中單擊“關閉”按鈕,如果文件被編輯且未被保存,程序將提示是否保存文件。如果文件已被保存過,則文件直接關閉。6.2如何發(fā)現(xiàn)這類問題測試人員必須具有關于被測系統(tǒng)軟件的業(yè)務方面的知識,具備各種程序文檔,明確一個輸入可以產生何種輸出。我們可以據(jù)此列出關于程序輸入與輸出的一個列表,然后進行測試。6.3測試方法小結?應用場合:同一輸入對應多個輸出的情況。?測試方法:測試輸入對應的每一個輸出。?測試知識儲備:全面理解需求規(guī)格說明書中的內容,找出輸入與輸出之間的關7.1缺陷產生原因軟件就會產生不符合業(yè)務邏輯的問題。另外在絕大多數(shù)情況下開發(fā)人員會忽略處理沒有遵7.2如何發(fā)現(xiàn)這類問題?測試人員應該盡可能地學習的涉及問題的領域。?有時在列舉出無效輸出后,也很難知道哪些輸入組合能強制這些輸出產生。這時測試人員必須先要確定哪些輸入與輸出有關,然后用產生意外結果的輸入組合進行測試,測試過程中要注意輸入執(zhí)行順序,用不同的順序執(zhí)行可能得到不同的結果。如果不能強制無效的輸出產生,就說明軟件沒有這方面的缺陷。7.3測試方法小結?應用場合:強制產生不符合業(yè)務背景的知識。?測試方法:列舉出所有的無效輸出,然后逐一測試。8、輸出屬性修改后的結果8.1缺陷產生原因輸出常常具有可修改的屬性,如顏色、形狀、維數(shù)及大小等,用戶可以修改這些屬性。在這種情況下,開發(fā)人員必須編碼、設立初始或默認屬性值,然后編碼允許用戶編輯8.2如何發(fā)現(xiàn)這類問題強制每個輸出產生,并編輯其屬性,然后再次強制輸出產生。8.3測試方法小結?應用場合:輸出的結果,可以由用戶修改屬性得出。?測試方法:強制每個輸出產生,并編輯其屬性,然后再次強制產生輸出。?測試知識儲備:全面理解需求規(guī)格說明書中的內容,了解能夠產生的輸出。9.1缺陷產生原因通常GUI軟件會產生刷新問題,因為GUI在對窗口進行覆蓋、移動和調整大小時,法才可以繼續(xù)工作。所以開發(fā)人員有時候不能很好地確定什么時候需要刷新,需要刷新多大范圍的區(qū)域,這就發(fā)生了令人煩惱的刷新問題。9.2如何發(fā)現(xiàn)這類問題示。如果不能正確、及時地進行重新顯示,就產生了軟件缺陷。我們可以通過以下幾個方?從起始位置移動對象。先移動一點,然后增加移動幅度;先移動一次或兩次,然后多次移動,確保覆蓋了所有區(qū)域?從覆蓋對象的邊界開始一點點覆蓋,使其中一個對象遮住別一個對象。?使用不同類型的對象。如果應用程序支持多種類型的對象,如文本對象、圖形對象等,就把這些不同對象混在一起使用。9.3測試方法小結?測試方法:增加、刪除和移動屏幕上的對象。?測試知識儲備:全面理解需求規(guī)格說明書中的內容,了解程序中對象之間的關系。10.1缺陷產生原因所有數(shù)據(jù)結構的大小都有上限。一些數(shù)據(jù)結構會逐步增加長度以充滿機器內存容量行編碼,忘記結構本身的物理局限。10.2如何發(fā)現(xiàn)這類問題?確定數(shù)據(jù)結構的界限,嘗試將過多的值輸入數(shù)據(jù)結構。應該特別注意界限為數(shù)據(jù)?對于下溢的測試,可以嘗試多刪除一個數(shù)據(jù),例如當結構為空時,嘗試再刪除,或者添加一個數(shù)據(jù),嘗試刪除兩個數(shù)據(jù)時的情況。10.3測試方法小結?應用場合:程序中存在數(shù)組。嘗試多刪除一個數(shù)據(jù)。?測試知識準備:全面理解需求規(guī)格說明書中的內容,確定數(shù)據(jù)結構的界11.1缺陷產生原因在編程過程中對內部數(shù)據(jù)結構都有所約束,包括大小、維數(shù)、類了一組參數(shù)來約束。在建立數(shù)據(jù)項和隨后對數(shù)據(jù)項進行修改的任何時刻都要對數(shù)據(jù)屬性的部分,而忽略了對其他部分的修改,使得其修改不完全,不徹底。11.2如何發(fā)現(xiàn)這類問題?確認候選數(shù)據(jù),并列出其可修改的屬性。對每個屬性列出有效值的允許范圍、約束?確定所有可修改屬性的功能位置。?對數(shù)據(jù)進行初始化,改變每個屬性以確定是否正確進行了約束。息不正確以及使用錯誤數(shù)據(jù)產生的無效輸出。11.3測試方法小結?應用場合:應用程序內部的數(shù)據(jù)結構存在約束。?測試方法:破壞內部數(shù)據(jù)結構的約束。?測試知識儲備:全面理解需求規(guī)格說明書中的內容,確定內部數(shù)據(jù)結構的所有約12.1缺陷產生原因時,必須編寫錯誤檢查代碼。例如:除以零的問題。12.2如何發(fā)現(xiàn)這類問題找到程序中包含的數(shù)據(jù)或輸入(即操作數(shù))的計算(即操作符)、數(shù)學表達式(即操作符和操作數(shù)的組合)及對圖形的操作。另外,對多個操作數(shù)進行組合也更容易發(fā)生錯誤。例如,字符和數(shù)字都可以使用“+”操作符。對字符通過“+”把它們連成一串;對數(shù)字通過“+”來進行加法運算。如果系統(tǒng)嘗試把字符和數(shù)字相加,即進行相互矛盾的操作,就會引起軟件失效。12.3測試方法小結?應用場合:需要進行數(shù)值計算的程序或圖形操作的程序。?測試方法:對于數(shù)值計算考慮操作數(shù)和操作符之間的限定關系,對于圖形計算還要考慮各種輸入數(shù)據(jù)之間的組合關系。?測試知識儲備:全面掌握被測軟件中操作符對操作數(shù)的要求。掌握不同的操作符和操作數(shù)具有的不同的有效和無效的取值范圍。13.1缺陷產生原因調用自身,很快地占用機器資源,最終產生溢出,使程序崩潰或掛起。產生這類問題的主要原因是開發(fā)人員沒有編碼來保證循環(huán)和遞歸調用的終止,通常是在循環(huán)的開始或結束時13.2如何發(fā)現(xiàn)問題在軟件中尋找可以使用遞歸調用的功能。這時可以制作一個列表,標明軟件中可能嵌入遞歸的功能的列表,然后自己引用自己來檢查程序是否能正確處13.3測試方法小結?應用場合:需要和其它對象進行交互的地方。?測試方法:考慮對象的自我交互或復制。?測試知識儲備:全面掌握被測軟件的需求。14.1缺陷產生原因域范圍,有時開發(fā)人員在執(zhí)行計算時會忘記檢查這些上限。14.2如何發(fā)現(xiàn)這類問題一次又一次地執(zhí)行計算或使用很大或很小的輸入和數(shù)據(jù)進行計算,重點測試數(shù)據(jù)類型的初始值或邊界值附近的值。14.3測試方法小結?應用場合:應用程序執(zhí)行能夠導出待產生結果并進行內部存儲的計算。?測試方法:強制數(shù)據(jù)產生上溢或下溢。?測試知識儲備:全面掌握被測軟件的需求,了解計算變量的上下限。15.1缺陷產生原因通常對孤立的功能進行測試時不會發(fā)生很多缺陷,而當把單獨的功能和同一軟件中能會將某數(shù)據(jù)項設置為特定大小,然而另一個功能卻允許該數(shù)據(jù)項的大小可以超過第一個范圍;而此時,另一個功能修改了共享數(shù)據(jù),當再使用這些數(shù)據(jù)時就產生了缺陷。15.2如何發(fā)現(xiàn)這類問題當應用程序在同一時間完成一個以上的功能或當一個以上的功能在同一時另一個功能的計算。在測試前要確定哪些功能是相互依賴或共享數(shù)據(jù)的:?能應用同樣輸入的每個功能。如果這些功能有相互重疊的輸入域,就可能存在交?有類似的輸出產生功能。如果某些功能結合起來產生單個輸出,就說明這些部件之間存在關系,應該被一起測試。?一個功能被包含在另一個功能的計算中。例如要測試鼠標選取對象的功能,不僅要形元素放在一起,測試鼠標選取這些元素的功能。15.3測試方法小結?測試方法:以點代面,重點測試某一功能,對可能與這個功能相連的其它功能附帶?測試知識儲備:全面掌握被測軟件的需求,在測試之前對被測功能之間的依賴關聯(lián)有所掌握,另外還需要對共享數(shù)據(jù)有所掌握。16、文件系統(tǒng)超載16.1缺陷產生原因開發(fā)人員可能會忘記編寫代碼處理滿狀態(tài)的文件系統(tǒng),忽略了諸如CreateFile,WriteFile等操作系統(tǒng)API的錯誤檢查代碼,沒有這樣的代碼,當顯示滿狀i-L-T、/|~h16.2如何發(fā)現(xiàn)這類問題16.3測試方法小結?應用場合:系統(tǒng)較大,運行時需要較大的空間。?測試方法:強制磁盤系統(tǒng)滿容量或容量小于等于被測軟件運行時所需容量后,運行被測軟件或利用測試工具模擬磁盤狀況。?測試知識儲備:全面掌握被測軟件的需求,了解被測軟件處理超載狀態(tài)的文件系供多請求服務會慢下來,并且必須對應用程序進行編程以處理這些延遲,當延遲變得很長17.2如何發(fā)現(xiàn)這類問題者同時下載大量文件也可以使后臺擁擠;檢查被測軟件能否正確處理這種情況,應用程序應該給出錯誤信息或等待批示,提示用戶正在處理。?應用場合:應用程序的運行需要消耗大量內存或運行時需要其它相關軟件同時運?測試方法:啟動大量程序或利用測試工具模擬磁盤狀況。?測試知識儲備:全面掌握被測軟件的需求,了解被測軟件運行時對系統(tǒng)的要求。18.1缺陷產生原因?損壞的介質可能會使操作系統(tǒng)傳回錯誤代碼,這些錯誤代碼沒有在應用程序中編?操作系統(tǒng)不能檢測出所有這樣的錯誤,操作系統(tǒng)自己也有錯誤或者損壞的介質損壞了部分操作系統(tǒng)。18.2如何發(fā)現(xiàn)這類問題使用損壞了的介質,例如,刮傷、灰塵、磁干擾等。檢查應保用戶數(shù)據(jù)文件不丟失、為損壞。18.3測試方法小結?應用場合:應用程序對安全的要求較高,對災難恢復的要求較高。?測試方法:用實際損壞介質的方法測試應用程序。?測試知識儲備:全面掌握被測軟件的需求,了解被測軟件運行時對系統(tǒng)19.1缺陷產生原因AUX、COM1、COM2、COM3、COM4、CON、LPT1、LPT2、LPT3、LPT4、NUL及PRN這些操作系統(tǒng)保留字。的文件名命名規(guī)則不一致的時候,就會發(fā)生問題。19.2如何發(fā)現(xiàn)這類問題?保存文件為操作系統(tǒng)不允許的文件名,例如,文件名中含有/\:<>?*|這8個字符,測試應用程序是否不允許輸入包含這些字符的文件名。?輸入一些應用程序不允許使用的文件名,例如,使用過長的、含有特殊字符的、可能相互作用的字符作為文件名,檢查應用程序能否識別該文件。19.3測試方法小結?應用場合:幾乎所有涉及需要輸入文件名功能的應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆江西省鷹潭市高三一模語文試題 含解析
- 文物古建-火災應急預案(3篇)
- 車間電氣火災的應急預案(3篇)
- 二次電纜火災應急預案(3篇)
- 行政法學理論指導試題及答案
- 商場電器火災的應急預案(3篇)
- 企業(yè)變化管理與風險防范的結合試題及答案
- 2025年前沿技術考試考題及答案
- 發(fā)生火災處理應急預案(3篇)
- 高考作文關于友誼與陪伴的主題及答案
- 2025年臨床醫(yī)師定期考核必考復習題庫及答案(1080題)
- 二零二五年度老舊小區(qū)改造房屋聯(lián)建合作協(xié)議3篇
- 計算機輔助制造(CAM)技術實踐考核試卷
- 創(chuàng)新創(chuàng)業(yè)創(chuàng)造:職場競爭力密鑰知到智慧樹章節(jié)測試課后答案2024年秋上海對外經貿大學
- 《廣西高標準農田耕地質量評價工作 指導手冊》
- 中國高血壓防治指南(2024年修訂版)
- 課件中華民族共同體概論課件專家版15第十五講:新時代與中華民族共同體建設
- 【MOOC】航空航天材料概論-南京航空航天大學 中國大學慕課MOOC答案
- 機械傷害應急處理措施
- 新能源材料與器件基礎知識單選題100道及答案解析
- 北師大版數(shù)學四年級下冊期末考試試卷及答案
評論
0/150
提交評論