Тестирование «черного ящика» — это метод тестирования программного обеспечения , который проверяет функциональность приложения, не заглядывая в его внутреннюю структуру или работу. Этот метод тестирования можно применять практически на каждом уровне тестирования программного обеспечения: модульном , интеграционном , системном и приемочном . Иногда его называют тестированием на основе спецификаций. [1]
Специфических знаний кода приложения, его внутренней структуры и знаний программирования в целом не требуется. [2] Тестировщик знает, что должно делать программное обеспечение, но не знает, как оно это делает. Например, тестер знает, что конкретный входной сигнал возвращает определенный неизменный выходной результат, но не знает, как программное обеспечение вообще формирует выходные данные. [3]
Тестовые примеры строятся вокруг спецификаций и требований, т. е. того, что приложение должно делать. Тестовые примеры обычно создаются на основе внешних описаний программного обеспечения, включая спецификации, требования и параметры проектирования. Хотя используемые тесты в основном носят функциональный характер, могут также использоваться нефункциональные тесты. Разработчик теста выбирает как допустимые, так и недопустимые входные данные и определяет правильный выходной результат, часто с помощью тестового оракула или предыдущего результата, который, как известно, является хорошим, без каких-либо знаний о внутренней структуре тестового объекта.
Типичные методы проектирования тестов «черного ящика» включают в себя: [4]
В тестировании на проникновение тестирование «черного ящика» относится к методу, при котором этический хакер не знает об атакуемой системе. Целью теста на проникновение «черного ящика» является имитация внешнего взлома или атаки кибервойны.