题目详情

逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。

int XOR(char * filename, unsigned long key){

 FILE * input = NULL,*output = NULL; //1

 char * outfilename = NULL;

 int len = strlen(filename);

 unsigned char buffer;

 if( (filename[len-2] == ‘.’) && (filename[len-l] == ‘c’)){ //2,3

  outfilename = new char[len+l]; //4

  strcpy(outfilename,filename); outfilename[len-2] = ‘\0’;

 }

 else{ //5

  outfilename = new char[len+5];

  strcpy(outfilename , filename);

  strncat(outfilename,”.c”,2);

 }

 input = fopen(filename,”rb”);

 if( input = NULL){ //6

  cout<<"Error opening file " << filename <<endl ; //7

  delete [] outfilename;

  outfilename = NULL;

  return 1;

 }

 output = fopen(outfilename,”'wbf”);

 if( output = NULL) { //8

  cout<< "Error creating output file ”<< outfilename <<endl; //9

  delete [] outfilename;

  outfilename = NULL;

  return 1;

 }

 while(! feof(input) ){ //10

  if( fread(&buffer,sizeof(unsigned char), 1,input) != 1 ){ //11

   if( ! feof(input)){ //12

    delete [] outfilename; //13

    outfllename = NULL;

    fclose(input);

    fclose(output);

    return 1;

   }

  }

  else{ //14

  buffer A= key;

  fwrite(&buffer,sizeof(unsigned char), 1,output);

  }

 }

 fclose(input);

 fclose(output);

 delete [] outfllename;

 return 0;

}

【问题1】(6分)

请给出满足100%DC (判定覆盖)所需的逻辑条件。

【问题2】(10分)

请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3】(4分)

请给出问题2中控制流图的线性无关路径。

正确答案及解析

正确答案
解析

【问题1】

(filename[len-2] == ‘.’) && (filename[len-l] == ‘c’)

(filename[len-2] != ‘.’) && (filename[len-l]!= ‘c’)(或与之等价的表达式,使得判定结果为假)

input == NULL

input != NULL(或与之等价的表达式,使得判定结果为假)

output == NULL

output != NULL(或与之等价的表达式,使得判定结果为假)

! feof(input)

feof(input)(或与之等价的表达式,使得判定结果为假)

fread(&buffer,sizeof(unsigned char), 1,input) != 1

fread(&buffer,sizeof(unsigned char), 1,input) == 1(或与之等价的表达式,使得判定结果为假)

! feof(input)

feof(input)(或与之等价的表达式,使得判定结果为假)

【问题2】

中级软件评测师,章节练习,中级软件评测师案例分析

V(G)=8

【问题3】

1、1 2 3 4 6 7

2、1 2 3 5 6 7

3、1 2 5 6 7

4、1 2 5 6 8 9

5、1 2 5 6 8 10

6、1 2 5 6 8 10 11 12 13

7、1 2 5 6 8 10 11 14

8、1 2 5 6 8 10 11 12

或者其他符合要求的等价的路径组合

包含此试题的试卷

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案

相关题库更多 +