Динамическое тестирование черного ящика против статического тестирования белого ящика
Если бы нам пришлось выбирать между динамическим тестом черного ящика и статическим тестом белого ящика, какой из них нам лучше выбрать? Динамическое тестирование Blackbox - это тестирование без понимания базового кода, тогда как тестирование статического белого ящика - это проверка кода без его выполнения.
2 ответа
Если вам абсолютно необходимо сделать выбор, пройдите тестирование черного ящика. Это не поможет, если код в идеальной форме, если он делает что-то не так. Тестирование также должно подтвердить, что продукт действительно может быть использован для решения проблем клиентов.
Тем не менее, я не понимаю, почему вы должны (или могли) когда-либо ограничивать тестирование только одним типом. Разные стратегии выявляют разные проблемы, и лучше делать немного каждого, чем тратить все время на выполнение одной вещи.
Это зависит от требований, но предпочтительным является статическое тестирование белого ящика из-за следующих моментов:
В целом, "белая коробка" выявляет более высокую распространенность многих категорий, что можно объяснить более низкими показателями FN(ложноотрицательные). Статика лучше, чем динамика в 5 из 7 категорий:
- Прогноз учетных данных / сеанса
- SQL-инъекция
- Обход пути
- Недостаточная авторизация
- ОС командование
Внедрение SQL, обход пути и управление ОС, вероятно, лучше обнаруживаются статическим, потому что это хорошие методы для статического с его 100% покрытием кода.