实验三 白盒测试

1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)

l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。

l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。

l 利用FindBugs查找程序中是否存在bug。

1.求最大公约数:

package cn.wang.cd;

import java.util.Scanner;

public class Test1 {

/**

* 求最大公约数

* 2016/04/01 王鹏鑫

* @param args

*/

public static int gcd(int m,int n) {

//定义求最大公约数的方法

while (true) {

if ((m = m % n) == 0)

return n;

if ((n = n % m) == 0)

return m;

}

}

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

System.out.println("请输入第一个数:");

int a=cin.nextInt();

System.out.println("请输入第二个数:");

int b=cin.nextInt();

int c = gcd(a,b);  //调用方法

System.out.println("两数的最大公约数为:" + c);

}

}

bug查找:

未出现bug.

总结:fingbug是通过分析或检查源程序的语法、结构、过程、接等来检查程序的正确性是一种静态的代码检测工具,先于动态测试。

2、 逻辑覆盖的应用

l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径

l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。

(1)语句覆盖:

测试路径:abc         aeg             aef

测试用例:

X=1        X=5            X=4

Y=2        Y=0            Y=0

分支覆盖:

测试路径:abc         abd             aeg          aef

测试用例:

X=1        X=1             X=5        X=4

Y=2        Y=1             Y=0        Y=0

(2)

方法:

/**

*

* 2016/04/06 王鹏鑫

* @param args

*/

package cn.wang.cd;

import java.util.Scanner;

public class Test3 {

public void run(){

Scanner cin=new Scanner(System.in);

System.out.println("请输入X的值:");

int x=cin.nextInt();

System.out.println("请输入Y的值:");

int y=cin.nextInt();

if(x<4 || y>0){

if(y>1){

y=y+1;

System.out.println("x的值为:"+x +"\n"+"y的值为:"+y);

}

else{

System.out.println("x的值为:"+x +"\n"+"y的值为:"+y);

}

}

else{

if(x>=5){

x = x-y;

System.out.println("x的值为:"+x+"\n"+"y的值为:"+y);

}

else{

x = x+y;

System.out.println("x的值为:"+x+"\n"+"y的值为:"+y);

}

}

}

}

Main函数:

package cn.wang.cd;

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Test3 test3 = new Test3();

test3.run();

}

}

单元测试:

package cn.wang.cd;

import static org.junit.Assert.*;

public class Test {

@org.junit.Test

public void test() {

Test3 test3 = new Test3();

test3.run();

}

}

运行结果;

单元测试:

总结:分支覆盖的强度比语句覆盖强,语句覆盖不能涵盖所有的分支。

时间: 2024-10-13 12:03:37

实验三 白盒测试的相关文章

软件测试-实验 实验三白盒测试

实验目的 (1)       学习白盒测试方法 (2)       掌握语句覆盖.条件覆盖.分支覆盖等逻辑覆盖方法 (3)       掌握Java代码分析工具的使用 实验内容 1. 计算整数X和整数Y的最大公约数.(不允许采用课堂上所用的方式实现) l  请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名. l  在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数. l  利用FindBugs查找程序中是否存在bug. 代码: i

《软件测试》实验三 白盒测试

1. 计算整数X和整数Y的最大公约数 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名.在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数.利用FindBugs查找程序中是否存在bug. import java.util.Scanner; public class Demo {     public void compare(int a,int b){ int i = a>b?a:b; for(;i>0;i--){ if(a%i

《软件测试》实验三

实验三 白盒测试 实验目的 (1)       学习白盒测试方法 (2)       掌握语句覆盖.条件覆盖.分支覆盖等逻辑覆盖方法 (3)       掌握Java代码分析工具的使用 实验内容 1. 计算整数X和整数Y的最大公约数.(不允许采用课堂上所用的方式实现) l  请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名. l  在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数. l  利用FindBugs查找程序中是否存在b

实验三 、进程调度模拟程序

实验三.进程调度模拟程序 专业 网络工程   姓名 方俊晖 学号 201406114309 一.        实验目的 通过本实验可以加深对有关进程控制块.进程队列的概念的进一步理解. 二.        实验内容和要求 1.进程PCB的结构体定义 2.定义结构体 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行的结果 三.        实验方法.步骤及结果测试 #include<stdio.h> #include<stdlib.h> #include<stri

实验三 进程调度模拟程序

一.实验目的 用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解.     二.实验内容和要求 设计一个有 N个进程并发执行的进程调度模拟程序. 进程调度算法:采用最高优先级优先的调度算法(即把处理机分配给优先级最高的进程)和先来先服务(若优先级相同)算法.动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定规则修改优先数.例如:在进程获得一次CPU后就将其优先数减少1,并且进程等待的时间超过某一时限(2个时间片时间)时增加其优先数等. (1).  每个进

实验三&#160;进程调度模拟程序

实验三 进程调度模拟程序 专业:物联网工程   姓名:黄淼  学号:201306104145 一. 实验目的和要求 目的: 用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 实验要求 设计一个有 N(N不小于5)个进程并发执行的进程调度模拟程序. 进程调度算法:“时间片轮转法”调度算法对N个进程进行调度. 二.实验内容 完成两个算法(简单时间片轮转法.多级反馈队列调度算法)的设计.编码和调试工作,完成实验报告. 1) 每个进程有一个进程控制块(PCB)表示.进程控制块包含

实验三+158+余超勇

实验三 功能性测试用例设计(4学时) 一.实验目的 掌握黑盒测试用例设计方法 二.实验要求 (1)对被测程序进行黑盒测试用例设计. (2)运用等价类.边界值.决策表.状态图法等进行测试用例设计. (3)对手机上任意一款音乐软件进行黑盒测试实践. 三.实验内容 1.对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结. 要求写出测试用例表.执行情况和测试小结. 测试连接:http://www.cnblogs.com/5257yu/p/6838362.html 2.对手机上任意一款

MySQL数据库实验三:连接查询

实验三    连接查询 实验名称:连接查询(2课时) 一.实验目的 理解JOIN语句的操作和基本使用方法,掌握内连接.外连接.自身连接的概念和使用. 二.实验环境 是MS SQL SERVER 2005的中文客户端. 三.实验示例 1. 查询每个学生及其选修课程的情况 SELECT  Student.*,SC.* FROM     Student,SC WHERE  Student.Sno = SC.Sno: 2.检索至少选修课程号为C2和C4的学生学号 SELECT X.S# FROM SC

20145301&amp;20145321&amp;20145335实验三

20145301&20145321&20145335实验三 这次实验我的组员为:20145301赵嘉鑫.20145321曾子誉.20145335郝昊 实验内容详见:实验三