linux白盒測試流程

發表于:2015-03-25來源:uml.org.cn作者:不詳點擊數: 標簽:linux
白盒測試的主要目的有兩點,一點是驗證軟件需要是否在代碼中被覆蓋,二是進行代碼覆蓋率分析,盡可能多的覆蓋所有軟件代碼。顯然,最重要的第一點。分析代碼覆蓋率就是為了

  本文主要結合gdb和gcov開源工具,在linux環境下進行白盒測試。

  白盒測試的主要目的有兩點,一點是驗證軟件需要是否在代碼中被覆蓋,二是進行代碼覆蓋率分析,盡可能多的覆蓋所有軟件代碼。顯然,最重要的第一點。分析代碼覆蓋率就是為了檢查代碼跟需求是否匹配,然后再繼續根據需求添加新代碼,或者刪除掉根本沒有執行的死代碼。

  所以當代碼覆蓋率達到100%,說明代碼已經很完美的匹配了軟件需求,白盒測試工作也就結束了。這就是白盒測試的根本目的。

  下面就結合具體的例子說明linux白盒測試流程。

  這里有個簡單的 程序,計算1+2+3..+8的和 sum。如果有條程序需求,當sum不等于36,設置quit=0,否側,設置quit=1。

  $cat calnumber.c

1 #include <stdio.h>
2
3 int main()
4 {
5 int i,sum,number;
6 int quit;
7 number = 8;
8 sum = 0;
9 for(i = 0; i <= number; i++)
10 {
11 sum += i;
12 }
13
14 if(sum != 36)
15 {
16 quit = 0;
17 printf("sum = %d\n", sum);
18 } else
19 {
20 quit = 1;
21 printf("sum is 36\n");
22 }
23
24 if(quit) printf("Finish!\n");
25
26 return 0;
27 }

  很顯然需求設計兩個用例,一個是sum=36, 另外一個是sum!=36,這樣程序需求也就覆蓋到了。目前,我們還沒有看到程序,但是我們已經可以設計用例了,所以說在編碼人員寫程序之前,測試人員就可以結合程序需求設計所有的測試用例。當程序寫完之后,測試人員就可以馬上進行測試。

  我們把這個用例寫成gdb腳本。具體如下,需要熟悉gdb命令。

  $cat calnumber.gdb

# For comments

file calnumber

# Test Case 1
echo \n
echo ---------------------\n
echo Test Case 1\n
echo \n
break calnumber.c:main
run

break calnumber.c:9
continue
echo "check number == 8"\t
print number == 8
echo "check sum == 0"\t
print sum == 0
echo "set number = 4"\t
print number = 4

break calnumber.c:14
continue
echo "set sum = 10"\t
print sum = 10

break calnumber.c:24
continue
echo "check quit == 0"\t
print quit == 0
echo "check i == 5"\t
print i == 5
echo "check sum == 10"\t
print sum == 10

Delete
continue

# Test Case 2
echo \n
echo ---------------------\n
echo Test Case 2\n
echo \n
break calnumber.c:main
run

break calnumber.c:24
continue
echo "check i == 9"\t
print i == 9
echo "check sum == 36"\t
print sum == 36
echo "check quit == 1"\t
print quit == 1

Delete
continue

# -------------------------------
quit

原文轉自:http://www.uml.org.cn/Test/2009021210.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97