逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由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;} 请给出满足100%DC(判定覆盖)所需的逻辑条件。
本题考查白盒测试技术的应用。
1.本问题考查白盒测试用例设计方法:判定覆盖法。
判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次"真"值和"假"值,从而使程序的每一个分支至少都通过一次。本题中程序有6个判定,
所以满足判定覆盖一共需要12个逻辑条件。