阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 intXOR(char*filename,unsignedlongkey){FILE*input=NULL,*output=NULL;//ichar*outfilename=NULL;intlen=strlen(filename);unsignedcharbuffer;if((filename[len-2]=='.')&&(filena

欢迎免费使用小程序搜题/刷题/查看解析,提升学历,成考自考报名,论文代写、论文查重请加客服微信skr-web

阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 intXOR(char*filename,unsignedlongkey){FILE*input=NULL,*output=NULL;//ichar*outfilename=NULL;intlen=strlen(filename);unsignedcharbuffer;if((filename[len-2]=='.')&&(filename[len-1]=='c')){//2,3outfilename=newchar[len+1];//4strcpy(outfilename,filename);outfilename[len-2]='\0';}else{//5outfilename=newchar[len+5];strcpy(outfilename,filename);strncat(outfilename,".c",2);}input=fopen(filename,"rb");if(input==NULL){//6cout<<"Erroropeningfile"<<filename<<endl;//7delete[]outfilename;outfilename=NULL;return1;}output=fopen(outfilename,"wb");if(output==NULL){//8cout<<"Errorcreatingoutputfile"<<outfilename<<endl;//9delete[]outfilename;outfilename=NULL;return1;}while(!feof(input)){//10if(fread(&buffer,sizeof(unsignedchar),1,input)!=1){//11if(!feof(input)){//12delete[]outfilename;//13outfilename=NULL;fclose(input);fclose(output);return1;}}else{//14buffer^=key;fwrite(&buffer,sizeof(unsignedchar),1,output);}}fclose(input);//15fclose(output);delete[]outfilename;return0;} 请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.

环路复杂度V(G)=8。 本问题考查白盒测试用例设计方法:基本路径法。涉及的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的节点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。本题程序中,if( (filename[len-2]=='.')&&(filename[len-1]=='c') )这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。程序的环路复杂度等于控制流图中判定节点的个数加1,本题控制流图中判定节点个数为7,所以V(G)=8。

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top