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