- •По тестированию программного обеспечения
- •Способы обеспечения качества программного продукта
- •Организация тестирования
- •Спецификация программы
- •Разработка тестов
- •Управляющий граф программы
- •Основные проблемы тестирования
- •Критерии выбора тестов
- •Требования к идеальному критерию
- •Классы критериев
- •Структурные критерии
- •Функциональные критерии
- •Стохастические критерии
- •Мутационный критерий
- •Оценка покрытия программы и проекта
- •Методика интегральной оценки тестирования
- •Разновидности тестирования
- •Пользовательское тестирование
- •Качественные и количественные требования согласованности по скорости восприятия графической информации пользователем
- •Модульное тестирование
- •Особенности интеграционного тестирования для объектно-ориентированного программирования
- •Системное тестирование
- •Комбинирование уровней тестирования
- •Особенности индустриального тестирования
- •Автоматизация тестирования
- •Издержки тестирования
- •Качество программного продукта
- •Фазы процесса тестирования
- •Планирование тестирования
- •Типы тестирования
- •Подходы к разработке тестов
- •Документация и сопровождение тестов
- •Оценка качества тестов
- •Нагрузочное тестирование
- •Основные этапы нагрузочного тестирования
- •Основные виды нагрузочных тестов
- •Основные инструменты формирования нагрузки и сбора статистики при выполнении нагрузочного тестирования
- •Регрессионное тестирование
- •Цели и задачи регрессионного тестирования
- •Виды регрессионного тестирования
- •Управляемое регрессионное тестирование
- •Обоснование корректности метода отбора тестов
- •Классификация тестов при отборе
- •Возможности повторного использования тестов
- •Классификация выборочных методов
Основные инструменты формирования нагрузки и сбора статистики при выполнении нагрузочного тестирования
С использованием общего ПО для сбора статистики, например, Cacti, Nagios, Zabbix, mrtg, Mozilla Firefox (Firebug), Google Chrome (Диспетчер задач, Инструменты разработчика) и др.
С использованием общесистемного ПО ОС GNU Linux (top, vmstat, iotop, iostat, sysstat, sar, sockstat, sysstat и др.)
С использованием ПО, специально разработанного для формирования нагрузки (ab, httperf, Jmeter, Grinder для java-серверов, dnsperf, iperf, netperf и др.).
Регрессионное тестирование
Регрессионное тестирование — вид тестирования, который производится при внесении изменений на этапе системного тестирования или сопровождения продукта. Позволяет убедиться, что изменения не вызвали нежелательных побочных эффектов.
Если модифицированный код оказал влияние на функциональность программы (на этапе сопровождения), то говорят о регрессионном эффекте.
Пример.
Программист, получив отчет об ошибке, анализирует исходный код, находит ошибку, исправляет ее и тестирует результат.
Тестировщик должен проверить и утвердить исправление ошибки, попробовать воспроизвести ошибку другим способом, протестировать последствия исправлений.
Цели и задачи регрессионного тестирования
Цели регрессионного тестирования:
Гарантировать тот же уровень покрытия, что и при полном повторном тестировании программы.
Удостовериться, что программа функционирует в соответствии со своей спецификацией.
Рисунок 38.6
Задачи регрессионного тестирования:
Уменьшение стоимости выполнения тестов;
Сокращение времени выполнения тестов.
Практический вариант решения задачи выборочного регрессионного тестирования состоит в получении множества, которое включает все тесты, активирующие измененный код, и не включающее никакие другие тесты.
Виды регрессионного тестирования
3 типа сопровождения ПО:
Корректирующее (исправление ошибки, не требующей изменения спецификации требований).
Адаптивное (в ответ на требования изменения данных или среды исполнения).
Прогрессивное (с целью повышения эффективности работы системы или сопровождения).
2 типа регрессионного тестирования:
Прогрессивное регрессионное тестирование предполагает модификацию технического задания.
Корректирующее регрессионное тестирование предполагает модификацию кода без изменения спецификации.
Подходы к отбору регрессионных тестов:
Активный подход (уменьшение объема тестирования).
Консервативный подход (отбор всех тестов).
Управляемое регрессионное тестирование
Для обеспечения управляемости регрессионного тестирования необходимо выполнение следующих условий:
Должны использоваться реальные модули системы;
Информация об изменениях должна быть корректна;
В программе нет ошибок, кроме тех, которые могли возникнуть из-за её изменения;
Тесты предыдущих версий продукта доступны;
Необходимо хранить информацию о результатах выполнения тестов предыдущих этапов тестирования.
Обоснование корректности метода отбора тестов
Если код не менялся и входные данные тоже (для заданного теста), то нет необходимости прогонять этот тест повторно.
Если отрывок кода не менялся и поведение которого не зависело от измененного кода, то нет необходимости прогонять этот тест повторно.
Необходимо ориентироваться на выбор только тех тестов, которые покрывают измененный код.
