Единичное тестирование, тестирование Black-box и тестирование белого ящика
Что такое модульное тестирование, тестирование Black-box и тестирование White-Box? Я googled, но все объяснения, которые я нашел, были очень техничными. Может ли кто-нибудь ответить на этот вопрос простым способом с помощью соответствующего примера?
Ответы
Ответ 1
В тестировании черного ящика вам все равно, как работают внутренние элементы проверяемой вещи. Вы вызываете открытый API и проверяете результат; вам все равно, что тестировалось, чтобы дать вам результат.
В тестах с белым ящиком вы заботитесь о том, как работают внутренние элементы проверяемой вещи. Поэтому вместо проверки результатов вашей вещи вы можете проверить правильность внутренних переменных проверяемой вещи.
Тестирование модулей - это способ тестирования программных компонентов. "Единица" проверяется. Вы можете выполнять черно-белую коробку с модульными тестами; концепция ортогональна тестированию белого/черного ящика.
Ответ 2
Очень нетехническое объяснение, лишенное каких-либо подробностей... Вот и получается.
-
Тестирование Blackbox: тестирование приложения без каких-либо знаний о работе внутреннего приложения
-
Тестирование Whitebox: тестирование приложения со знанием того, как работает внутреннее устройство, например, при наличии исходного кода во время выполнения теста.
-
Unit Testing: Здесь вы создаете тесты, которые напрямую взаимодействуют с вашим приложением. Вы проверили бы функцию в своем приложении и assert
, чтобы ответ возвращался с помощью value X
. Единичные тесты, как правило, но не всегда создаются самими разработчиками, тогда как если компания проводит тестирование белых ящиков и черных ящиков, это может сделать кто угодно.
Это очень простое объяснение.
Ответ 3
Тестирование Blackbox: это всегда тестирование на основе пользователей или клиентов, где тестирование выполняется на основании предоставленного требования. Это тестирование выполняется только тестировщиками.
Тестирование Whitebox: это проверка потока базы кода. Тестирование потока оператора условия, оператора цикла и т.д. Это в основном из перспективы разработчика.
Unit Testing: Это часть тестирования белого ящика, когда вы тестируете каждый метод кода с вашими тестовыми данными и утверждаете это. Теперь дни, проведенные тестировщиками и компаниями, изучают этот навык тестера, где они могут понимать код и алгоритмы.
Ответ 4
Тестирование Black Box:
- Тестер - это человек, а не разработчик.
- Тестер не знает, как была реализована система *
- Тестер сообщит о проблеме, когда ответ от системы на любой шаг теста не является ожидаемым результатом.
Тестирование White Box:
- Тестер - это человек, а не разработчик.
- Тестер знает, как была реализована система *
- Тестер сообщит о проблеме, когда ответ от системы на любой шаг теста не является ожидаемым результатом и, скорее всего, обнаружит проблему с самим тестом или с системой, несмотря на получение ожидаемых результатов.
Тестирование устройств:
- Тестер обычно является кодом, который проверяет конкретный модуль внутри системы. Например, в Java проект может иметь класс с именем Student и тестовый класс с именем StudentTest. Для каждой из функций в Student (например,
getGrades
) у StudentTest может быть 0 или более функций для их проверки (например, getGradesTest
). Это всего лишь один из способов сделать это.
- Код проверки обычно знает только ожидаемый результат для различных входных данных для части системы.
- Модульные тесты часто запускаются перед отправкой кода или запускаются автоматически при создании приложения для развертывания. Цель состоит в том, чтобы предотвратить появление множества ошибок в системе при добавлении, изменении или удалении функциональных возможностей.
* Объем знаний, известных между тестером черного ящика и тестером белого ящика, варьируется от организации к организации. Например, то, что я считаю тестированием юзабилити, другая компания может назвать тестирование черного ящика. Тестеры с белым ящиком в некоторых компаниях могут быть другим разработчиком (разработчиком QA), тогда как другая организация может не разрешить разработчикам завершать завершение тестирования. Тестер с черным ящиком может быть тем, у кого есть список инструкций, которые им нужно соблюдать и проверять, или это может быть кто-то, кто вообще знает, как работает система, но только не на особенно подробном уровне. Например:
Тестер с черным ящиком может или не может идентифицировать проблему, несмотря на то, что тестовый пример соответствует ожиданиям, например, кейс для электронной коммерции, который опускает шаг по сбору адреса доставки для гостей.
По сути, тестирование белого ящика и черного ящика редко выполняется строго. Большинство организаций имеют модульные тесты, тестирование разработчиков (которые могут или не могут быть официально задокументированы) зависит от последствий отказа), тестеров QA (черный, белый и каждый оттенок серого между ними), а также тестирование пользователей/(люди, которые должны участвовать во всем проекте, но в слабо работающих организациях появляются только в начале и в конце и отправляют завершенный проект обратно в проект до развертывания).