慕课软件质量保证与测试(第四章.课后作业)

慕课金陵科技学院.软件质量保证与测试.第四章.白盒测试.课后作业

  • 0 目录
  • 4 白盒测试
    • 4.10 课后作业
      • 4.10.1 课堂重点
      • 4.10.2 测试与作业
  • 5 下一章

0 目录

4 白盒测试

4.10 课后作业

4.10.1 课堂重点

4.10.2 测试与作业

习题四

1(1分)下列不属于白盒测试的技术是 ( ) 。
A、语句覆盖 B、判定覆盖 C、边界值分析 D、基本路径测试
正确答案:C

2(1分)某次程序调试没有出现预计的结果,下列( )不可能是导致出错的原因。
A、变量没有初始化
B、编写的语句书写格式不规范
C、循环控制出错
D、代码输入有误
正确答案:B

3(1分)代码检查法有桌面检查法,走查和( )。
A、静态测试 B、 代码审查 C、动态测试 D、白盒测试
正确答案:B

4(1分)如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的 ( )
A、判定覆盖 B、条件覆盖 C、判定/条件覆盖 D、组合覆盖
正确答案:A

5(1分)软件测试的局限性不包括( )
A、因为输入/状态空间的无限性,测试不可能完全彻底。
B、巧合性有时会导致错误的代码得到正确的结果,掩盖了问题。
C、软件测试会导致成本增加,效益降低。
D、软件缺陷的不确定性。
正确答案:C

6(1分)以下哪种测试方法不属于白盒测试技术( )
A、基本路径测试 B、边界值分析测试 C、程序插桩 D、逻辑覆盖测试
正确答案:B

7(1分)调试是( )
A、发现与预先定义的规格和标准不符合的问题
B、发现软件错误征兆的过程
C、有计划的、可重复的过程
D、消除软件错误的过程
正确答案:D

8(1分)使用白盒测试方法时,确定测试数据的依据是指定的覆盖标准和 ( )
A、程序的注释 B、程序的内部逻辑C、用户使用说明书 D、程序的需求说明
正确答案:B

9(1分)数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种( )。
A、语句覆盖 B、控制覆盖 C、分支覆盖 D、路径覆盖
正确答案:D

10(1分)如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例( )。
A、1 B、2 C、3 D、4
正确答案:B

11(1分)一个程序中所含有的路径数与( )有着直接的关系。
A、程序的复杂程度 B、程序语句行数C、程序模块数 D、程序指令执行时间
正确答案:A

12(1分)条件覆盖的目的是 ( )
A、使每个判定中的每个条件的可能取值至少满足一次
B、使程序中的每个判定至少都获得一次"真"值和"假"值。
C、使每个判定中的所有条件的所有可能取值组合至少出现一次。
D、使程序中的每个可执行语句至少执行一次。
正确答案:A

13(1分)软件调试的目的是( )
A、发现软件中隐藏的错误
B、解决测试中发现的错误
C、尽量不发现错误以便早日提交软件
D、证明软件的正确性
正确答案:B

14(1分)针对下面一个程序段:
其中,FUCTION1、FUCTION2均为语句块。现在选取测试用例:M=10 N=0 P=3 ,该测试用例满足了( )。

If ((M>0) && (N = = 0))
	FUCTION1;
If ((M = = 10)|| (P > 10))
	FUCTION2;

A、路径覆盖 B、条件组合覆盖 C、判定覆盖 D、语句覆盖
正确答案:D

15(1分)对下面的计算个人所得税程序中,满足判定覆盖的测试用例是( )。

if (income<800)    taxrate=0;
else if (income<=1500)    taxrate=0.05;
else if (income<2000)     taxrate=0.08;
else taxrate=0.1;

A、income=(799, 1500, 1999, 2000)           B、income=(799, 1501, 2000, 2001)
C、income=(800, 1500, 2000, 2001)           D、income=(800, 1499, 2000, 2001)

正确答案:A

16(1分)设有一段程序如下:

if (a==b  and c==d or e==f)  do  S1
    else  if (p==q  or s==t) do  S2
        else do S3

若要达到“判定—条件覆盖”的要求,最少的测试用例数目是( )
A、6 B、8 C、3 D、4
正确答案:C

17(1分)下列不属于白盒测试中逻辑覆盖标准的是( )。
A、语句覆盖 B、条件覆盖 C、分支覆盖 D、边界值覆盖
正确答案:D

18(1分)在某学校的综合管理系统设计阶段,教师实体在学籍管理子系统中被称为"教师",而在人事管理子系统中被称为"职工",这类冲突描述正确的为( )。
A、语义冲突 B、命名冲突 C、属性冲突 D、结构冲突
正确答案:B

19(3分)代码检查的方式有三种:、_____________。
正确答案:桌面检查 代码审查 代码走查

20(3分)数据流分析就是对程序中数据的__________、__________及其之间的__________等进行分析的过程。
参考答案:定义 引用 依赖关系

21(1分)____________是逻辑覆盖标准的一种,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
正确答案:条件组合覆盖

22(1分)(判断)所有满足条件组合覆盖标准的测试用例集,也分支覆盖标准。 ( )
参考答案:对

23(1分)(判断)软件测试的目的在于发现错误、改正错误。 ( )
正确答案:错

24(1分)(判断)条件覆盖能够查出条件中包含的错误,但有时达不到判定覆盖的覆盖率要求。 ( )
正确答案:对

25(1分)(判断)在白盒测试中,如果某种覆盖率达到100% ,就可以保证把所有隐藏的程序缺陷都已经揭露出来了。 ( )
正确答案:错

26(1分)(判断)白盒测试的条件覆盖标准强于判定覆盖。 ( )
正确答案:错

27(1分)(判断)判定覆盖包含了语句覆盖,但它不能保证每个错误条件都能检查出来。 ( )
正确答案:对

28(13分)请为以下程序段设计测试用例集,要求分别满足语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖覆盖、条件组合覆盖。

public int do_work(int A,int B){          
       int x=0;
       if((A>4) && (B<9)) 
        { x = A-B;}
       if( A==5 && B>28 )  
        { x= A+B;}
        return x;    
     }          

参考答案:
慕课软件质量保证与测试(第四章.课后作业)_第1张图片
慕课软件质量保证与测试(第四章.课后作业)_第2张图片

29(11分)请为以下程序段设计测试用例集,要求满足条件组合覆盖

public class Triangle {  
   protected long lborderA = 0;
   protected long lborderB = 0;
   protected long lborderC = 0;

   // Constructor
   public Triangle(long lborderA, long lborderB, long lborderC) {
      this.lborderA = lborderA;
      this.lborderB = lborderB;
      this.lborderC = lborderC;   
   } 

   public boolean isTriangle(Triangle triangle) {
      boolean isTriangle = false;
 
      // check boundary
      if (triangle.lborderA > 0 && triangle.lborderB > 0 && triangle.lborderC > 0 )
        // check if subtraction of two border larger than the third
      if ((triangle.lborderA-triangle.lborderB) < triangle.lborderC
              && (triangle.lborderB-triangle.lborderC) < triangle.lborderA
                 && (triangle.lborderC-triangle.lborderA) < triangle.lborderB) 
      {isTriangle = true; }
      return isTriangle;
   }
}

正确答案:
慕课软件质量保证与测试(第四章.课后作业)_第3张图片
慕课软件质量保证与测试(第四章.课后作业)_第4张图片

30(13分)请为程序模块Function1
(1)画出程序控制流图,计算控制流图的环路复杂度
(2)导出基本路径
(3)设计基本路径覆盖测试用例
程序模块Function1代码如下:

1     public  int  Function1(int num, int cycle, boolean flag)
2     {
3            int ret = 0;
4            while( cycle > 0 )
5            {
6                  if( flag == true )
7                  {
8                          ret = num - 10;
9                          break;
10                 }
11                 else
12                 {
13                        if( num%2 ==0 )
14                        {
15                               ret = ret * 10;
16                        }
17                        else
18                        {
19                               ret = ret + 1;
20                        }
21                 }
22                 cycle--;
23          }
24          return ret;
25   }

正确答案:
慕课软件质量保证与测试(第四章.课后作业)_第5张图片
慕课软件质量保证与测试(第四章.课后作业)_第6张图片

31(6分)请对以下程序进行插桩,显示循环执行的次数

public class GCD {
     public int getGCD(int x,int y){
          if(x<1||x>100)
          {
              System.out.println("参数不正确!");
              return -1;
          }

          if(y<1||y>100)
          {
              System.out.println("参数不正确!");
              return -1;
          }

          int max,min,result = 1;
          if(x>=y)
          {
              max = x;
              min = y;
          }
          else
          {
              max = y;
              min = x;
          }

          for(int n=1;n<=min;n++)
          {
              if(min%n==0&&max%n==0)
              {
                  if(n>result)
                  result = n;
              }
          }

          System.out.println("最大公约数为:"+result);
          return result;
       }
 }

正确答案:

package com.mozhimen.test;

public class ceshi4_31 {

	int count=0;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ceshi4_31 ceshi=new ceshi4_31();
		
		int x=4;
		int y=10;
		ceshi.getGCD(x,y);
	}

	public int getGCD(int x,int y){
		
        if(x<1||x>100)
        {
            System.out.println("参数不正确!");
            return -1;
        }

        if(y<1||y>100)
        {
            System.out.println("参数不正确!");
            return -1;
        }

        int max,min,result = 1;
        if(x>=y)
        {
            max = x;
            min = y;
        }
        else
        {
            max = y;
            min = x;
        }

        for(int n=1;n<=min;n++)
        {
        	count++;
            if(min%n==0&&max%n==0)
            {
                if(n>result)
                result = n;
            }
        }

        System.out.println("最大公约数为:"+result);
        System.out.println("count:"+count);
        return result;
     }
}

32(10分)请对以下代码段进行变异,变异规则为将 “++” 替换为 “–”,然后设计测试数据,能够测试发现所有的变异点。

public class zhengchu {
       public   String  iszhengchu(int n) { 
			if(n<0||n>500) { 
				return "error";
			}
			int flag=0;
			String note="";
			if(n%3==0) {
			flag++;
			note=note+" 3";
		}

		if(n%5==0) {
			flag++;
			note+=" 5";
		}

		if(n%7==0) {
			flag++;
			note+=" 7";
		}

		return "能被"+flag+"个数整除,"+note;      
    }     
}

正确答案:
慕课软件质量保证与测试(第四章.课后作业)_第7张图片

5 下一章

博客地址:

你可能感兴趣的:(#,慕课软件质量保证与测试)