深入理解白盒测试的基本方法,运用基本路径测试法设计测试用例。
-
(1)掌握白盒测试技术中基本路径测试法的基本步骤。
-
(2)训练针对具体程序运用基本路径测试法设计测试用例的能力。
-
测试代码:
DEVcpp 源代码(点击此处可下载)
#include<stdio.h>
#include<stdlib.h>
#define D_TYEP_A 1
#define D_TYEP_C 2
#define D_EMERGENCY_CALL 1
#define D_MAINTENANCE 2
#define D_TALKING 3
#define D_UP 1
#define D_DOWN 2
/* 操作機能情報構造体 */
typedef struct {
int i_action; /* ヘルプネット動作種別 */
int i_status; /* ヘルプネット動作状態 */
int i_type; /* 緊急通報車載機タイプ */
}
S_INFO;
int SCRNprocSC_Esw_VolUp_proc(int ev, int frame, int opt)
{
int i4_ret = 0;
S_INFO s_info;
//memset(&s_info, 0x00, sizeof(S_INFO));
s_info.i_action = opt; s_info.i_type = frame; s_info.i_status = ev; //Test
if (D_TALKING == s_info.i_status) // 通話中
{
// タイプC車載機での手動保守点検の場合
if ((D_TYEP_C == s_info.i_type) && (D_MAINTENANCE == s_info.i_action))
{
// 受話音量を上げる。
i4_ret = D_UP;
}
// タイプA車載機での緊急通報の場合
else if ((D_TYEP_A == s_info.i_type) || (D_EMERGENCY_CALL == s_info.i_action))
{
// 受話音量を下げる。
i4_ret = D_DOWN;
}
else
{
}
}
else
{
}
return i4_ret;
}
int main() {
int c=1;
while(true){
int x0 = 0;
int x1 = 0;
int x2 = 0;
int a = -1;
printf("------------------------------\n");
printf("请输入\n1.测试开始 0.退出测试\n");
scanf("%d",&a);
if(1==a){
a=0;
printf("\n输入用例编号 %d 的测试数据:\n\n请输入变量s_info.i_status:\n",c++);
scanf("%d", &x0);
printf("请输入变量s_info.i_type:\n");
scanf("%d", &x1);
printf("请输入变量s_info.i_action:\n");
scanf("%d", &x2);
printf("\n获取: ev = %d,frame = %d,opt = %d\t\n", x0, x1, x2);
a=SCRNprocSC_Esw_VolUp_proc(x0, x1, x2);
printf("结果: i4_ret=%d \n\n", a);
a=-1;
}
if(0==a){
printf("\n测试结束\n Bye");
exit(0);
}
if(0!=a&&1!=a&&-1!=a){
printf("\n请输入正确操作数(1 or 2)\n", a);
}
}
}
- 待测部分:
1{
2 int i4_ret = 0;
3 S_INFO s_info;
4 memset(&s_info, 0x00, sizeof(S_INFO));
5
6 if ( D_TALKING == s_info.i_status ) // 通话中
7 {
8 // C类型车载机维护保养的情况
9 if ( ( D_TYEP_C == s_info.i_type ) &&
10 ( D_MAINTENANCE == s_info.i_action ) )
11 {
12 //增大来电音量
13 i4_ret = D_UP;
14 }
15 // A类型车载机突发事件的情况
16 else if ( (D_TYEP_A == s_info.i_type ) ||
17 (D_EMERGENCY_CALL == s_info.i_action ) )
18 {
19 //减小来电音量
20 i4_ret = D_DOWN;
21 }
22 else
23 {
24 }
25 }
26 else
27 {
28 }
29 return i4_ret;
30}
- EA构建活动图:
EA制活动图源文件(点击此处可下载)
-
独立路径:
-
计算环形复杂度:V(G)=5+1=6
-
独立路径1:1-5→6→26-28→29→30
-
独立路径2:1-5→6→7-8→9→10→11-15→29→30
-
独立路径3:1-5→6→7-8→9→16→18→19-21→29→30
-
独立路径4:1-5→6→7-8→9→10→16→18→19-21→29→30
-
独立路径5:1-5→6→7-8→9→16→17→22-25→29→30
-
独立路径6:1-5→6→7-8→9→16→17→18→19→21→29→30
-
测试计划用例表
- 效果图