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

25 августа 2021 г.

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

Что такое тестирование белого ящика в программной инженерии?

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

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

  • Слабые места внутренней безопасности

  • Избыточные пути кода в процессах кодирования

  • Как код обрабатывает определенные входные данные

  • Ожидаемый результат

  • Правильно ли работают условные циклы

  • Индивидуальное тестирование каждой функции, оператора и объекта

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

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

Проще говоря, есть два шага к тестированию белого ящика:

1. Понять исходный код

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

2. Протестируйте программное обеспечение

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

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

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

  • Покрытие операторов: этот метод гарантирует, что каждая строка в коде проверяется хотя бы один раз, чтобы упростить поиск ошибочного кода.

  • Покрытие ветвей: с помощью этого метода каждый возможный путь или точка принятия решения программного приложения проверяется на точность.

  • Покрытие условий: проверяются все отдельные условия.

  • Множественное покрытие условий: все мыслимые комбинации всех мыслимых результатов условий проверяются по крайней мере один раз.

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

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

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

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

Хотя многие из этих методов используются тестировщиками, методы покрытия операторов и ветвей проверяют не менее 80-90% кода на наличие ошибок, чего обычно достаточно.

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

Для оценки удобства использования приложения или конкретного пакета программного обеспечения используется ряд типов тестирования:

Модульное тестирование

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

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

Утечки памяти часто приводят к замедлению работы программного приложения. Если это происходит, для проверки кода проводится тест обеспечения качества.

Тестирование на проникновение

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

Мутационное тестирование

Этот тест обычно используется для поиска лучших методов кодирования для расширения программного приложения.

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

Помня, что цель тестирования белого ящика — подтвердить все циклы и ответвления решений в коде, взгляните на этот простой пример:

void Printme (int c, int d) // Printme — это функция

{

интервал я знак равно с + д ;

Если (I > 0)

Печать (“Положительный”,I) ;

Еще

Печать (“Негатив”, I);

} // Конец исходного кода

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

  • С = 1, Д = 5

  • С = -5, Д = 3

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

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

К преимуществам тестирования программного обеспечения «белого ящика» относятся:

  • Оптимизация кода для поиска ошибок

  • Весь код тестируется, обеспечивая тщательную проверку

  • Он легко автоматизируется

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

Метод тестирования «белого ящика» помогает создавать качественный программный продукт, предоставляя наиболее непредвзятое мнение о коде.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *