Java 白盒和黑盒测试

Java 白盒和黑盒测试,java,testing,black-box-testing,white-box-testing,Java,Testing,Black Box Testing,White Box Testing,我一直在阅读白盒和黑盒测试 如果我没有错: 白盒测试软件程序的实现,而黑盒测试输入和输出 有谁能给我一个简单的例子,代码为这两种情况 先谢谢你 这里的代码是黑盒测试 class Schalter { private boolean { private boolean _istAn; public Schalter(boolean anfangsAn) { _istAn = anfangsAn;

我一直在阅读白盒和黑盒测试

如果我没有错:

白盒测试软件程序的实现,而黑盒测试输入和输出

有谁能给我一个简单的例子,代码为这两种情况

先谢谢你

这里的代码是黑盒测试

  class Schalter
  {
     private boolean
     {
       private boolean _istAn;
       public Schalter(boolean anfangsAn)
       {
          _istAn = anfangsAn;        
       }       
       public boolean istAn()
       {
          return _istAn;
       }   
       public void umschalten()
       {
         _istAn = !_istAn;
       }
  }

黑盒测试是一种测试方法,你不在乎程序如何操作输入;您只需检查输出是否对指定的输入有效

当您关心程序如何操作输入和输出时,白盒测试是一种测试方法


我想一个例子是,如果你在写一个排序算法的测试。黑盒测试只是检查输出是否按照预期进行了排序。白盒测试可能会检查排序是否正确,因为这取决于排序算法的实现。例如,合并排序是稳定的,而Quicksort的典型就地版本不是稳定的,尽管存在稳定的版本。

黑盒测试是一种测试方法,您不关心程序如何操作输入;您只需检查输出是否对指定的输入有效

当您关心程序如何操作输入和输出时,白盒测试是一种测试方法


我想一个例子是,如果你在写一个排序算法的测试。黑盒测试只是检查输出是否按照预期进行了排序。白盒测试可能会检查排序是否正确,因为这取决于排序算法的实现。例如,合并排序是稳定的,而Quicksort的典型就地版本不是稳定的,尽管存在稳定的版本。

Blackbox->您实际上只是在检查您为程序提供的输入是否得到了正确的输出

假设您有一个提示,要求您输入两位数字以获得数字的总和

输入2个数字:2 5 输出:2+5=7

这就是黑匣子的全部,真的

白色框,您可以查看它是如何发生的

你可以做一些正常的事情,比如

int adder(int firstNum, int secondNum)
{ 
    return firstNum + secondNum;
}
这比说像这样的话更有效:

int adder(int firstNum, int secondNum)
{
    int temp;
    for(int i = 0; i < (firstNum + secondNum + 1); i++)
        temp = i;
    return temp;
}
在白盒测试中,您将查看您的代码并找出哪个更有效和/或更易于阅读。显然,第一个原因是:

代码更简单,更容易理解 第一种方法不涉及寻找答案的循环,这比第一种方法占用更多的处理时间 第一种方法不会创建不需要的额外变量。这意味着跟踪数据所需的内存更少。 这是一个简单而武断的例子,但是当你进入更大的项目时,你会在进行单元测试时进行大量的白盒测试,以确定代码的较小部分是否有效,而当你开始将代码的较小部分集成到较大的项目中时,你通常会进行黑盒测试,以检查你是否仍然获得给定的正确输出输入


从另一个角度来看,您可以使用黑盒测试来查看您是否得到了错误的输出,如果是这样,那么您可以进行白盒测试来查看代码中的错误

Blackbox->您实际上只是在检查您为程序提供的输入是否得到了正确的输出

假设您有一个提示,要求您输入两位数字以获得数字的总和

输入2个数字:2 5 输出:2+5=7

这就是黑匣子的全部,真的

白色框,您可以查看它是如何发生的

你可以做一些正常的事情,比如

int adder(int firstNum, int secondNum)
{ 
    return firstNum + secondNum;
}
这比说像这样的话更有效:

int adder(int firstNum, int secondNum)
{
    int temp;
    for(int i = 0; i < (firstNum + secondNum + 1); i++)
        temp = i;
    return temp;
}
在白盒测试中,您将查看您的代码并找出哪个更有效和/或更易于阅读。显然,第一个原因是:

代码更简单,更容易理解 第一种方法不涉及寻找答案的循环,这比第一种方法占用更多的处理时间 第一种方法不会创建不需要的额外变量。这意味着跟踪数据所需的内存更少。 这是一个简单而武断的例子,但是当你进入更大的项目时,你会在进行单元测试时进行大量的白盒测试,以确定代码的较小部分是否有效,而当你开始将代码的较小部分集成到较大的项目中时,你通常会进行黑盒测试,以检查你是否仍然获得给定的正确输出输入

从另一个角度来看,您可以使用黑盒测试来查看您是否得到了错误的输出,如果是这样,那么您可以进行白盒测试来查看代码中的错误

简单地说,白盒测试是一种您知道 软件或任何应用程序的路径和编码。在白盒测试中设计测试用例需要编程技巧。白盒测试可以在单元测试、集成测试和系统测试中执行

在黑盒测试中,您只需要SRSSO软件需求规范来了解系统的功能以及客户的需求。这里测试人员的编程技能没有经过测试。通常在手动测试中,黑盒方法是遵循的。黑盒测试几乎在所有级别都进行,即单元测试、集成测试、系统测试和验收测试。

简单地说,白盒测试是一种您了解软件或任何应用程序的内部路径和编码的测试。在白盒测试中设计测试用例需要编程技巧。白盒测试可以在单元测试、集成测试和系统测试中执行

在黑盒测试中,您只需要SRSSO软件需求规范来了解系统的功能以及客户的需求。这里测试人员的编程技能没有经过测试。通常在手动测试中,黑盒方法是遵循的。黑盒测试几乎在所有级别进行,即单元测试、集成测试、系统测试和验收测试

在黑盒测试中,不考虑程序的结构。测试用例仅根据程序或模块的要求或规范确定,在选择测试用例时不考虑程序的内部结构。黑盒测试与程序的功能有关

在黑盒测试中,不考虑程序的结构。测试用例仅根据程序或模块的要求或规范确定,在选择测试用例时不考虑程序的内部结构。黑盒测试与程序的功能有关

白盒测试是对代码内部逻辑和结构的详细研究。白盒测试也称为玻璃测试或开盒测试。为了在应用程序上执行白盒测试,测试人员需要掌握代码内部工作的知识

白盒测试是对代码内部逻辑和结构的详细研究。白盒测试也称为玻璃测试或开盒测试。为了在应用程序上执行白盒测试,测试人员需要掌握代码内部工作的知识


摘自

@sy7请在您的问题中发布您的代码;作为评论发布时很难阅读。@sy7请在问题中发布您的代码;当作为评论发布时,很难阅读。