Учебники

Тестирование программного обеспечения — Методы

Существуют разные методы тестирования программного обеспечения. В этой главе кратко описаны доступные методы.

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

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

В следующей таблице перечислены преимущества и недостатки тестирования черного ящика.

преимущества Недостатки
Хорошо подходит и эффективен для больших сегментов кода. Ограниченный охват, поскольку фактически выполняется только выбранное количество тестовых сценариев.
Код доступа не требуется. Неэффективное тестирование из-за того, что тестер имеет только ограниченные знания о приложении.
Четко отделяет точку зрения пользователя от точки зрения разработчика через четко определенные роли. Слепое покрытие, поскольку тестер не может ориентироваться на определенные сегменты кода или области, подверженные ошибкам.
Большое количество тестировщиков средней квалификации могут тестировать приложение без знания реализации, языка программирования или операционных систем. Тестовые случаи сложно спроектировать.

Тестирование белого ящика

Тестирование белого ящика — это детальное исследование внутренней логики и структуры кода. Тестирование белого ящика также называется тестированием стекла или тестированием открытого ящика . Чтобы выполнить тестирование « белого ящика» приложения, тестировщик должен знать внутреннюю работу кода.

Тестировщик должен заглянуть в исходный код и выяснить, какой блок / блок кода ведет себя неадекватно.

В следующей таблице перечислены преимущества и недостатки тестирования белого ящика.

преимущества Недостатки
Поскольку тестировщик знает исходный код, становится очень легко определить, какой тип данных может помочь в эффективном тестировании приложения. В связи с тем, что для тестирования белого ящика требуется опытный тестировщик, затраты увеличиваются.
Это помогает в оптимизации кода. Иногда невозможно заглянуть в каждый уголок и найти скрытые ошибки, которые могут создать проблемы, так как многие пути не пройдут проверку.
Дополнительные строки кода могут быть удалены, что может привести к скрытым дефектам. Сложно проводить тестирование белого ящика, так как для этого требуются специализированные инструменты, такие как анализаторы кода и средства отладки.
Благодаря знаниям тестера о коде максимальный охват достигается при написании тестового сценария.

Тестирование серая коробка

Тестирование «серого ящика» — это метод тестирования приложения с ограниченными знаниями о внутренней работе приложения. В тестировании программного обеспечения фраза «чем больше вы знаете, тем лучше несет большой вес при тестировании приложения».

Владение доменом системы всегда дает тестеру преимущество над человеком с ограниченными знаниями в предметной области. В отличие от тестирования «черного ящика», когда тестировщик проверяет только пользовательский интерфейс приложения; при тестировании в виде серого ящика тестер имеет доступ к проектной документации и базе данных. Обладая этими знаниями, тестировщик может подготовить лучшие тестовые данные и тестовые сценарии при составлении плана тестирования.

преимущества Недостатки
Предлагает комбинированные преимущества тестирования «черного ящика» и «белого ящика», где это возможно. Поскольку доступ к исходному коду недоступен, возможность просмотра кода и покрытия тестами ограничена.
Тестеры «серого ящика» не полагаются на исходный код; вместо этого они полагаются на определение интерфейса и функциональные спецификации. Тесты могут быть избыточными, если разработчик программного обеспечения уже выполнил тестовый пример.
На основании доступной ограниченной информации тестировщик «серого ящика» может разработать отличные сценарии тестирования, особенно в отношении протоколов связи и обработки типов данных. Тестирование каждого возможного входного потока нереально, потому что это займет неоправданное количество времени; поэтому многие пути к программам останутся непроверенными.
Тест проводится с точки зрения пользователя, а не дизайнера.

Сравнение методов тестирования

В следующей таблице перечислены пункты, которые различают тестирование черного ящика, тестирование серого ящика и тестирование белого ящика.