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