白盒测试实训—逻辑覆盖-语句覆盖法-参考答案

逻辑覆盖-语句覆盖法-参考答案

目录

逻辑覆盖-语句覆盖法-参考答案

任务1 

任务2 

任务3 

任务4 

任务5 


任务1 

题目:

根据下面的代码段,画出程序流程图,对程序流程图进行分析,设计一组测试用例,满足语句覆盖。

任务步骤:

  1. 分析代码,画出程序流程图;
  2. 分析流程图,写出分析结果;
  3. 设计测试用例,用例结果书写方式参考案例。

代码段:

public void Test(int x, int y)
{
int a = -1; 
    int b = -1;
    if ((x>0)||(y>0))
    {
        a = 10;
    }
    if ((x<10)&&(y<10))
    {
        b = 0;
    }
}

流程图:

程序流程图

答案:

根据流程图分析,包括内容如下:

2个语句:S1、S2。

2个判断:M1、M2。

(1)假设输入一组数据x=5,y=5:

  1. 经过M1判定时,M1为True,所以走c路径,执行S1;
  2. 经过M2判定时,M2为True,所以走e路径,执行S2。

用例设计:

语句覆盖用例如下:

 测试用例

 输入

 M1

 M2

 被测路径

 CASE1

 x=5,y=5

 True

 True

 a-c-e

任务2 

题目:

根据下面的代码段,画出程序流程图,对程序流程图进行分析,设计一组测试用例,满足语句覆盖。

任务步骤:

  1. 分析代码,画出程序流程图;
  2. 分析流程图,写出分析结果;
  3. 设计测试用例,用例结果书写方式参考案例。

代码段:

public class Test {
	int x;
	public void TestT(int a, int b) {
		if(a>9 && b>5) {
			x = a * a * b;		
		}else {
			if(a<0 && b<0) {
				x = a - b;
			}else {
				x = a + b;
			}			
		}	
	}
}

流程图:

程序流程图

答案:

根据流程图分析,包括内容如下:

3个语句:S1、S2、S3。

2个判断:M1、M2。

  1. 假设输入一组数据a=10,b=6:
  1. 经过M1判定时,M1为True,所以走b路径,执行S1。

(2)假设输入一组数据a=-1,b=-2:

  1. 经过M1判定时,M1为False,所以走c路径。
  2. 经过M2判定时,M2为True,所以走d路径,执行S2。

(3)假设输入一组数据a=0,b=2:

  1. 经过M1判定时,M1为False,所以走c路径。
  2. 经过M2判定时,M2为False,所以走e路径,执行S3。

用例设计:

语句覆盖用例如下:

 测试用例

 输入

 M1

 M2

 被测路径

 CASE1

 a=10,b=6

 True

 a-b

 CASE2

 a=-1,b=-2

 False

 True

 a-c-d

 CASE3

 a=0,b=2

 False

 False

 a-c-e

任务3 

题目

根据下面的代码段,画出程序流程图,对程序流程图进行分析,设计一组测试用例,满足语句覆盖。

任务步骤:

  1. 分析代码,画出程序流程图;
  2. 分析流程图,写出分析结果;
  3. 设计测试用例,用例结果书写方式参考案例。

代码段

public class Test1 {
	public void TestS(int x, int y) {
		int a = 0;
		while(x>0) {
			if(y == 0) {
				x = y+2;
				break;
			}else {
				if(y == 1){
					a = y+10;	
				}else {
					a = y+20;
				}
			}
			x=x-1;
		}		
	}
}

流程图

程序流程图

答案:

根据流程图分析,包括内容如下:

4个语句:S1、S2、S3、S4。

3个判断:M1、M2、M3。

(1)假设输入一组数据x=10,y=0:

  1. 经过M1判定时,M1为True,所以走b路径;
  2. 经过M2判定时,M2为True,所以走c路径,执行S1。

(2)假设输入一组数据x=4,y=1:

  1. 经过M1判定时,M1为True,所以走b路径;
  2. 经过M2判定时,M2为False,所以走d路径;
  3. 经过M3判定时,M3为True,所以走e路径,执行S2,走h路径,执行S4。

(3)假设输入一组数据x=5,y=2:

  1. 经过M1判定时,M1为True,所以走b路径;
  2. 经过M2判定时,M2为False,所以走d路径;
  3. 经过M3判定时,M3为False,所以走f路径,执行S3,走i路径,执行S4。

用例设计:

语句覆盖用例如下:

 测试用例

 输入

 M1

 M2

 M3

 被测路径

 CASE1

 x=10,y=0

 True

 True

 a-b-c

 CASE2

 x=4,y=1

 True

 False

 True

 a-b-d-e-h

 CASE3

 x=5,y=2

 True

 False

 False

 a-b-d-f-i

任务4 

题目

根据下面的代码段,画出程序流程图,对程序流程图进行分析,设计一组测试用例,满足语句覆盖。

任务步骤:

  1. 分析代码,画出程序流程图;
  2. 分析流程图,写出分析结果;
  3. 设计测试用例,用例结果书写方式参考案例。

代码段:

public class Login {
	public static void login(String username,String password) {
	       if (username == "" || password == "") {
	    	   System.out.println("用户名或密码不能为空");
	       }
else if(username=="admin" && password =="123456" ) {
	    	   System.out.println("登录成功");

	        }
else if(username!="admin" && password =="123456" ) {
	        	   System.out.println("请输入正确的用户名");
	        }
	        else if(username=="admin" && password !="123456") {
	        	   System.out.println("请输入正确的密码");
	        }
	        else {
	        	   System.out.println("请输入正确的用户名和密码");
	        }

	    }
}

流程图:

程序流程图

答案:

根据流程图分析,包括内容如下:

5个语句:S1、S2、S3、S4、S5。

4个判断:M1、M2、M3、M4。

(1)假设输入一组数据username="" , password =="":

  1. 经过M1判定时,M1为True,所以走b路径,执行S1。

(2)假设输入一组数据username="admin" , password =="123456":

  1. 经过M1判定时,M1为False,所以走c路径;
  2. 经过M2判定时,M2为True,所以走d路径,执行S2。

(3)假设输入一组数据username="ad" , password =="123456":

  1. 经过M1判定时,M1为False,所以走c路径;
  2. 经过M2判定时,M2为False,所以走e路径;
  3. 经过M3判定时,M3为True,所以走f路径,执行S3。

(4)假设输入一组数据username="admin" , password =="111111":

  1. 经过M1判定时,M1为False,所以走c路径;
  2. 经过M2判定时,M2为False,所以走e路径;
  3. 经过M3判定时,M3为False,所以走g路径;
  4. 经过M4判定时,M4为True,所以走h路径,执行S4。

(5)假设输入一组数据username="abc" , password =="123":

  1. 经过M1判定时,M1为False,所以走c路径;
  2. 经过M2判定时,M2为False,所以走e路径;
  3. 经过M3判定时,M3为False,所以走g路径;
  4. 经过M4判定时,M4为False,所以走i路径,执行S5。

用例设计:

语句覆盖用例如下:

测试用例

 输入

 M1

 M2

 M3

M4

 被测路径

 CASE1

username="",password=""

 True

 a-b

 CASE2

username="admin",password="123456"

 False

 True

 a-c-d

 CASE3

username="ad",password="123456"

 False

 False

 True

a-c-e-f

 CASE4

username="admin",password="111111"

 False

 False

 False

 True

a-c-e-g-h

 CASE5

username="abc",password="123"

 False

 False

 False

 False

a-c-e-g-i

任务5 

题目

根据下面的代码段,画出程序流程图,对程序流程图进行分析,设计一组测试用例,满足语句覆盖。

任务步骤:

  1. 分析代码,画出程序流程图;
  2. 分析流程图,写出分析结果;
  3. 设计测试用例,用例结果书写方式参考案例。

代码段:

public class Leapyear {
	public void Year(int year) {
		if(year %4 ==0 && year%100!=0){
			System.out.println("leap year.");
		}else if(year%400==0) {
			System.out.println("Century leap year.");
			}			
		else {
			System.out.println("It is not leap year.");
		}

	}
}

流程图:

程序流程图

答案:

根据流程图分析,包括内容如下:

3个语句:S1、S2、S3。

2个判断:M1、M2。

(1)假设输入一组数据year=2004:

  1. 经过M1判定时,M1为True,所以走b路径,执行S1;

(2)假设输入一组数据year=2000:

  1. 经过M1判定时,M1为False,所以走c路径;
  2. 经过M2判定时,M2为True,所以走d路径,执行S2;

(3)假设输入一组数据year=2018:

  1. 经过M1判定时,M1为False,所以走c路径;
  2. 经过M2判定时,M2为False,所以走e路径,执行S3;

用例设计:

语句覆盖用例如下:

 测试用例

 输入

 M1

 M2

 被测路径

 CASE1

year=2004

 True

 ab

 CASE2

year=2000

 False

 True

 acd

 CASE3

year=2018

 False

 False

 ace

好的,关于软件测试用例白盒测试和练习题,我可以给你一些参考: 白盒测试是一种测试方,它通过了解被测试软件的内部结构和代码逻辑来设计测试用例,并对其进行测试。在白盒测试中,测试人员可以访问程序代码和内部数据结构,从而可以设计测试场景以覆盖所有可能现的情况。下面是一些白盒测试用例的例子: 1. 确保所有代码路径都被测试覆盖,包括所有条件语句和循环结构。 2. 检查是否有未初始化的变量或指针,这可能导致程序崩溃或产生意外的行为。 3. 检查程序是否能够正确地处理错误情况,如无效的输入或错误的参数。 4. 检查程序是否能够正确地处理边界条件,如处理最小和最大值。 5. 检查程序是否能够正确地处理并发或多线程访问。 6. 检查程序是否能够正确地处理内存分配和释放,以避免内存泄漏或错误的内存访问。 下面是一些白盒测试练习题: 1. 设计测试用例以测试一个函数,该函数接受两个整数并返回它们的和。 2. 设计测试用例以测试一个函数,该函数接受一个字符串并返回该字符串中的第一个单词。 3. 设计测试用例以测试一个函数,该函数接受一个整数数组并返回数组中的最大值。 4. 设计测试用例以测试一个函数,该函数接受一个字符串并返回该字符串中的所有元音字母的数量。 5. 设计测试用例以测试一个函数,该函数接受一个日期和一个整数,并返回该日期加上给定天数后的日期。 希望这些练习题和用例可以帮助你更好地理解白盒测试。如果你还有其他问题,可以继续问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺仔Sec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值