Тестирование «черного ящика»
Системы черного ящика | |
---|---|
Система | |
Черный ящик , машина Oracle | |
Методы и техники | |
Тестирование «черного ящика» , «черный ящик» | |
Связанные методы | |
Упреждение , Обфускация , Распознавание образов , Белый ящик , Тестирование белого ящика , Тестирование серого ящика , Идентификация системы | |
Основы | |
Априорная информация , Системы управления , Открытые системы , Исследование операций , Термодинамические системы | |
Тестирование «черного ящика», иногда называемое тестированием на основе спецификаций , [1] — это метод тестирования программного обеспечения , который проверяет функциональность приложения, не заглядывая в его внутреннюю структуру или работу. Этот метод тестирования можно применять практически на каждом уровне тестирования программного обеспечения: модульном , интеграционном , системном и приемочном . Тестирование «черного ящика» также используется в качестве метода тестирования на проникновение , когда этический хакер имитирует внешнее хакерство или атаку кибервойны, не зная об атакуемой системе.
Процедуры испытаний
[ редактировать ]Тестирование на основе спецификаций направлено на проверку функциональности программного обеспечения в соответствии с применимыми требованиями. [2] Этот уровень тестирования обычно требует, чтобы тестировщику были предоставлены подробные тестовые примеры , которые затем могут просто проверить, что для данного входного значения выходное значение (или поведение) либо «является», либо «не совпадает» с ожидаемым значением. указано в тестовом примере.
Специфических знаний кода приложения, его внутренней структуры и знаний программирования в целом не требуется. [3] Тестировщик знает, что должно делать программное обеспечение, но не знает, как оно это делает. Например, тестер знает, что конкретный входной сигнал возвращает определенный неизменный выходной результат, но не знает, как программное обеспечение вообще формирует выходные данные. [4]
Тестовые случаи
[ редактировать ]Тестовые примеры строятся вокруг спецификаций и требований , т. е. того, что приложение должно делать. Тестовые примеры обычно создаются на основе внешних описаний программного обеспечения, включая спецификации, требования и параметры проектирования. Хотя используемые тесты в основном носят функциональный характер, нефункциональные могут также использоваться тесты. Разработчик теста выбирает как допустимые, так и недопустимые входные данные и определяет правильный выходной результат, часто с помощью тестового оракула или предыдущего результата, который заведомо является хорошим, без каких-либо знаний о внутренней структуре тестового объекта.
Техники тест-дизайна
[ редактировать ]Типичные методы разработки тестов «черного ящика» включают тестирование таблицы решений , тестирование всех пар , разделение эквивалентности , анализ граничных значений , график причинно-следственных связей , угадывание ошибок , тестирование перехода состояний , тестирование вариантов использования , пользовательских историй тестирование , анализ предметной области и синтаксическое тестирование. . [5] [6]
Тестовое покрытие
[ редактировать ]Покрытие тестированием — это процент требований к программному обеспечению , которые проверяются методом «черного ящика» для системы или приложения. [7] Это контрастирует с кода , которое исследует внутреннюю работу программы и измеряет степень выполнения исходного кода программы покрытием при запуске набора тестов. [8] Измерение тестового покрытия позволяет быстро обнаружить и устранить дефекты, создать более полный набор тестов . и удалить тесты, не соответствующие заданным требованиям. [8] [9]
Эффективность
[ редактировать ]Тестирование «черного ящика» может быть необходимо для обеспечения правильной работы, но его недостаточно для защиты от сложных ситуаций или ситуаций высокого риска. [10] Преимущество метода черного ящика заключается в том, что не требуется никаких знаний программирования. Какие бы предубеждения ни были у программистов, у тестировщика скорее всего другой набор и он может подчеркивать разные области функциональности. С другой стороны, тестирование методом «черного ящика» похоже на «прогулку по темному лабиринту без фонарика». [11] Поскольку они не проверяют исходный код, бывают ситуации, когда тестировщик пишет множество тестовых примеров, чтобы проверить что-то, что можно было бы протестировать только одним тестовым примером, или оставляет некоторые части программы непроверенными.
См. также
[ редактировать ]- АВХ-тест
- Приемочное тестирование
- Слепой эксперимент
- Граничное тестирование
- Фазз-тестирование
- Тестирование серого ящика
- Проект Метасплоит
- Тестирование на вменяемость
- Дымовое тестирование
- Тестирование производительности программного обеспечения
- Тестирование программного обеспечения
- Стресс-тестирование
- Автоматизация тестирования
- Модульное тестирование
- Сканер безопасности веб-приложений
- Хакер в белой шляпе
- Тестирование белого ящика
Ссылки
[ редактировать ]- ^ Джерри Гао; Х.-С.Дж. Цао; Е Ву (2003). Тестирование и обеспечение качества компонентного программного обеспечения . Артех Хаус. стр. 170–. ISBN 978-1-58053-735-3 .
- ^ Лэйкок, Гилберт Т. (1993). Теория и практика тестирования программного обеспечения на основе спецификаций (PDF) (диссертация). Кафедра компьютерных наук Шеффилдского университета . Проверено 2 января 2018 г.
- ^ Милинд Г. Лимэй (2009). Тестирование программного обеспечения . Тата МакГроу-Хилл Образование. п. 216. ИСБН 978-0-07-013990-9 .
- ^ Паттон, Рон (2005). Тестирование программного обеспечения (2-е изд.). Индианаполис: Издательство Sams. ISBN 978-0672327988 .
- ^ Форгач, Иштван; Ковач, Аттила (2019). Практическое проектирование тестов: выбор традиционных и автоматизированных методов проектирования тестов . ISBN 978-1780174723 .
- ^ Блэк, Р. (2011). Прагматическое тестирование программного обеспечения: как стать эффективным и действенным специалистом по тестированию . Джон Уайли и сыновья. стр. 44–6. ISBN 978-1-118-07938-6 .
- ^ Стандартный словарь терминологии разработки программного обеспечения IEEE (технический отчет). ИИЭЭ . 1990. 610.12-1990.
- ^ Перейти обратно: а б «Покрытие кода против покрытия тестированием» . Браузерный стек . Проверено 13 апреля 2024 г.
- ^ Андрадес, Джосли (16 декабря 2023 г.). «8 лучших методов тестового покрытия в тестировании программного обеспечения» . ACCELQ Inc. Проверено 13 апреля 2024 г.
- ^ Бах, Джеймс (июнь 1999 г.). «Тестирование на основе рисков и требований» (PDF) . Компьютер . 32 (6): 113–114 . Проверено 19 августа 2008 г.
- ^ Савенков, Роман (2008). Как стать тестировщиком программного обеспечения . Роман Савенков Консалтинг. п. 159. ИСБН 978-0-615-23372-7 .
Внешние ссылки
[ редактировать ]- BCS SIGIST (Группа специалистов Британского компьютерного общества по тестированию программного обеспечения): Стандарт тестирования компонентов программного обеспечения , рабочий проект 3.4, 27 апреля 2001 г.