Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НПО - ПОИТ (Бахтизин).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

8.4. Направления тестирования по

Существует два основных направления тестирования ПО:

  1. статическое;

  2. динамическое.

Статическое тестирование является эффективным способом выявления дефектов на ранних этапах разработки ПО. Это позволяет достигать существенной экономии времени и затрат на разработку ПО. Оно предусматривает проверку любых промежуточных продуктов процесса разработки ПО (требования к ПО, программную архитектуру, исходные коды и т.п.). По существу статическое тестирование есть всё, что можно сделать с целью выявления дефектов без прогона исходного кода программы.

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

8.5. Принципы разработки тестов

Возможен целый спектр подходов и принципов к разработке тестов (рис. 8.1).

Из анализа рисунка видно, что возможны два крайних подхода к процессу разработки тестов.

Первый подход.

Данный подход соответствует левой границе спектра (см. рис. 8.1), и заключается в том, что ПО рассматривается как «черный ящик» (рис. 8.2), когда в процессе проектирования тестов структура ПО не интересует тестировщика. Данный метод называют методом «чёрного ящика» (black box testing method).

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

В общем случае тестировщика не интересует прохождение всех путей или ветвей программы. Его удовлетворяет тот факт, что ПО ведет себя так, как указано в спецификации.

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

Достоинства метода «чёрного ящика»:

  • тестирование выполняется тестировщиками, а не программистами и поэтому оно достаточно объективно;

  • тестировщику не обязательно знать программный код тестируемого ПО;

  • тестирование выполняется с точки зрения конечного пользователя, что важно для эксплуатации ПО пользователем;

  • тест-кейсы могут разрабатываться сразу после разработки спецификации требований и до начала кодирования;

Второй подход.

Данный подход заключается в изучении структуры ПО и ее логики (рис 8.3). Данный метод называют методом «белого ящика» (white box testing method).

Методы, которые рассматривают ПО как «белый ящик», называют структурными методами.

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

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

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

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

Существует также метод «серого ящика» (gray box testing method), сочетающий в себе нечто среднее между методами «белого ящика» и «чёрного ящика».