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