Тестирование 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 вы должны посмотреть на свой код и выяснить, какой из них более эффективен и / или легче читается. Очевидно, первый, так как:
- код проще и понятнее
- Первый не включает циклы, чтобы найти ответ, это занимает больше времени обработки, чем первый
- Первый не создает дополнительных переменных, которые не нужны. Это означает, что для отслеживания данных требуется меньше памяти.
Это простой и произвольный пример, но когда вы попадаете в более крупные проекты, вы будете проводить много белого тестирования, когда будете выполнять модульные тесты, чтобы выяснить, работают ли меньшие сегменты кода, и вы обычно выполняете тестирование черного ящика при запуске интеграция небольших сегментов вашего кода в более крупный проект, чтобы проверить, получаете ли вы по-прежнему правильный вывод для данного ввода.
Еще один способ взглянуть на это - использовать тестирование черного ящика, чтобы увидеть, если вы получаете плохой вывод, и если да, то вы можете пойти и провести тестирование белого ящика, чтобы увидеть, что вы делали неправильно в своем коде.
Тестирование черного ящика - это способ тестирования, когда вам все равно, как программа манипулирует вводом; Вы только проверяете, являются ли выходные данные действительными для указанных входов.
Тестирование белого ящика - это способ тестирования, когда вам важно, как программа манипулирует вводом и выводом.
Я предполагаю, что один из примеров - это если вы пишете тест для сортировки алгоритмов. Тест черного ящика просто проверит, отсортированы ли результаты в соответствии с тем, что вы ожидаете. Тест whitebox может проверить, стабильна ли сортировка или нет, потому что это зависит от реализации алгоритма сортировки. Например, сортировка слиянием стабильна, в то время как типичная версия Quicksort на месте - нет (хотя стабильные версии существуют).
Проще говоря, тестирование белого ящика - это тестирование, при котором вам известны внутренние пути и кодирование программного обеспечения или любого приложения. Навыки программирования необходимы для разработки тестовых примеров в тестировании белой коробки. Тестирование белого ящика может выполняться в модульном тестировании, интеграционном тестировании и тестировании системы.
Во время тестирования в " черном ящике" вам просто требуется SRS (спецификация требований к программному обеспечению), чтобы понять, что делает система и каковы требования клиента. Здесь навыки программирования тестера не проверяются. Обычно при ручном тестировании Black Box применяется подход. Тестирование черного ящика проводится практически на всех уровнях: модульное тестирование, интеграционное тестирование, системное тестирование и приемочное тестирование.
При тестировании черного ящика структура программы не рассматривается. Контрольные тесты решаются исключительно на основе требований или спецификаций программы или модуля, а внутренняя часть программы не учитывается при выборе тестовых примеров. Тестирование черного ящика связано с функциональностью программы.
Поднято с https://in.answers.yahoo.com/question/index?qid=20101031090207AAbYHrB
Тестирование белого ящика - это детальное исследование внутренней логики и структуры кода. Тестирование белого ящика также называется тестированием стекла или открытого ящика. Чтобы выполнить тестирование "белого ящика" в приложении, тестировщик должен обладать знаниями о внутренней работе кода.
Отменено с http://www.tutorialspoint.com/software_testing/testing_methods.htm