首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >白盒测试实训—逻辑覆盖-语句覆盖法-参考答案

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

作者头像
XPcode7
发布2025-10-23 13:22:46
发布2025-10-23 13:22:46
2180
举报

任务1

题目:

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

任务步骤:

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

代码段:

代码语言:javascript
复制
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. 设计测试用例,用例结果书写方式参考案例。

代码段:

代码语言:javascript
复制
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:
  2. 经过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. 设计测试用例,用例结果书写方式参考案例。

代码段:

代码语言:javascript
复制
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. 设计测试用例,用例结果书写方式参考案例。

代码段:

代码语言:javascript
复制
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. 设计测试用例,用例结果书写方式参考案例。

代码段:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 任务1
  • 任务2
  • 任务3
  • 任务4
  • 任务5
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档