0


软件质量保证与测试技术实验:白盒测试用例设计

前言

白盒测试是一种基于程序内部结构和逻辑的软件测试方法,它要求测试人员了解程序的源代码,根据程序的控制流或数据流设计测试用例,以检测程序中的逻辑错误、语法错误或数据处理错误。白盒测试的主要技术有语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、路径覆盖等,它们都有各自的优缺点和适用范围。本实验旨在让学生掌握白盒测试用例设计的基本方法和技巧,通过对给定的程序进行白盒测试,提高软件测试的能力和水平。

在本文中,测试的代码使用的语言是java,使用的ide是idea

一、白盒测试

白盒测试是一种软件测试方法,它可以检查软件的内部结构和逻辑,而不仅仅是输入和输出。白盒测试的目的是发现软件中的错误、缺陷、安全漏洞和其他问题,以提高软件的质量和性能。白盒测试的优点是可以覆盖软件的所有代码路径,发现隐藏的错误和逻辑错误,以及提高代码的可读性和可维护性。白盒测试的缺点是需要对软件的内部结构和设计有深入的了解,可能需要编写复杂的测试用例,以及可能遗漏一些用户界面或功能方面的问题。

二、实验目的

(1)能够利用白盒测试方法对程序进行测试。

(2)会用各种逻辑覆盖法设计测试用例。

(3)会用基本路径测试法设计测试用例。

三、实验内容

题目 1:使用语句覆盖、条件组合覆盖方法为下列程序模块设计测试用例

void DoWork(int x, int y, int z) {
    int k = 0, j = 0;
    if ((x > 3) && (z < 10)) {
        k = x * y - 1;
        j = sqrt(k);
    }
    if ((x == 4) || (y > 5)) {
        j = x * y + 10;
    }
    j = j % 3;
}

要求:(1)给出被测模块的程序流程图

(2)给出满足语句覆盖和条件组合覆盖的测试用例

(3)设计驱动程序 main 函数,运行被测模块。

题目 2:isLeapYear 是一个判断年份是否闰年的程序模块,使用基本路径测试法为该程序模 块设计测试用例。

int isLeapYear(int year) {
    int flag;
    if (year % 4 == 0) {
        if (year % 100 == 0) {
            if (year % 400 == 0)
                flag = 1;
            else
                flag = 0;
        }
        else
            flag = 1;
    }
    else
        flag = 0;
    return flag;
}

要求:(1)给出被测模块的控制流图

(2)分析独立路径集合

(3)设计测试用例

(4)设计驱动程序 main 函数,运行被测模块。

四、实验步骤

1、根据要求绘制程序流程图和控制流图

2、设计并组织合适的测试用例

3、运行测试程序,记录和分析测试结果

4、记录并分析测试结果

五、实验过程

题目一

1、程序流程图

2、测试用例

ps:按理来说,应该不只是这个图,但是这样也可以表示就暂且如此吧

3、测试代码

import static java.lang.Math.sqrt;
import java.util.Scanner;
public class test1 {
    public static int DoWork (int x,int y,int z)
    {
        int k=0,  j=0;
        if ( (x>3)&&(z<10) )
        {
            k=x*y-1;
            j=(int)Math.sqrt(k);
        }
        if((x==4)||(y>5))
            j=x*y+10;
        j=j%3;
        return j;
    }

    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter test case: ");
        int x = scanner.nextInt();
        int y = scanner.nextInt();
        int z = scanner.nextInt();

        int result = DoWork(x, y, z);
        //System.out.println("k="+(x*y-1));
        System.out.println("j=" + result);
    }
}

4、测试结果

题目二

1、控制流图

2、独立路径集合

要使用基本路径测试法为该函数设计测试用例,我们需要确定代码中的独立路 径。在这种情况下,有四条独立路径:

  1. 年份能被 4、100 和 400 整除(例如,2000 年)。在这种情况下,函 数返回 1,表示该年份是闰年。

  2. 年份能被 4 和 100 整除,但不能被 400 整除(例如,1900 年)。在 这种情况下,函数返回 0,表示该年份不是闰年。

  3. 年份能被 4 整除,但不能被 100 整除(例如,2004 年)。在这种情况 下,函数返回 1,表示该年份是闰年。

  4. 年份不能被 4 整除(例如,2001 年)。在这种情况下,函数返回 0, 表示该年份不是闰年。

3、测试用例

4、测试代码

import java.util.Scanner;
public class test2 {
    public static  int isLeapYear( int year )
    {
        int flag;
        if( year % 4 == 0 )
        {
              if( year % 100 == 0 )
              {
                if( year % 400 == 0 )
                  flag = 1;
             else
                flag = 0;
                         }
                   else
                      flag = 1;
               }
         else
                flag = 0;
         return  flag;
        }

        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            System.out.println("输入要判定的年份:");
            int year=sc.nextInt();
            int result=isLeapYear(year);
            System.out.println("结果是:"+result);

        }
}

5、测试结果


总结

这篇文章解释了白盒测试是一种基于程序内部结构和逻辑的软件测试方法,它要求测试人员了解程序的源代码,根据程序的控制流或数据流设计测试用例,以检测程序中的逻辑错误、语法错误或数据处理错误。白盒测试的主要技术有语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、路径覆盖等,它们都有各自的优缺点和适用范围。

这篇文章还解释了白盒测试可以检查软件的内部结构和逻辑,而不仅仅是输入和输出。白盒测试的目的是发现软件中的错误、缺陷、安全漏洞和其他问题,以提高软件的质量和性能。白盒测试的优点是可以覆盖软件的所有代码路径,发现隐藏的错误和逻辑错误,以及提高代码的可读性和可维护性。白盒测试的缺点是需要对软件的内部结构和设计有深入的了解,可能需要编写复杂的测试用例,以及可能遗漏一些用户界面或功能方面的问题。


本文转载自: https://blog.csdn.net/m0_72471315/article/details/130047923
版权归原作者 此镬加之于你 所有, 如有侵权,请联系我们删除。

“软件质量保证与测试技术实验:白盒测试用例设计”的评论:

还没有评论