逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
gz_open (const char*mode)
{
char*p=(char*)mode;//1
charfmode[4];
char*m=fmode;
charsmode= '\0';
char level='\0\';
int strategy=0;
do {
if(*p=='r')//2
smode - 'r';//3
if(*p>='O'&&*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
3、请给出满足100%DC(判定覆盖)所需的逻辑条件。(6分)
4、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。(6分)
5、假设函数gz_open的参数mode是由26个小写字母'a'-'z'、数字'0'-'9'以及空格组成的字符串,请使用基本路径测试法构造1个测试用例,使之覆盖所有基本路径。(6分)

相关专题: 复杂度  

查看答案

相关问题推荐

  • 算法复杂度包括时间复杂度和空间复杂度。对于时间复杂度,一般可以用平均性态和最坏情况复杂性来衡量:对于空间复杂度,一般指执行该算法所需要的【】。

    查看答案
  • 下列叙述中正确的是____

    A.一个算法的空间复杂度大,则其时间复杂度也必定大

    B.一个算法的空间复杂度大,则其时间复杂度必定小

    C.一个算法的时间复杂度大,则其空间复杂度必定小

    D.上述三种说法都不对

    查看答案
  • 下列叙述中正确的是()。

    A.算法复杂度是指算法控制结构的复杂程度

    B.算法复杂度是指设计算法的难度

    C.算法的时间复杂度是指设计算法的工作量

    D.算法的复杂度包括时间复杂度与空间复杂度

    查看答案
  • [填空题]算法的复杂度主要包括______复杂度和空间复杂度。
    查看答案
  • 在最坏情况下(  )。

    A、快速排序的时间复杂度比冒泡排序的时间复杂度要小

    B、快速排序的时间复杂度比希尔排序的时间复杂度要小

    C、希尔排序的时间复杂度比直接插入排序的时间复杂度要小

    D、快速排序的时间复杂度与希尔排序的时间复杂度是一样的

    查看答案
  • 新能源汽车与传统汽车的安全性是否存在差异
    查看答案
  • 新媒体营销和传统营销有什么区别
    查看答案
  • 从教育学未来的角度来定位教的有效性,最核心、最本质的定位是()
    查看答案
  • 下面,不是系统安全所包含的内容是______。

    A.要保证操作系统不能崩溃

    B.要保证系统中的账户不能被盗

    C.要保证文件和目录存取权限设置的安全

    D.要保证数据库系统的正常运行
    查看答案
  • 设有一个 Student数据库,包括数据库,包括学生,课程,选修三个关系:三个关系:学生学生:S ( Sno ,Sname ,Ssex ,Sage,Sdept )
    课程课程:C(Cno ,Cname ,Term,Credit )
    选修选修:SC ( Sno ,Cno ,Score )
    其中:学生关系S的属性分别表示:学号、姓名、性别、的属性分别表示:学号、姓名、性别、年龄、专业课程关系C的属性分别表示:课程号、课程名、的属性分别表示:课程号、课程名、开课学期、学分学分选修关系SC的属性分别表示:学号、课程号、分数
    请用SQL语句完成下面的操作:
    (1)、检索所有比"王华"年龄大的学生姓名、年龄和性别
    (2)、检索选修了课程号为课程号为'CO2'课程的学生中成绩最高的学生的学号
    (3)、检索选修了4门以上课程的学生学号和总成绩(不统计不及格的课程),并要求按照总成绩的降序排列。(4)、检索张力同学没有选修的课程的课程号
    查看答案