Динамические техники тестирования программного обеспечения, их сравнительный анализ
Автор: Першина Т.А., Сгибнева С.С.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Основной раздел
Статья в выпуске: 8 (14), 2016 года.
Бесплатный доступ
Информационная безопасность, тестирование по, тестирование белого ящика, тестирование черного ящика, тестирование серого ящика
Короткий адрес: https://sciup.org/140269697
IDR: 140269697
Текст статьи Динамические техники тестирования программного обеспечения, их сравнительный анализ
Тестирование программного обеспечения - процесс исследования, испытания программного продукта, имеющий две различные цели:
-
• продемонстрировать разработчикам и заказчикам, что
- программа соответствует требованиям;
-
• выявить ситуации, в которых поведение программы является неправильным, нежелательным или не соответствующим спецификации
Динамические техники следующие:
-
1. Тестирование методом белого ящика. Это подробное исследование внутренней логики и структуры программы. При этом необходимо знание исходного кода.
-
2. Тестирование методом черного ящика. Данная техника не требует каких-либо знаний о внутренней работе приложения. Рассматриваются только основные аспекты системы, не связанные или мало связанные с ее внутренней логической структурой.
-
3. Тестирование методом серого ящика. Сочетает в себе предыдущие два подхода. Отладка с ограниченным знанием о
Преимущества: позволяет выявить ошибку в скрытом коде при удалении лишних строк; возможность использования побочных эффектов; максимальный охват достигается путем написания тестового сценария.
Недостатки: высокозатратный процесс, требующий квалифицированного отладчика; много путей останутся неисследованными, поскольку тщательная проверка всех возможных скрытых ошибок очень сложна; некоторая часть пропущенного кода останется незамеченной.
Преимущества: тестирование с точки зрения пользователя, не требует специальных знаний (например, конкретного языка программирования), позволяет найти проблемы в спецификациях, можно создавать тесты параллельно с кодом, тестировщик может быть отдален от разработчиков.
Недостатки: эффективность зависит от выбора конкретных тестовых значений, необходимость наличия четких и полных спецификаций, невозможность сконцентрироваться на сложных частях кода, трудность локализации причины дефекта, возможность не протестировать часть кода.
внутреннем функционировании приложения сочетается со знанием основных аспектов системы.
Преимущества: сочетание преимуществ техник белого и черного ящиков; тестировщик опирается на интерфейс и функциональную спецификацию, а не на исходный код; отладчик может создавать отличные тестовые сценарии; проверка производится с точки зрения пользователя, а не дизайнера программы; создание настраиваемых тестовых разработок; объективность.
Недостатки: тестовое покрытие ограничено, так как отсутствует доступ к исходному коду; сложность обнаружения дефектов в распределенных приложениях; многие пути остаются неисследованными; если разработчик программного обеспечения уже запускал проверку, то дальнейшее исследование может быть избыточным.
Чтобы иметь более ясное представление об основных отличиях динамических техник тестирования ПО, представим их виде таблицы и проведем сравнительную характеристику.
Аспект |
Метод черного ящика |
Метод серого ящика |
Метод белого ящика |
Наличие сведений о составе программы |
Анализируются только базовые аспекты |
Частичное знание о внутреннем устройстве программы |
Полный доступ к исходному коду |
Степень дробления программы |
Низкая |
Средняя |
Высокая |
Кто производит отладку? |
Конечные пользователи, тестировщики и разработчики |
Конечные пользователи, отладчики и девелоперы |
Разработчики и тестировщики |
База |
Тестирование базируется на внешних внештатных ситуациях |
Диаграммы БД, диаграммы потока данных, внутренние состояния, знание алгоритма и архитектуры |
Внутреннее устройство полностью известно |
Степень охвата |
Наименее исчерпывающая и требует минимума времени |
Средняя |
Потенциально наиболее исчерпывающая. Требует много времени |
Данные и внутренние границы |
Отладка исключительно методом проб и ошибок |
Могут проверяться домены данных и внутренние границы, если они известны |
Лучшее тестирование доменов данных и внутренних границ |
Пригодность для тестирования алгоритма |
Нет |
Нет |
Да |
Таблица 1. Сравнения между тремя формами отладки ПО
Таким образом мы можем сделать вывод, что единственно верного метода не существует, есть только те, которые лучше подходят для конкретного контекста. Структурные техники позволяют найти бесполезный или вредоносный код, но они сложны и неприменимы к крупным программам. Методы на основе спецификации – единственные, которые способны выявить недостающий код, но они не могут идентифицировать посторонний. Одни техники больше подходят для конкретного уровня тестирования, типа ошибок или контекста, чем другие.
Список литературы Динамические техники тестирования программного обеспечения, их сравнительный анализ
- Тренинги Intel Delta Course