
- •По тестированию программного обеспечения
- •Способы обеспечения качества программного продукта
- •Организация тестирования
- •Спецификация программы
- •Разработка тестов
- •Управляющий граф программы
- •Основные проблемы тестирования
- •Критерии выбора тестов
- •Требования к идеальному критерию
- •Классы критериев
- •Структурные критерии
- •Функциональные критерии
- •Стохастические критерии
- •Мутационный критерий
- •Оценка покрытия программы и проекта
- •Методика интегральной оценки тестирования
- •Разновидности тестирования
- •Пользовательское тестирование
- •Качественные и количественные требования согласованности по скорости восприятия графической информации пользователем
- •Модульное тестирование
- •Особенности интеграционного тестирования для объектно-ориентированного программирования
- •Системное тестирование
- •Комбинирование уровней тестирования
- •Особенности индустриального тестирования
- •Автоматизация тестирования
- •Издержки тестирования
- •Качество программного продукта
- •Фазы процесса тестирования
- •Планирование тестирования
- •Типы тестирования
- •Подходы к разработке тестов
- •Документация и сопровождение тестов
- •Оценка качества тестов
- •Нагрузочное тестирование
- •Основные этапы нагрузочного тестирования
- •Основные виды нагрузочных тестов
- •Основные инструменты формирования нагрузки и сбора статистики при выполнении нагрузочного тестирования
- •Регрессионное тестирование
- •Цели и задачи регрессионного тестирования
- •Виды регрессионного тестирования
- •Управляемое регрессионное тестирование
- •Обоснование корректности метода отбора тестов
- •Классификация тестов при отборе
- •Возможности повторного использования тестов
- •Классификация выборочных методов
Классы критериев
Структурные критерии используют информацию о структуре программы (критерии «белого ящика»);
Функциональные критерии формулируются в описании требований к программному изделию (критерии «черного ящика»);
Критерии стохастического тестирования формулируются в терминах проверки наличия заданных свойств у приложения средствами проверки некоторой статистической гипотезы;
Мутационные критерии ориентированы на проверку свойств программного изделия на основе подхода Монте-Карло.
Структурные критерии
Структурные критерии основываются на основных элементах управляющего графа программы, операторах, ветвях, путях:
Критерий тестирования команд (критерий С0) — набор тестов в совокупности должен обеспечить прохождение каждой команды не менее одного раза. Слабый критерий. Используется в больших программных системах, где другие критерии применить невозможно.
Критерий тестирования ветвей (критерий С1) — набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза. Сильный и экономичный критерий, поскольку множество ветвей в тестируемом приложении конечно и не велико, используется в системах автоматизации тестирования.
Критерий тестирования путей (критерий С2) — набор тестов в совокупности должен обеспечить прохождение каждого пути не менее одного раза. Если программа содержит цикл, то число итераций ограничивается константой (часто — двум или количеством классов выходных путей).
Функциональные критерии
Функциональные критерии обеспечивают контроль степени выполнения требований заказчика в программном продукте. Поскольку требования формулируются к продукту в целом, они отражают взаимодействие тестируемого приложения с окружением.
При функциональном тестировании преимущественно используется метод «черного ящика».
Основная трудность функционального тестирования — трудоемкость работы тестировщиков, поскольку документы, фиксирующие требования к программному изделию, как правило, достаточно объемны.
Виды функциональных критериев:
Тестирование пунктов спецификации — проверка каждого тестируемого пункта не менее одного раза.
Тестирование классов входных данных — проверка представителя каждого класса входных данных не менее одного раза.
Тестирование правил — проверка каждого правила, если входные и выходные значения описываются набором правил некоторой грамматики.
Тестирование классов выходных данных — проверка представителя каждого класса выходных данных не менее одного раза.
Тестирование функций — проверка каждого действия, реализуемого тестируемым модулем, не менее одного раза.
Комбинированные критерии для программ и спецификаций —проверка всех комбинаций непротиворечивых условий программ и спецификаций не менее одного раза.
Стохастические критерии
Стохастические критерии применяются при тестировании сложных программных комплексов — когда набор детерминированных тестов имеет очень большую мощность.
Методика применения стохастических критериев:
Разработать программы;
Вычислить независимым способом значения
для соответствующих входных сигналов
и получить тестовый набор .
Протестировать приложение на тестовом наборе , используя детерминированный и стохастический способы контроля результатов:
Детерминированный (по случайным входным сигналам, сгенерированным имитатором).
Стохастический (по заранее известному закону распределения результатов).
Критерии стохастического тестирования:
Статистические методы принятия решений о совпадении гипотез о распределении случайных величин:
Метод Стьюдента (
),
Метод Хи-квадрат (
) и т.п.
Метод оценки скорости выявления ошибок; основан на модели, согласно которой тестирование прекращается, если оцененный интервал времени между текущей и следующей ошибкой слишком велик для фазы тестирования приложения.
Рисунок 12.2