1

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

如果我没有错:

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

有人可以给我一个针对这两种情况的简单代码示例吗?

先感谢您。

那么,这里的代码是黑盒测试吗?

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

5 回答 5

9

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. 第一个不会创建不需要的额外变量。这意味着跟踪数据所需的内存更少。

这是一个简单且随意的示例,但是当您进入较大的项目时,您将进行大量白盒测试,当您进行单元测试以确定您的代码的较小部分是否有效时,您通常会在开始时进行黑盒测试将代码的较小部分集成到较大的项目中,以检查给定输入是否仍然获得正确的输出。

另一种看待它的方法是,您可以使用黑盒测试来查看您是否得到了错误的输出,如果是这样,您可以进入并进行白盒测试,看看您在代码中做错了什么。

于 2014-02-28T16:56:39.660 回答
4

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

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

我想一个例子是如果你正在编写一个排序算法的测试。黑盒测试将简单地检查输出是否根据您的期望进行排序。白盒测试可能会检查排序是否稳定,因为这取决于排序算法的实现。例如,合并排序是稳定的,而快速排序的典型就地版本不是(尽管确实存在稳定版本)。

于 2014-02-28T16:19:10.607 回答
2

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

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

于 2014-03-13T11:38:13.497 回答
2

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

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

于 2014-06-13T11:52:53.910 回答
1

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

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

于 2014-06-13T12:30:54.953 回答