stringtranslate.com

Тестирование методом черного ящика

Тестирование черного ящика, иногда называемое тестированием на основе спецификаций , [1] — это метод тестирования программного обеспечения , который проверяет функциональность приложения, не заглядывая в его внутренние структуры или работу. Этот метод тестирования может быть применен практически к любому уровню тестирования программного обеспечения: модульному , интеграционному , системному и приемочному . Тестирование черного ящика также используется как метод в тестировании на проникновение , где этичный хакер имитирует внешнюю хакерскую или кибератаку, не имея никаких знаний об атакуемой системе.

Процедуры испытаний

Тестирование на основе спецификаций направлено на проверку функциональности программного обеспечения в соответствии с применимыми требованиями. [2] Этот уровень тестирования обычно требует предоставления тестировщику подробных тестовых случаев , который затем может просто проверить, что для заданного ввода выходное значение (или поведение) либо «является», либо «не является» ожидаемым значением, указанным в тестовом случае.

Пример модели черного ящика, где определенный вход производит определенный выход

Специфические знания кода приложения, внутренней структуры и знания программирования в целом не требуются. [3] Тестировщик знает, что программное обеспечение должно делать, но не знает, как оно это делает. Например, тестировщик знает, что определенный ввод возвращает определенный, неизменный вывод, но не знает, как программное обеспечение производит вывод в первую очередь. [4]

Тестовые случаи

Тестовые случаи строятся вокруг спецификаций и требований , т. е. того, что приложение должно делать. Тестовые случаи обычно выводятся из внешних описаний программного обеспечения, включая спецификации, требования и параметры проектирования. Хотя используемые тесты в основном носят функциональный характер, могут использоваться и нефункциональные тесты. Разработчик тестов выбирает как допустимые, так и недопустимые входные данные и определяет правильный выходной сигнал, часто с помощью тестового оракула или предыдущего результата, который заведомо хорош, без каких-либо знаний о внутренней структуре тестового объекта.

Методы проектирования тестов

Типичные методы проектирования тестов «черного ящика» включают в себя тестирование таблиц решений , тестирование всех пар , разбиение эквивалентности , анализ граничных значений , причинно-следственный график , предположение об ошибках , тестирование переходов состояний , тестирование вариантов использования , тестирование пользовательских историй , анализ домена и тестирование синтаксиса. [5] [6]

Тестовое покрытие

Тестовое покрытие относится к проценту требований к программному обеспечению , которые проверяются методом черного ящика для системы или приложения. [7] Это контрастирует с покрытием кода , которое изучает внутреннюю работу программы и измеряет степень выполнения исходного кода программы при запуске набора тестов. [8] Измерение тестового покрытия позволяет быстро обнаруживать и устранять дефекты, создавать более полный набор тестов и удалять тесты, которые не соответствуют заданным требованиям. [8] [9]

Эффективность

Тестирование методом черного ящика может быть необходимо для обеспечения корректной функциональности, но его недостаточно для защиты от сложных или высокорисковых ситуаций. [10] Преимущество метода черного ящика в том, что не требуется никаких знаний в области программирования. Какие бы предубеждения ни были у программистов, у тестировщика, вероятно, другой набор, и он может подчеркивать разные области функциональности. С другой стороны, тестирование методом черного ящика называют «прогулкой в ​​темном лабиринте без фонарика». [11] Поскольку они не проверяют исходный код, возникают ситуации, когда тестировщик пишет много тестовых случаев, чтобы проверить что-то, что можно было бы протестировать только одним тестовым случаем, или оставляет некоторые части программы непротестированными.

Смотрите также

Ссылки

  1. ^ Джерри Гао; Х.-С. Дж. Цао; Йе Ву (2003). Тестирование и обеспечение качества компонентного программного обеспечения. Artech House. стр. 170–. ISBN 978-1-58053-735-3.
  2. ^ Лейкок, Гилберт Т. (1993). Теория и практика тестирования программного обеспечения на основе спецификаций (PDF) (диссертация). Кафедра компьютерных наук, Шеффилдский университет . Получено 2 января 2018 г.
  3. ^ Milind G. Limaye (2009). Тестирование программного обеспечения. Tata McGraw-Hill Education. стр. 216. ISBN 978-0-07-013990-9.
  4. ^ Паттон, Рон (2005). Тестирование программного обеспечения (2-е изд.). Индианаполис: Sams Publishing. ISBN 978-0672327988.
  5. ^ Форгач, Иштван; Ковач, Аттила (2019). Практическое проектирование тестов: выбор традиционных и автоматизированных методов проектирования тестов . ISBN 978-1780174723.
  6. ^ Блэк, Р. (2011). Прагматичное тестирование программного обеспечения: как стать эффективным и действенным профессионалом в области тестирования. John Wiley & Sons. стр. 44–6. ISBN 978-1-118-07938-6.
  7. ^ Стандартный глоссарий терминологии программной инженерии IEEE (Технический отчет). IEEE . 1990. 610.12-1990.
  8. ^ ab "Покрытие кода против покрытия тестами". BrowserStack . Получено 2024-04-13 .
  9. ^ Андрадес, Геосли (2023-12-16). "8 лучших методов тестового покрытия при тестировании программного обеспечения". ACCELQ Inc. Получено 2024-04-13 .
  10. ^ Бах, Джеймс (июнь 1999 г.). «Тестирование на основе рисков и требований» (PDF) . Компьютер . 32 (6): 113–114 . Получено 19 августа 2008 г. .
  11. ^ Савенков, Роман (2008). Как стать тестировщиком ПО . Роман Савенков Консалтинг. стр. 159. ISBN 978-0-615-23372-7.

Внешние ссылки