逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
gz_open (const char *mode)
{
char * p = (char*)mode; //1
char fmode[4];
char * m = fmode;
char smode = ’\0’;
char level = ’\0’;
int strategy = 0;
do {
if (*p == ’r’) //2
smode = ’r’; //3
if (*p >= ’0’&& *p <= ’9’) { //4,5
level = *p - ’0’; //6
} else if (*p == ’f’) { //7
strategy = 1; //8
} else { //9
*m++ = *p;
}
*p++; //10
}while (m != fmode + sizeof(fmode)); //11
} //12
【问题1】
请给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】
假设函数gz_open的参数mode是由26个小写字母’a’-’z’、数字’0’-’9’以及空格组成的字符串,请使用基本路径测试法构造1个测试用例,使之覆盖所有基本路径。
本题主要考查的是逻辑覆盖的相关内容。
【问题1】
判定覆盖即分支覆盖,对于每一个判定,都至少要取得一次真值和假值。在本题中,我们从程序中不难找出所有的逻辑判断语句,很显然在题目给出的程序中,包含的逻辑判断语句有:*p == ’r’、*p >= ’0’&& *p <= ’9’、*p == ’f’及m != fmode + sizeof(fmode)。那么首先是判定*p == ’r’,应分别设置其为真与为假的情况;然后是*p >= ’0’&& *p <= ’9’,设置其为真,然后设置其为假,在为假的情况下,出现判定*p == ’f’,分别设计其为真和假;最后是m != fmode + sizeof(fmode),分别设置真、假即可。
【问题2】
根据题目程序的意思,我们可以知道其控制流图如下所示:
而它的V(G)=6。
【问题3】
本问题考查白盒测试用例设计方法中的基本路径法,涉及到的知识点包括:根据控制流程图和环路复杂度设计测试用例。注意环路复杂度只是测试用例数的上限,
本题中程序的环路复杂度为6 ,因此测试用例上限为6,但本题程序比较特殊,只需要一个测试用例即可实现。例如构造一个6个字符构成的字符串(设为x,y,z,u,v,w6个字符),使得每个字符覆盖一条基本路径即可。其中x=’r’,y=’f’,z属于[’0’ - ’9’],u<’0’,v>’9’并且V!=‘f’,w任意,这6个字符可以任意排列
一台主机的IP地址为202.123.25.36,掩码为255.255.254.0。如果该主机需要在该网络进行直接广播,那么它应该使用的目的地址为( )
在计算机系统的日常维护工作中,应当注意硬盘工作时不能__(2)__。另外,需要防范病毒,而__(3)__是不会被病毒感觉的。
有 4 个 IP 地址:201.117.15.254、201.117.17.01、201.117.24.5 和 201.117.29.3,如果子网掩码为 255.255.248.0,则这 4 个地址分别属于3个子网;其中属于同一个子网的是()
在异步通信中,每个字符包含1位起始位、7位数据位、1位奇偶位和1位终止位,每秒钟传送200个字符,采用4相位调制,则码元速率为()。
在 Windows 中,运行( )命令得到下图所示结果。以下关于该结果的叙述中,错误的是( )。
Pinging 59.74.111.8 with 32 bytes of data:
Reply from 59.74.111.8: bytes=32 time=3ms TTL=60
Reply from 59.74.111.8: bytes=32 time=5ms TTL=60
Reply from 59.74.111.8: bytes=32 time=3ms TTL=60
Reply from 59.74.111.8: bytes=32 time=5ms TTL=60
Ping statistics for 59.74.111.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 3ms, Maximum = 5ms, Average = 4ms
在ISO OSF/RM参考模型中,七层协议中的__(1)__利用通信子网提供的服务实现两个用户进程之间端到端的通信。在这个模型中,如果A用户需要通过网络向B用户传送数据,则首先将数据送入应用层,在该层给它附加控制信息后送入表示层;在表示层对数据进行必要的变换并加头标后送入会话层;在会话层加头标送入传输层;在传输层将数据分解为__(本题)__后送至网络层;在网络层将数据封装成__(3)__后送至数据链路层;在数据链路层将数据加上头标和尾标封装成__(4)__后发送到物理层;在物理层数据以__(5)__形式发送到物理线路。B用户所在的系统接收到数据后,层层剥去控制信息,把原数据传送给B用户。
在OSI/RM中,解释应用数据语义的协议层是()。
在TCP/IP协议栈中,ARP协议的作用是(),RARP协议的作用是(请作答此空)。
在地址 http://www.dailynews.com.cn/channel/welcome.htm 中,www.dailynews.com.cn 表示( ),welcome.htm 表示(请作答此空)。
在电子表格软件Excel中,假设A1单元格的值为15,若在A2单元格输入“=AND(15<A1,A1<100)”,则A2单元格显示的值为 ()