1. 程式人生 > >No.1 Fault Error Failure 區別

No.1 Fault Error Failure 區別

在軟體測試中,首先我們就會講到什麼是Fault,Error,Failure。這三個單詞的翻譯都可以很籠統的稱為-“錯誤”。但是它們三個的區別到底在哪裡呢?我們先來看完整的定義:

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


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.)

這個完整的定義,網上隨處可見。但是我相信不少人看了之後還是一知半解。Fault的定義顯而易見,只要程式中存在這種使系統失效的條件,那麼這就叫Fault。如果你有接觸到,或者說可能執行該Fault的機會,那麼我們就說你執行了Fault。例如,如果一個函式中存在一個邏輯錯誤,那麼這個邏輯錯誤就是Fault。但是你並沒有執行到這個函式,所以我們說,你沒有執行Fault。

那麼什麼是Error呢?我們來看他的定義:計算、觀察或測量值或條件,與真實、規定或理論上正確的值或條件之間的差異。簡單的說,如果你設計了一段程式,這段程式在你設想的情況下可以執行。如果這段程式很不幸,在執行的時候,中間有些步驟,或者中間變數與你設計的不同,這就叫Error。


程式就好比是從起點執行到終點。如果在過程中,有偏差,即使最終到達了我們期望的終點,過程也是Error的。

接下來我們來看Failure。這個是最好理解的了。我們只看最後的結果和我們預想的是否一致,來判斷程式是否失效。

接下來我們來看個題目:


這個題目要求我們在陣列中從後往前找到匹配期望值的索引,但是在for迴圈中,由於當i = 0時候沒有滿足 i>0的條件,無法遍歷到 i = 0,所以實際上沒有比對第一個數。這就是我們的Fault。

1.當測試用例為 test:x = [] 時,丟擲空指標異常,此時沒有執行下面的程式,所以沒有執行fault。

2.當測試用例為 test:x = [2,3,5], y = 3 的時候

期望值:1 實際值:1 同時由於我們在 i = 1的時候,正確返回。所以我們雖然執行了含有fault的程式,但是並沒有產生錯誤,所以 執行了fault,沒有執行error。

3.當測試用例為 test:x = [2,3,5],y = 1的時候

期望值:-1 實際值:-1 雖然我們得到了正確的結果,但是按照設計,應該在遍歷完x = 0 以後,返回 -1;而實際程式在遍歷完x = 1之後直接返回了 -1,所以執行了error,沒有執行failure。

同理,我們來看這一題:


題中程式的目的是我們找到陣列的最後一個0的索引,也就是說從後往前匹配第一個0,但是for迴圈中,i從0開始遍歷,找到第一個0即返回,這就是我們的fault。

1.當測試用例為 test:x = []的時候,丟擲異常,不執行fault。

2.當測試用例為 test:x = [0]的時候

期望值:0 實際值:0 在返回0的時候, i = 0,和我們設計的過程一樣。所以執行了fault,沒有執行error。

3.當測試用例為 test:x = [2,3,5]的時候

期望值:-1 實際值:-1 但是返回-1的時候,i = 3,遍歷到了最後,所以和我們設計的過程不符合,所以執行了error,沒有執行failure。

P.S.文章不妥之處還望指正

相關推薦

No.1 Fault Error Failure 區別

在軟體測試中,首先我們就會講到什麼是Fault,Error,Failure。這三個單詞的翻譯都可以很籠統的稱為-“錯誤”。但是它們三個的區別到底在哪裡呢?我們先來看完整的定義: Fault的定義:可能

C++語言的fault/error/failure(軟體測試)

定義 fault:故障 error:錯誤 failure:失敗 導言 在軟體測試,從上三個英文單詞的意思,我們可以看出這故障越來越大!如果你沒有看出來,你聽我給你捋一捋! 我們寫軟體,可能其中存在故障,軟體有故障,怎麼辦呢?我們需要在上線時測試軟

使用gSoap根據wsdl檔案生成標頭檔案報錯 Error -1 fault: SOAP-ENV:Client [no subcode]

近來我在linux上使用gSoap,根據客戶提供的WSDL檔案生成標頭檔案的時候,不知什麼原因老報錯,資訊如下: [[email protected] usertools]# wsdl2h  -o AAAserver.h AAAserver.wsdl **  T

fault,errorfailure區別與聯絡

Fault的定義:可能導致系統或功能失效的異常條件;可譯為“故障”。 Error的定義:計算、觀察或測量值或條件,與真實、規定或理論上正確的值或條件之間的差異;可譯為“錯誤”。Error是能夠導致系統出現Failure的系統內部狀態。 Failure的定義:當一個系統不能執

Failure,Error,Fault之間的區別

通常我們對三者的使用不是那麼的嚴格,但是有時在學術上需要態度嚴謹、字字斟酌,需要明確在什麼情況下使用這個,在什麼情況下使用另一個。引用文章【1】中做的解釋,三者分別定義為:         Failure:當服務偏離正常形態的時候的狀態;         Error:讓系統

Error: failure: repodata/repomd.xml from fedora: [Errno 256] No more mirrors to try.

ror 目錄 mirror cnblogs logs omd odata 不存在 yum 記錄一個小問題,重新買的linux換yum源的時候一直提示: Error: failure: repodata/repomd.xml from fedora: [Errno 25

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,不會

mongodb-org-server-3.4.17-1.el6.x86_64: failure: [Errno 256] No more mirrors to try.

今天在使用 yum 安裝 mongodb時,報了這個錯誤 sudo yum install -y mongodb-org [[email protected] yum]$ sudo yum install -y mongodb-org Loaded plugin

Web公路,新手上路! No.1

under html html4 oos http org bsp web tran <!DOCTYPE>   用於告訴瀏覽器用何種HTML標準去讀取指令。  HTML5:   <!DOCTYPE html>  HTML4.01 strict:

Oracle基礎之count(1)和count(*)的區別

oracle color 情報 性能 函數 提升 wrapper row 以及   在數據庫中Count(*)或者Count(1)或者Count([列])或許是最常用的聚合函數。很多人其實對這三者之間是區分不清的。本文會闡述這三者的作用,關系以及背後的原理。  我在

加壓壓縮文件報錯gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now

child tdi tex save 重新 屬性 保存 div sta 壓縮包是直接weget 後面加官網上的tar包地址獲取的 [[email protected]/* */ ~]# tar -zxvf /home/hadoop/hadoop-2.6.5-

1.JOIN和UNION區別

union 有一個 數據 區別 idt 組合 cin 查重 left join 1.JOIN和UNION區別join 是兩張表做交連後裏面條件相同的部分記錄產生一個記錄集,union是產生的兩個記錄集(字段要一樣的)並在一起,成為一個新的記錄集 。JOIN用於按

python基礎No.1

Coding 必須 用戶輸入 語言 組成 name 空格 連接 pri 版本python2 python語言不分"和‘,兩者可以一樣使用,同等效果 1.輸出print python3中print是一個函數 print "hello world" 輸出hello world

no.1

n) 操作 判斷 += getchar shel tdi 兩個 單引號 #include <stdio.h> #include <stdlib.h> void main() { int i; int sum = 0;

no.1 函數的重載

執行 情況 return 標準輸入 sha 個數 log cout 輸出流 //求3個數中最大的數,分別考慮整數,雙精度,長整數的情況 -1:主函數分3種情況,每種情況都是 +1:定義4個參數,3個是輸入變量,1個是輸出變量 +2:用標準輸入流輸入3個變量 +3:執行函數

解壓報錯gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now的解決方法

方法 進行 二進制 error ble url src 是否 cat 在部署tomcat的環境搞JDK的時候出現這個問題。分享一下。 解壓命令:tar -zvxf memcached-1.4.34.tar.gz 遇到了一個問題,   gzip: stdin: not

在全局的int a;和int a=1;有什麽區別

rmp fan super otg e30 int cdr DdGzS ddc 頤兆鮮ddu00飾按顏http://www.docin.com/app/user/userinfo?userid=179116305晃和掖o9gpj夢那慈http://tushu.docin.c

NO.1 python安裝

pythonlinux安裝官網下載tar xzvf 解壓源碼安裝三大步./configuremakemake installvim python 自動補全http://www.jb51.net/article/58009.htmwindows安裝https://www.python.org/ftp/pytho

隨筆 | 這裏是一只大一的小菜雞 【NO.1

java img 程序 win log tails nco 自己的 ide 今天裝了JDK以及IDEA準備進行學習 然後在裝JDK的過程遇到了小問題 在win10 1703中 網上的教程為 path添加%JAVA_HOME%\bin; 結果出現了cmd中輸入java

沖刺no.1

csu span 一個 用戶輸入 努力 spa 驗重 用戶添加 用戶信息 項目:ccsu小助手 角色:用戶 開發前:經過我們上一次我們對於自己成員的技術能力和性格分析,進行了相應的工作分配,讓每一個成員都能發揮出自己所擅長的東西,而我通過了隊友的認同,榮獲了客戶這一