白盒和黑盒测试

时间:2014-02-28 16:16:45

标签: java testing black-box-testing white-box-testing

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

如果我没错:

Whitebox测试软件程序的实现,但黑盒测试输入和输出。

有人可以给我一个关于这两种情况的简单代码的例子吗?

提前谢谢。

所以,这里的代码是黑盒测试吗?

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

5 个答案:

答案 0 :(得分:8)

Blackbox - >你真的只是在检查你给你的程序输入的输出是否正确。

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

输入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;
}

在白盒测试中,您将查看代码并找出哪种代码更高效和/或更易于阅读。显然,第一个是:

  1. 代码更简单易懂
  2. 第一个不涉及循环以找到答案,这比第一个
  3. 需要更多的处理时间
  4. 第一个不会创建不需要的额外变量。这意味着需要更少的内存来跟踪数据。
  5. 这是一个简单而随意的例子,但是当你进入更大的项目时,你会进行大量的白盒测试,当你进行单元测试以确定代码的较小部分是否有效并且你通常会进行黑盒测试当你开始将代码的较小部分集成到较大的项目中时,检查你是否仍然获得了给定输入的正确输出。

    另一种看待它的方法你可以使用黑盒测试来查看你是否输出错误,如果是,那么你可以进入并进行白盒测试,看看你的代码中出错了。

答案 1 :(得分:4)

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

当你关心程序如何操作输入以及输出时,白盒测试是一种测试方法。

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

  

在Black box测试中,不考虑程序的结构。测试用例仅根据程序或模块的要求或规范来决定,并且不考虑程序的内部选择测试用例。黑盒测试涉及程序的功能。

取自https://in.answers.yahoo.com/question/index?qid=20101031090207AAbYHrB

答案 4 :(得分:1)

  

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

取自http://www.tutorialspoint.com/software_testing/testing_methods.htm