阅读以下关于软件测试的说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 使用在汽车、飞机中的嵌入式软件,由于直接影响人的生命及财产安全,测试要求更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。

admin2015-05-21  7

问题     阅读以下关于软件测试的说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
    使用在汽车、飞机中的嵌入式软件,由于直接影响人的生命及财产安全,测试要求更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。
    以下是一段C语言代码,请仔细阅读,并回答相关问题:
    int  logicTest(int x,  int y)
    {
    int magic=0;
    if(x>0  &&y>0){
    magie=x+y+10;
    }
    else{
    magie=x+y一10;
    }
    if(magic<0){
    magic=0;
    }
    return magic;
    }
请根据【说明】中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取值范围,将答案填写在答题纸的对应栏中。

选项

答案用例数量:3个; 条件取值范围: (x>0 and y<=0)、(x<=0 andy>0)及(x>0 and y>0)

解析  本问题考查MC/DC覆盖率判定的综合运用。
   MC/DC与代码中的逻辑运算有关。本题代码中的逻辑运算为x>0&&y>0。根据MC/DC的定义,MC/DC覆盖要求每个条件的取值都有覆盖,每个判定值都有覆盖且每个条件都能独立影响判定结果。对于a&&b这样的逻辑运算,真值表如下。

    对测试用例1和测试用例2,条件a不变,因为条件b的不同而导致结果的不同,因此条件b独立影响判定的结果。对测试用例2和测试用例3,因为条件b不变,条件a的不同而导致结果的不同,因此条件a独立影响判定的结果。综合以上,对逻辑运算a&&b应产生三个测试用例,包括:(True,False)、(True,True)、(False,True)。
    所以本题用例数量:3个;条件取值范围:(x>0 and y<=0)、(x<=0 and y>0)及(x>0and y>0)。
转载请注明原文地址:https://jikaoti.com/ti/k6I7FFFM
0

相关试题推荐
最新回复(0)