1. 程式人生 > >軟體測試基礎——fault、error and failure

軟體測試基礎——fault、error and failure

*************軟體測試基礎*************

首先解釋一下fault、error以及failure的各自定義:

Fault:

可能導致系統或功能失效的異常條件(Abnormal condition that can cause an element or an item to fail.),可譯為“故障”。

Error:

計算、觀察或測量值或條件,與真實、規定或理論上正確的值或條件之間的差異(Discrepancy between a computed, observed or measured value or condition and the true, specified, or theoretically correct value or condition.),可譯為“錯誤”。Error是能夠導致系統出現Failure的系統內部狀態。

Failure:

當一個系統不能執行所要求的功能時,即為Failure,可譯為“失效”。(Termination of the ability of an element or an item to perform a function as required.)

Below are four faulty programs. Each includes a test case that results in failure. Answer the following questions about each program.

public int findLast (int
[] x, int y) { //Effects: If x==null throw NullPointerException // else return the index of the last element // in x that equals y. // If no such element exists, return -1 for (int i=x.length-1; i > 0; i--) { if (x[i] == y) { return
i; } } return -1; } // test: x=[2, 3, 5]; y = 2 // Expected = 0

1. Identify the fault.

for迴圈中的條件判斷應為:(int i=x.length-1; i > =0;i–);

2. If possible, identify a test case that does not execute the fault. (Reachability)

test: x=[];

(丟擲空指標異常,沒有執行下面的程式,則沒有執行fault)

3. If possible, identify a test case that executes the fault, but does not result in an error state.

test: x=[3, 2, 5]; y = 2

Expected= 1

(執行了含有fault的程式,但是並沒有產生錯誤,即執行了fault,沒有執行error)

4. If possible identify a test case that results in an error, but not a failure.

test: x=[3, 2, 5]; y = 1 Expected = -1

(沒有遍歷x=1,直接返回了-1,因此執行了error,沒有執行failure。)

public static int lastZero (int[] x) {
    //Effects: if x==null throw 
                    NullPointerException
    // else return the index of the LAST 0 in x.
    // Return -1 if 0 does not occur in x
    for (int i = 0; i < x.length; i++)
    {
         if (x[i] == 0)
        {
              return i;
         } 
     } return -1;
}
// test: x=[0, 1, 0]
// Expected = 2

1、 Identify the fault.

for迴圈中的條件判斷應為:(int i=x.length-1; i > =0; i–);

2、 If possible, identify a test case that does not execute the fault. (Reachability)

test: x=[];

(丟擲空指標異常,沒有執行下面的程式,則沒有執行fault)

3、 If possible, identify a test case that executes the fault, but does not result in an error state.

test: x=[1, 2, 0]

Expected = 2

(執行了含有fault的程式,但是並沒有產生錯誤,即執行了fault,沒有執行error)

4、 If possible identify a test case that results in an error, but not a failure.

test: x=[3, 2, 5];

Expected = -1

(遍歷到i=3時,返回了-1,不符合設計目的,因此執行了error,沒有執行failure。)

相關推薦

軟體測試基礎——faulterror and failure

*************軟體測試基礎************* 首先解釋一下fault、error以及failure的各自定義: Fault: 可能導致系統或功能失效的異常條件(Abnormal condition that can cause

fault error and failure

clas ror 出現 AI bsp pos inf 結果 技術 程序一 錯誤:for循環中i>0導致index 0 取不到 Test : x=null不執行這個fault Test : x=[2,3,5]; y=3 執行fault,不會

軟體測試基礎--白盒測試黑盒測試自動化測試

1   白盒測試         白盒測試也稱為結構測試或者邏輯驅動測試,它是按照程式內部的結構測試程式,通過測試來檢驗產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程式中的每條通路是否能按照預定要求正確工作          這一方法是吧測試物件看做一個開啟的盒

結對程式設計——關於FaultErrorFailure程式設計

1 package com.sicnu.findnumber; 2 3 public class FindLastNumber { 4 5 public static void main(String[] args) { 6 //找出目標值aim在陣列最後出現的

基礎篇--1.1Java基礎-ExceptionErrorRuntimeException與一般異常有何異同

Throwable、Error、Exception、RuntimeException 關係如下類圖所示: Throwable: Throwable類是java語言中所有錯誤或者異常的超類。它的兩個子類是Error和Exception。 Error: Error是Throwable的子類,

軟體測試基礎知識(摘)

一、軟體測試基本概念   1.軟體=程式+文件,軟體測試=程式測試+測試文件。   “軟體”是指能夠實現某種功能的指令集合,“文件”是指軟體在開發、使用和維護過程中產生的圖文集合。   2.軟體分類     按功能分:系統軟體、應用軟體     按技術架構分:單機版軟體、C/S結構軟體、B/S結構軟

軟體測試基礎知識總結(一)

一、什麼是軟體測試? 1、軟體測試是指使用人工或者自動手段,來執行或測試某個系統的過程。其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。 二、一般的軟體測試的應用場景有: APP、WEB和小程式。 三、軟體測試的發展歷程: 軟體測試從開始到現在,已經經歷了三個階段的發展,到現在

軟體測試基礎知識2

測試的四個階段: 1)單元測試(屬於白盒測試) 測試函式 開發人員完成一個函式,測試人員檢查一個函式 檢查函式是否和lld(詳細設計說明書)一致 由開發人員完成 2)整合測試(屬於灰盒測試) 測試模組 開發人員完成一個模組,測試人員檢查一個模組 檢查模組是否和hld(概要設

軟體測試基礎知識(1)

軟體測試: 從執行狀態來看分為:動態測試、靜態測試; 從按執行過程來看分為:手工測試、自動化測試; 從內容劃分來看:功能測試、易用性測試、相容性測試、文件測試等, 從用例設計來看:黑盒測試、白盒測試、灰盒測試; 按開發:單元測試、系統測試、整合測試、驗

杭州軟體測試基礎學習需要掌握哪些內容?

軟體測試基礎學習需要掌握哪些內容?首先,要有寬泛的計算機基礎知識。微機原理,資料結構,資料庫,作業系統原理,編譯原理,邏輯,程式語言,網路,等等,都要系統地學習過。都精通不大可能,因為人的興趣都不相同,但是這些功課的基本知識點是應當瞭解的。 我們在談到職業的類別的時候,我們可以說C程式設計師

軟體測試筆記】軟體測試基礎

軟體測試的目標 (1)測試是為了發現程式中的錯誤而執行程式的過程 (2)好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案 (3)成功的測試是發現了至今為止尚未發現的錯誤的測試 在綜合測試階段通常由其他人員組成測試小組來完成測試,而不能讓程式編寫者自己進行測試。

軟體測試基礎知識

軟體生命週期(SDLC)的六個階段 1、問題的定義及規劃       此階段是軟體開發方與需求方共同討論,主要確定軟體的開發目標及其可行性。 2、需求分析       在確定軟體開發可行的情況下,對軟體需要實現的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這一階段

軟體測試基礎軟體測試模式

1.軟體測試的分類,按照測試模式分類: 瀑布模型、敏捷測試、基於指令碼的測試、基於風險的測試、探索式測試等   2.傳統的瀑布模型: 專案計劃、需求分析、軟體設計、程式開發、軟體測試、整合維護 每個階段按照順序到下一個階段。每一個階段都是用上一個階段的輸出作為下一

軟體測試基礎軟體測試概要

1.歷史上由軟體bug引發的重大事故: 1990年,美國電信公司AT&T因為交換機故障,損失超過7500萬美金。 2000年,日本證券公司由軟體故障引起超過400億日元的損失。(史上最貴bug) 上世紀90年代,千年蟲bug,全球損失超5000億。 因此,軟體質

軟體測試基礎軟體測試階段

1.軟體測試的分類 按測試階段分類:單元測試、整合測試、系統測試、驗收測試   2.單元測試 定義:對軟體中的最小可測試單元進行檢查和驗證。 單元:人為規定的可測試的最小模組。比如C語言中,可看作各個函式;Java這種面嚮物件語言中,可看做每一個類;針對有介面的

軟體測試基礎軟體測試的分類

1.按測試手段來分類 物件的可見度:黑盒測試、白盒測試 狀態:靜態測試、動態測試 執行方式:手工測試和自動化測試   2.黑盒測試 在測試中,完全不考慮程式內部結構和內部特性的情況下,通過相關暴露出來的介面,來對程式進行測試。 只檢查程式的

軟體測試基礎知識面試題目(25題英文題目)

軟體測試基礎知識面試題目(25題英文題目) 1. Verification is: a. Checking that we are building the right system b. Checking that we are building the system right

軟體測試基礎

1  軟體測試的核心是(A) A、測試用例 B、測試人員 C、程式設計人員 D、測試方法 2、為了提高測試的效率,應該( D )。 A隨機地選取測試資料                    B 取一切可能的輸入資料作為測試資料 C 在完成編碼以後制定軟體的測試計劃 D 選

軟體開發工作總體流程圖 軟體測試活動分佈圖軟體測試流程關係圖

 軟體測試的流程 軟體測試的流程一般要考慮3點:軟體測試工作總體流程圖、軟體測試活動分佈圖和軟體測試流程關係圖。 1.4.1 軟體開發工作總體流程圖 軟體測試的流程圖分為軟體測試工作總體流程圖、需求階段測試工作流程圖、設計與編碼階段測試工作流程圖、整合測試和系統測試

軟體測試基礎知識總結

第一部分:軟體評測知識 1.  軟體質量與軟體測試 軟體測試:在規定條件下對程式進行操作,以發現錯誤,對軟體質量進行評估,包括對軟體形成過程的文件、資料以及程式進行測試 軟體質量:軟體特性的總和,軟體滿足規定或潛在使用者需求的能力 2.  軟體