Тестирование Whitebox и Blackbox

Я читал для тестирования whitebox и blackbox.

Если я не ошибаюсь:

Whitebox тестирует реализацию Программы, но blackbox проверяет входы и выходы.

Может кто-нибудь дать мне пример простого кода для обоих случаев?

Заранее спасибо.

Итак, код здесь тестирование черного ящика?

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

5 ответов

Решение

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

В тестировании whitebox вы должны посмотреть на свой код и выяснить, какой из них более эффективен и / или легче читается. Очевидно, первый, так как:

  1. код проще и понятнее
  2. Первый не включает циклы, чтобы найти ответ, это занимает больше времени обработки, чем первый
  3. Первый не создает дополнительных переменных, которые не нужны. Это означает, что для отслеживания данных требуется меньше памяти.

Это простой и произвольный пример, но когда вы попадаете в более крупные проекты, вы будете проводить много белого тестирования, когда будете выполнять модульные тесты, чтобы выяснить, работают ли меньшие сегменты кода, и вы обычно выполняете тестирование черного ящика при запуске интеграция небольших сегментов вашего кода в более крупный проект, чтобы проверить, получаете ли вы по-прежнему правильный вывод для данного ввода.

Еще один способ взглянуть на это - использовать тестирование черного ящика, чтобы увидеть, если вы получаете плохой вывод, и если да, то вы можете пойти и провести тестирование белого ящика, чтобы увидеть, что вы делали неправильно в своем коде.

Тестирование черного ящика - это способ тестирования, когда вам все равно, как программа манипулирует вводом; Вы только проверяете, являются ли выходные данные действительными для указанных входов.

Тестирование белого ящика - это способ тестирования, когда вам важно, как программа манипулирует вводом и выводом.

Я предполагаю, что один из примеров - это если вы пишете тест для сортировки алгоритмов. Тест черного ящика просто проверит, отсортированы ли результаты в соответствии с тем, что вы ожидаете. Тест whitebox может проверить, стабильна ли сортировка или нет, потому что это зависит от реализации алгоритма сортировки. Например, сортировка слиянием стабильна, в то время как типичная версия Quicksort на месте - нет (хотя стабильные версии существуют).

Проще говоря, тестирование белого ящика - это тестирование, при котором вам известны внутренние пути и кодирование программного обеспечения или любого приложения. Навыки программирования необходимы для разработки тестовых примеров в тестировании белой коробки. Тестирование белого ящика может выполняться в модульном тестировании, интеграционном тестировании и тестировании системы.

Во время тестирования в " черном ящике" вам просто требуется SRS (спецификация требований к программному обеспечению), чтобы понять, что делает система и каковы требования клиента. Здесь навыки программирования тестера не проверяются. Обычно при ручном тестировании Black Box применяется подход. Тестирование черного ящика проводится практически на всех уровнях: модульное тестирование, интеграционное тестирование, системное тестирование и приемочное тестирование.

При тестировании черного ящика структура программы не рассматривается. Контрольные тесты решаются исключительно на основе требований или спецификаций программы или модуля, а внутренняя часть программы не учитывается при выборе тестовых примеров. Тестирование черного ящика связано с функциональностью программы.

Поднято с https://in.answers.yahoo.com/question/index?qid=20101031090207AAbYHrB

Тестирование белого ящика - это детальное исследование внутренней логики и структуры кода. Тестирование белого ящика также называется тестированием стекла или открытого ящика. Чтобы выполнить тестирование "белого ящика" в приложении, тестировщик должен обладать знаниями о внутренней работе кода.

Отменено с http://www.tutorialspoint.com/software_testing/testing_methods.htm

Другие вопросы по тегам