试题一(共20分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
int XOR(char * filename, unsigned long key){
FILE* input = NULL,*output = NULL; //1
char *outfilename = NULL;
int len = strlen(filename);
unsigned charbuffer;
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< delete [] outfilename; outfilename = NULL; return 1; } output = fopen(outfilename,”'wbf”); if(utput =NULL){ //8 cout<<"Error creating output file ”<< outfilename< 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中控制流图的线性无关路径。
订单号:
遇到问题请联系在线客服
订单号:
遇到问题请联系在线客服