C++語言的fault/error/failure(軟體測試)
阿新 • • 發佈:2019-02-19
定義
- fault:故障
- error:錯誤
- failure:失敗
導言
在軟體測試,從上三個英文單詞的意思,我們可以看出這故障越來越大!如果你沒有看出來,你聽我給你捋一捋!
我們寫軟體,可能其中存在故障,軟體有故障,怎麼辦呢?我們需要在上線時測試軟體,在測試軟體時,即使執行到故障這串程式碼,並不一定會出錯!額- -:,這是為什麼呢?因為在某些特定的輸入值的情況下,它的輸出值與正確的結果一致,這就能解釋故障比錯誤低一級了,然後又是錯誤與失敗的關係,其實錯誤與失敗很好理清,因為一個程式結果錯誤了,但是程式並不會失敗,只能說這個程式真實的意義改變了!
正文
聽了我這麼多廢話(謬論),下面我們進入正題,今天我們要的程式實現的是:
- 不觸發fault
- 觸發fault,不觸發error
觸發error,不觸發failure
C++語言程式
#include<iostream> using namespace std; int main() { //-1是指沒有b等於a陣列中的值,否則輸出陣列的地址 int a[] = {2}; int b = 2; int pos = 0; int size = sizeof(a)/sizeof(int); if(size <= 1) { if(b == a[0]) { pos = 1; } else { pos = -1
注意:我有2年沒碰C/C++了,今天寫了這個,我感覺是對的,如果發現有錯,只能說聲抱歉了,但是理論知識講到就行了,程式嗎…………,你懂得!
我們先說下錯誤的地方在
這兒的for迴圈應該從0開始,但是它從的1開始,所以這是故障的地方
- 不觸發fault:
輸入:
a{2},b=2
輸出
位置是1(正確,並且沒有觸發fault) - 觸發fault,但是不觸發error
輸入:
a{2,4,5,8,7,9},b=7
輸出:
位置是5(正確,觸發fault,但結果正確) - 觸發error,但是不觸發failure
輸入:
a{4,5,7,4,6,8},b=4
輸出:
位置是4(錯誤,這兒應該是1,但程式未失敗。)