Существуют разные методы тестирования программного обеспечения. В этой главе кратко описаны доступные методы.
Тестирование черного ящика
Техника тестирования, не имеющая каких-либо знаний о внутренней работе приложения, называется «черным ящиком». Тестер не обращает внимания на архитектуру системы и не имеет доступа к исходному коду. Как правило, при выполнении теста черного ящика тестер взаимодействует с пользовательским интерфейсом системы, предоставляя входные данные и анализируя выходные данные, не зная, как и где обрабатываются входные данные.
В следующей таблице перечислены преимущества и недостатки тестирования черного ящика.
преимущества | Недостатки |
---|---|
Хорошо подходит и эффективен для больших сегментов кода. | Ограниченный охват, поскольку фактически выполняется только выбранное количество тестовых сценариев. |
Код доступа не требуется. | Неэффективное тестирование из-за того, что тестер имеет только ограниченные знания о приложении. |
Четко отделяет точку зрения пользователя от точки зрения разработчика через четко определенные роли. | Слепое покрытие, поскольку тестер не может ориентироваться на определенные сегменты кода или области, подверженные ошибкам. |
Большое количество тестировщиков средней квалификации могут тестировать приложение без знания реализации, языка программирования или операционных систем. | Тестовые случаи сложно спроектировать. |
Тестирование белого ящика
Тестирование белого ящика — это детальное исследование внутренней логики и структуры кода. Тестирование белого ящика также называется тестированием стекла или тестированием открытого ящика . Чтобы выполнить тестирование « белого ящика» приложения, тестировщик должен знать внутреннюю работу кода.
Тестировщик должен заглянуть в исходный код и выяснить, какой блок / блок кода ведет себя неадекватно.
В следующей таблице перечислены преимущества и недостатки тестирования белого ящика.
преимущества | Недостатки |
---|---|
Поскольку тестировщик знает исходный код, становится очень легко определить, какой тип данных может помочь в эффективном тестировании приложения. | В связи с тем, что для тестирования белого ящика требуется опытный тестировщик, затраты увеличиваются. |
Это помогает в оптимизации кода. | Иногда невозможно заглянуть в каждый уголок и найти скрытые ошибки, которые могут создать проблемы, так как многие пути не пройдут проверку. |
Дополнительные строки кода могут быть удалены, что может привести к скрытым дефектам. | Сложно проводить тестирование белого ящика, так как для этого требуются специализированные инструменты, такие как анализаторы кода и средства отладки. |
Благодаря знаниям тестера о коде максимальный охват достигается при написании тестового сценария. |
Тестирование серая коробка
Тестирование «серого ящика» — это метод тестирования приложения с ограниченными знаниями о внутренней работе приложения. В тестировании программного обеспечения фраза «чем больше вы знаете, тем лучше несет большой вес при тестировании приложения».
Владение доменом системы всегда дает тестеру преимущество над человеком с ограниченными знаниями в предметной области. В отличие от тестирования «черного ящика», когда тестировщик проверяет только пользовательский интерфейс приложения; при тестировании в виде серого ящика тестер имеет доступ к проектной документации и базе данных. Обладая этими знаниями, тестировщик может подготовить лучшие тестовые данные и тестовые сценарии при составлении плана тестирования.
преимущества | Недостатки |
---|---|
Предлагает комбинированные преимущества тестирования «черного ящика» и «белого ящика», где это возможно. | Поскольку доступ к исходному коду недоступен, возможность просмотра кода и покрытия тестами ограничена. |
Тестеры «серого ящика» не полагаются на исходный код; вместо этого они полагаются на определение интерфейса и функциональные спецификации. | Тесты могут быть избыточными, если разработчик программного обеспечения уже выполнил тестовый пример. |
На основании доступной ограниченной информации тестировщик «серого ящика» может разработать отличные сценарии тестирования, особенно в отношении протоколов связи и обработки типов данных. | Тестирование каждого возможного входного потока нереально, потому что это займет неоправданное количество времени; поэтому многие пути к программам останутся непроверенными. |
Тест проводится с точки зрения пользователя, а не дизайнера. |
Сравнение методов тестирования
В следующей таблице перечислены пункты, которые различают тестирование черного ящика, тестирование серого ящика и тестирование белого ящика.