Что такое тестирование WHITE Box? Методы, примеры и amp; Типы

Содержание:

Anonim

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

White Box Testing - это метод тестирования программного обеспечения, при котором проверяется внутренняя структура, дизайн и кодирование программного обеспечения для проверки потока ввода-вывода и улучшения дизайна, удобства использования и безопасности. При тестировании с использованием белого ящика код виден тестировщикам, поэтому его также называют тестированием с открытым ящиком, тестированием с открытым ящиком, тестированием с прозрачным ящиком, тестированием на основе кода и тестированием с использованием стеклянного ящика.

Это одна из двух частей подхода Box Testing к тестированию программного обеспечения. Его аналог, Blackbox testing, включает тестирование с точки зрения внешнего или конечного пользователя. С другой стороны, тестирование «белого ящика» в разработке программного обеспечения основано на внутренней работе приложения и вращается вокруг внутреннего тестирования.

Термин «WhiteBox» был использован из-за концепции прозрачного ящика. Название Clearbox или WhiteBox символизирует способность видеть сквозь внешнюю оболочку (или «коробку») программного обеспечения его внутреннюю работу. Точно так же «черный ящик» в «Тестировании черного ящика» символизирует невозможность увидеть внутреннюю работу программного обеспечения, так что можно проверить только опыт конечного пользователя.

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

  • Что такое тестирование белого ящика?
  • Что вы проверяете при тестировании «белого ящика»?
  • Как вы проводите тестирование «белого ящика»?
  • Пример тестирования WhiteBox
  • Методы тестирования белого ящика
  • Типы тестирования белого ящика
  • Инструменты тестирования белого ящика
  • Преимущества тестирования белого ящика
  • Недостатки тестирования WhiteBox

Что вы проверяете при тестировании «белого ящика»?

Тестирование белого ящика включает в себя тестирование программного кода на следующее:

  • Внутренние дыры в безопасности
  • Неработающие или плохо структурированные пути в процессах кодирования
  • Поток конкретных входных данных через код
  • Ожидаемый результат
  • Функциональность условных циклов
  • Индивидуальное тестирование каждого оператора, объекта и функции

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

Нажмите здесь, если видео недоступно

Как вы проводите тестирование «белого ящика»?

Чтобы дать вам упрощенное объяснение тестирования белого ящика, мы разделили его на два основных этапа . Вот что делают тестировщики при тестировании приложения с использованием метода тестирования белого ящика:

ШАГ 1) ПОНИМАТЬ ИСХОДНЫЙ КОД

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

Шаг 2) СОЗДАЙТЕ ТЕСТОВЫЕ СЛУЧАИ И ВЫПОЛНИТЕ

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

Пример тестирования WhiteBox

Рассмотрим следующий фрагмент кода

Printme (int a, int b) {------------ Printme - это функцияint результат = a + b;Если (результат> 0)Печать («Положительно», результат)ЕщеПечать («Отрицательный», результат)} ----------- Конец исходного кода 

Целью тестирования WhiteBox в программной инженерии является проверка всех ветвей принятия решений, циклов, операторов в коде.

Чтобы проверить утверждения в приведенном выше примере тестирования белого ящика, тестовые примеры WhiteBox будут

  • А = 1, В = 1
  • А = -1, В = -3

Методы тестирования белого ящика

Основным методом тестирования белого ящика является анализ покрытия кода. Анализ покрытия кода устраняет пробелы в наборе тестовых примеров. Он определяет области программы, которые не проверяются набором тестовых примеров. После выявления пробелов вы создаете тестовые примеры для проверки непроверенных частей кода, тем самым повышая качество программного продукта.

Доступны автоматизированные инструменты для выполнения анализа покрытия кода. Ниже приведены несколько методов анализа покрытия, которые может использовать тестер:

Охват утверждений : - Этот метод требует, чтобы все возможные утверждения в коде были протестированы хотя бы один раз в процессе тестирования разработки программного обеспечения.

Охват ветвей - этот метод проверяет все возможные пути (if-else и другие условные циклы) программного приложения.

Помимо вышеперечисленного, существует множество типов покрытия, таких как покрытие условий, покрытие нескольких условий, покрытие пути, покрытие функций и т. Д. Каждый метод имеет свои достоинства и пытается протестировать (охватить) все части программного кода. Используя покрытие Statement и Branch, вы обычно получаете покрытие кода на 80-90%, чего достаточно. Ниже приведены важные методы тестирования WhiteBox:

  • Покрытие заявления
  • Покрытие решений
  • Покрытие филиала
  • Покрытие условий
  • Покрытие множественных условий
  • Покрытие конечного автомата
  • Покрытие пути
  • Тестирование потока управления
  • Тестирование потока данных

Обратитесь к этой статье, чтобы узнать больше о https://www.guru99.com/code-coverage.html.

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

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

  • Модульное тестирование: часто это первый тип тестирования приложения. Модульное тестирование выполняется для каждого модуля или блока кода по мере его разработки. Модульное тестирование в основном выполняется программистом. Как разработчик программного обеспечения вы разрабатываете несколько строк кода, одну функцию или объект и тестируете их, чтобы убедиться, что они работают, прежде чем продолжить. Модульное тестирование помогает выявить большинство ошибок на ранних этапах жизненного цикла разработки программного обеспечения. Ошибки, обнаруженные на этом этапе, дешевле и их легко исправить.

  • Тестирование на утечки памяти. Утечки памяти являются основными причинами более медленной работы приложений. Специалист по обеспечению качества, имеющий опыт обнаружения утечек памяти, необходим в случаях, когда у вас медленно работает программное обеспечение.

Помимо вышеуказанного, несколько типов тестирования являются частью тестирования как черного ящика, так и тестирования белого ящика. Они перечислены ниже

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

Инструменты тестирования белого ящика

Ниже приведен список лучших инструментов тестирования белого ящика.

  • Parasoft Jtest
  • EclEmma
  • NUnit
  • PyUnit
  • HTMLUnit
  • CppUnit

Преимущества тестирования белого ящика

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

Недостатки тестирования WhiteBox

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

Конечные примечания:

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