软件测试学习笔记:找代码中的fault,并设计特定的测试用例
觀察兩段代碼:
(1) 發(fā)現(xiàn)代碼中的錯(cuò)誤;
(2) 設(shè)計(jì)測(cè)試用例,不執(zhí)行fault部分;
(3) 設(shè)計(jì)測(cè)試用例,執(zhí)行fault部分,但不出現(xiàn)error情況;
(4)?設(shè)計(jì)測(cè)試用例, 出現(xiàn)error情況,但不發(fā)生failure。
代碼一:
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) for循環(huán)中循環(huán)條件為i>=0;
(2) x=[],y=2;
對(duì)于此測(cè)試用例,x為空,不執(zhí)行for循環(huán),直接返回NullPointerException;
理論結(jié)果:NullPointerException,
實(shí)際結(jié)果:NullPointerException;
(3) x=[1,2,3],y=2;
對(duì)于此測(cè)試用例,最后一個(gè)等于y的值不在x[0]處,而在x[1] 出,所以for循環(huán)并沒(méi)有執(zhí)行到"i>0"的條件出,所以不會(huì)出現(xiàn)error狀態(tài);
理論結(jié)果:1,
實(shí)際結(jié)果:1;
(4) x=[3,4,5],y=2;
對(duì)于此測(cè)試用例,雖然執(zhí)行到了error狀況,但由于x中并沒(méi)有與y相等的值,所以得到結(jié)果是正確的,所以沒(méi)有出現(xiàn)failure;
理論結(jié)果:-1,
實(shí)際結(jié)果:-1;
public static int lastZero (int[] x) { //Effects: if x==null throwNullPointerException // 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)for循環(huán)的方向反,應(yīng)該從i =?x.length-1執(zhí)行到i = 0;?
(2)無(wú)論如何代碼都會(huì)執(zhí)行進(jìn)入for循環(huán),所以不存在樣例不執(zhí)行fault;
(3)x=[1];這里執(zhí)行時(shí)會(huì)進(jìn)入for循環(huán),即進(jìn)入了fault,但是由于x中只有一個(gè)元素,所以不存在循環(huán)執(zhí)行的正反問(wèn)題,所以沒(méi)有error狀態(tài);
理論結(jié)果:-1,
實(shí)際結(jié)果:-1;
(4)x=[1,0,2];此用例執(zhí)行時(shí)會(huì)發(fā)生error狀態(tài),但是由于x中只有一個(gè)0,所以for循環(huán)執(zhí)行順序不會(huì)對(duì)結(jié)果產(chǎn)生影響,因此沒(méi)有發(fā)生failure;
理論結(jié)果:1,
實(shí)際結(jié)果:1。
轉(zhuǎn)載于:https://www.cnblogs.com/xzzily-mitao/p/5267528.html
總結(jié)
以上是生活随笔為你收集整理的软件测试学习笔记:找代码中的fault,并设计特定的测试用例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: git :设置 object-c 的忽略
- 下一篇: Markdown大法的尝试