刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题



阅读下列说明,回答问题。

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

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

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

    char * outfilename = NULL;

    int len = strlen(filename);

    unsigned char buffer;

    if( (filename[len-2] == '.') && (filename[len-1] == 'c') ) { //2,3

    outfilename = new char[len+1];  //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,"wb");

    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

    outfilename = NULL;

    fclose(input);

    fclose(output);

    return 1;

    }

    }

    else{   //14

    buffer ^= key;

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

    }

    }

    fclose(input);   //15

    fclose(output);

    delete [] outfilename;

    return 0;

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

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

判定覆盖要求每个判定语句在测试中至少有一次为真和一次为假,以确保程序的所有可能路径至少被执行一次。在这个程序中,有6个判定语句(例如if语句),所以需要至少12个逻辑条件来满足判定覆盖的要求。这些逻辑条件涵盖了上述提到的各个分支和关键操作点,以确保全面测试程序的逻辑结构。

创作类型:
原创

本文链接:阅读下列说明,回答问题。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share