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

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

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

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

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

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

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

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

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

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

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

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

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

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

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

Читайте также:
Почему в основной программе не виден цикл обработки сообщений

Управление качеством ПО. Лекция 3 часть 3. Метод белого ящика

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Печать («Негатив», I);

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

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

  • С = 1, Д = 5
  • С = -5, Д = 3
Читайте также:
Что такое ресторатор программа

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

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

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

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

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

Источник: buom.ru

Тестирование программ методами «белого ящика»

Цель работы: изучить методы тестирования логики программы, формализованные описания результатов тестирования и стандарты по составлению схем программ.

Подготовка к лабораторной работе

1. Ознакомиться с лекционным материалом по теме «Этапы разработки программного обеспечения. Тестирование и отладка программных продуктов» учебной дисциплины «Технология разработки программного обеспечения».

2. Изучить соответствующие разделы в изданиях [1, 2, 7, 8, 9, 37, 45].

3. Ознакомиться с разд. 5.2 данного пособия.

Теоретическая часть. Виды тестирования

Тестирование программного обеспечения включает в себя целый комплекс действий, аналогичных последовательности процессов разработки программного обеспечения. В него входят [7]:

• постановка задачи для теста;

• изучение результатов тестирования.

Наиболее важным является проектирование тестов. Существуют разные подходы к проектированию тестов.

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

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

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

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

Например, если требовалось написать программу для вычисления кубического корня, а программа фактически вычисляет корень квадратный, то реализация будет совершенно неправильной, даже если проверить все пути. Вторая проблема — отсутствующие пути. Если программа реализует спецификации да полностью (например, отсутствует такая специализированная функция, как проверка на отрицательное значение входных данных программы вычисления квадратного корня), никакое тестирование существующих путей не выявит такой ошибки. И наконец, проблема зависимости результатов тестирования от входных данных. Одни данные будут давать правильные результаты, а другие нет. Например, если для определения равенства трех чисел программируется выражение вида:

Читайте также:
Укажите какое требование входило в программу прогрессистов ликвидация самодержавия

то оно будет верным не для всех значений А, В и С (ошибка возникает в том случае, когда из двух значений В или С одно больше, а другое на столько же меньше А). Если концентрировать

внимание только на тестировании путей, нет гарантии, что эта ошибка будет выявлена.

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

Стратегия «белого ящика»

Существуют следующие методы тестирования по принципу «белого ящика»:

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

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

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

Пример.

Если для тестирования задать значения переменных А = 2, B= 0, Х= 3, будет реализован путь асе, т. е. каждый оператор программы выполнится один раз (рис. Л5.1, а). Но если внести в алгоритм ошибки — заменить в первом условии and на or, а во втором Х> 1 на Х 1 (рис. Л5.1, б), ни одна ошибка не будет обнаружена (табл. Л5.1).

Кроме того, путь аbd вообще не будет охвачен тестом, и если в нем есть ошибка, она также не будет обнаружена. В табл. Л5.1 ожидаемый результат определяется по блок-схеме на рис. Л5.1, а, а фактический — по рис. Л5.1, б.

Как видно из этой таблицы, ни одна из внесенных в алгоритм ошибок не будет обнаружена.

Таблица Л5.7. Результат тестирования методом покрытия операторов

Тест Ожидаемый результат Фактический результат Результат тестирования
А = 2, B = 0,x=3 Х=2,5 Х=2,5 Неуспешно

Рис. Л5.1. Пример алгоритма программы: а — правильный; б — с ошибкой

Источник: megaobuchalka.ru

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

тестирование отладки

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

Испытание черного ящика

Противоположностью тестирования белого ящика является тестирование черного ящика. Это тестирование с точки зрения внешнего или конечного пользователя. Тест Whitebox, с другой стороны, основан на внутренней работе приложения и вращается вокруг внутреннего тестирования.

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

Что мы проверяем в тестах White Box?

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

  • Внутренние защитные отверстия.
  • Сломанные или плохо структурированные пути в процессах кодирования.
  • Поток конкретного ввода через код.
  • Ожидаемые результаты.
  • Функциональность условных циклов.
  • Тестирование каждой процедуры, объекта и функции на индивидуальной основе.
Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru