软件工程-白盒测试(实验报告)

一、实验目的

巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。

二、实验内容

白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。

白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。

测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。

三、实验原理、方法和手段

  1. 测试程序

     实现对不少于10个随机数的冒泡排序算法。

     2.实验要求

     要求至少采用两种语句覆盖技术,设计测试用例,包括测试数据及预期结果。

四、代码段

import java.io.IOException;
import java.util.ArrayList;
class Test {
    public static void main(String[] args) throws IOException {
        int[] arr = getArr();
        System.out.println();
        getList(arr);
        System.out.println();
        writeArr(arr);

    }

    private static void writeArr(int[] arr) {
    }

    // 产生10个随机数
    /*
     * 要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方式提供常用的数学方法,
     * 其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法 如: 产生一个100以内的整数:int
     * x=(int)(Math.random()*100); 又如: 产生一个1-50之间的随机数:int
     * x=1+(int)(Math.random()*50)
     */
    public static int[] getArr() {
        int[] numArr = new int[10];
        for (int i = 0; i < 10; i++) {
            int num = 1 + (int) (Math.random() * 100);
            numArr[i] = num;
        }
        System.out.println("产生的随机数数组为:");
        for (int i = 0; i < 10; i++) {
            System.out.print(numArr[i] + " ");
        }
        return numArr;
    }
    // 把数组中的数放到一个ArrayList集合中
    public static void getList(int[] numArr) {
        System.out.print("冒泡排序过程:");
        // 创建一个集合
        ArrayList numList = new ArrayList();
        // 给集合添加元素
        for (int i = 0; i < numArr.length; i++) {
                numList.add(numArr[i]);
            }
        for (int i = 0; i < numArr.length - 1; i++) {//外层循环控制排序趟数
                    for (int j = 0; j < numArr.length - 1 - i; j++) {//内层循环控制每一趟排序多少次
                        if (numArr[j] > numArr[j + 1]) {
                            int temp = numArr[j];
                            numArr[j] = numArr[j + 1];
                            numArr[j + 1] = temp;
                        }
                    }
                    //输出
                    System.out.println("");
                    for (int num : numArr) {

                        System.out.print(num + "  ");

                    }
        }
    }
}

五、流程图

软件工程-白盒测试(实验报告)_第1张图片

六、测试用例及测试结果

软件工程-白盒测试(实验报告)_第2张图片软件工程-白盒测试(实验报告)_第3张图片

七、白盒测试分析

       优点:

    1) 帮助软件测试人员增大代码的覆盖率。 提供代码的质量,发现代码中隐藏的问题。

       缺点 :

  1) 程序运行会有很多不同的路径,不可能测试所有的运行路径。

       2) 测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求。

       3) 系统庞大时,测试开销会非常大。

 

 

你可能感兴趣的:(软件工程,java)