1.2. Циклы тестирования
Вопросы для рассмотрения: Общий и частный циклы тестирования и их задачи. Основные артефакты тестирования: план и сценарий тестирования, тестовые данные, тестовый скрипт, набор тестов. Результаты тестирования, дефекты. Дизайн и разработка тестов. Выполнение и оценка тестов. Полный цикл тестирования, определяющий основные активности специалистов.
Рекомендуемая литература: 5.
Перечень дополнительных ресурсов: 4, 5, 7. Наименование вида самостоятельной работы: изучение
литературы; выполнение тестовых заданий; подготовка к практическим занятиям.
Можно выделить два вида циклов тестирования, назовем их условно полный цикл тестирования и частный цикл тестирования:
полный цикл тестирования обычно совпадает с итерацией разработки или соответствует ее определенной части (очевидно, что,
вслучае разработки программного продукта по каскадной модели, полный цикл тестирования скорее всего будет иметь только одну итерацию);
частный цикл тестирования, как правило, проводится для конкретной сборки объекта тестирования (системы, подсистемы или отдельного компонента).
Краткие описания задач, входящих в частный цикл тестирования:
определить цели тестирования (включает выбор тестируемых фрагментов и формулирование задач тестирования);
верифицировать метод тестирования (настройка среды и инструментов тестирования, выполнение отдельных тестов, подтверждение возможности реализовать задачи и цели тестирования);
подтвердить правильность сборки (прежде, чем приступить к детальному тестированию выбранной сборки, проводятся ее тесты, которые должны показать, что сборка не содержит явных ошибок, делающих ее дальнейшее тестирование просто нецелесообразным);
тестировать и оценивать (разрабатываются необходимые тесты, после чего тесты выполняются в ручном или автоматическом режиме и проводится оценка результатов);
улучшить набор тестов и другие активы для дальнейшего использования (описать и сохранить тесты, наборы тестовых данных, настройки среды и инструментальных средств, которые можно использовать в последующих тестовых циклах).
Выполнение задач жизненного цикла сопровождается разработкой различных артефактов (документов, моделей и других материалов проекта). Как обычно в RUP, разработка артефактов может проводиться в разной форме с разными требованиями к способу выполнения, рецензированию и качеству оформления.
Этапы полного цикла тестирования: 1) планирование тестов:
определение требований к тестам;
оценка рисков;
выбор стратегии тестирования;
определение ресурсов;
создание расписания/последовательностей;
разработка Плана тестирования; 2) дизайн тестов:
анализ объёма работ;
определение и описание тестовых случаев;
определение и структурирование тестовых процедур;
обзор и оценка тестового покрытия;
3) разработка тестов:
запись или программирование тестовых скриптов;определение тесто-критичной функциональности в Дизайне и
Модели реализации;создание/подготовка внешних наборов данных;
4) выполнение тестов:
выполнение тестовых процедур;оценка выполнения тестов;
восстановление после сбойных тестов;проверка результатов;исследование неожиданных результатов;запись ошибок; 5) оценка тестов:
оценка покрытия тестовыми случаями;оценка покрытия кода;анализ дефектов;
определение критериев завершения и успешности тестирования.
1.3. Метрики и критерии тестирования
Вопросы для рассмотрения: Оптимизация тестовых наборов. Принятие решения об окончании тестирования. Метрики тестирования и качества. Метрики покрытия по методологии RUP. Тестирование функциональных требований. Покрытие, основанное на спецификации. Покрытие, основанное на коде. Покрытие строк, ветвей и путей.
Рекомендуемая литература: 7.
Перечень дополнительных ресурсов: 2, 4, 10. Наименование вида самостоятельной работы: изучение
литературы; подготовка к практическим занятиям; выполнение тестовых заданий; выполнение контрольной работы.
При проведении тестирования необходимо определить критерии окончания процесса тестирования. Ведь недостаток тестирования может вести к выпуску продукта с существенными недостатками. А «лишнее» тестирование может стоить достаточно дорого, задерживать выпуск продукта и отвлекать тестировщиков от других работ.
Чтобы принять решение о прекращении тестирования, чтобы выбрать оптимальный набор тестов и для многих других целей используются метрики тестирования и качества. Они позволяют оценить покрытие кода продукта тестами, спрогнозировать число ненайденных дефектов, оценить характеристики тестируемой системы.
Еще одним важным понятием в теории тестирования является понятие критериев покрытия тестирования. Не следует путать метрики тестирования и критерии покрытия тестирования. Последние позволяют определить степень покрытия разрабатываемого продукта тестами. Поэтому часто критерии покрытия используются для определения метрик тестирования.
Приведем примеры самых распространенных критериев покрытия при тестировании функциональных требований в соответствии с методологией RUP.
При тестировании функциональных требований могут быть
выделены, по крайней мере, два типа покрытия: покрытие, основанное на спецификации, и покрытие, основанное на коде.
Покрытие, основанное на спецификации или на требованиях
(Specification-Based Coverage or Requirements-based Test Coverage).
Этот критерий оценивает степень покрытия, принимая во внимание требования Заказчика или системные спецификации. Основой может быть, например, таблица требований, use case модель и диаграмма состояний-переходов. Набор тестов должен покрывать все или конкретно определенные функциональные требования. На практике это чаще всего реализуется следующим образом: Заказчик (или системный аналитик) составляет набор требований, которые могут быть переведены в тестовые сценарии. После чего эти сценарии могут быть проверены на правильность и полноту.
Таким образом, данный критерий показывает в процентном отношении количество покрытых тестами требований. Чаще всего данный критерий используется при тестировании методом «черного ящика».
Покрытие, основанное на коде (Code-Based Coverage) имеет отношение к потоку управления и потоку данных программы. Чаще всего данный критерий используется при тестировании методом «белого ящика».
Основные критерии покрытия тестирования кода следующие:
Покрытие строк (Line Coverage) – мера измерения покрытия кода, указывающая процентное отношение строк программы, затронутых тестами, к общему числу строк. Это очень неточная метрика, потому что даже стопроцентное покрытие по ней пропускает много ошибок.
Покрытие ветвей (Branch Coverage) – мера измерения покрытия кода указывает в процентном отношении, сколько ветвей потока управления было протестировано во время теста. Она надежнее предыдущей метрики, но снова стопроцентное покрытие не гарантирует отсутствие ошибок.
Покрытие путей (Path Coverage). Эта единица измерения характеризует процент всевозможных путей (и/или комбинаций ветвей), которые покрываются тестами. Однако, даже не смотря на 100-процентное покрытие (достичь которого практически нереально
вкоммерческих системах) все еще могут присутствовать скрытые ошибки.
Метрики и критерии тестирования определяются в стратегии
тестирования наряду с остальными составляющими процесса.
1.4. Стратегии тестирования
Вопросы для рассмотрения: Определение стратегий тестирования. Тестирование как итерационный процесс. Критерии успешного завершения и оценки тестов. Методы и инструментальные средства тестирования и оценки качества ПО. Тестирование «белого ящика» и «черного ящика». Тестирование «серого ящика».
Рекомендуемая литература: 7.
Перечень дополнительных ресурсов: 1, 2, 4, 5. Наименование вида самостоятельной работы: изучение
литературы; подготовка к практическим занятиям; выполнение тестовых заданий; выполнение контрольной работы.
Различие задач и целей тестирования на протяжении жизненного цикла продукта приводит к необходимости разрабатывать и реализовывать различные стратегии тестирования. Каждая такая стратегия определяет:
итерации, на которых используются стратегия тестирования и цели тестирования на каждой итерации;
стадии тестирования для каждой итерации;
критерий успешного завершения тестирования;
типы используемых тестов;
набор методов и инструментальных средств, необходимых для проведения тестирования и оценки качества;
критерии оценки тестов.
Стратегии тестирования должны разрабатываться на этапе планирования тестирования.
В терминологии профессионалов тестирования, фразы «тестирование белого ящика» и «тестирование чёрного ящика» относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.
При тестировании белого ящика (англ. white-box testing, также говорят – прозрачного ящика), разработчик теста имеет доступ к исходному коду программ (см. открытое программное обеспечение) и