Концепция: Стратегия тестирования
В этом разделе приведены рекомендации по разработке стратегии тестирования, описывающей общую стратегию тестирования и цели, поставленные перед отдельными задачами.
Взаимосвязи
Основное описание

Стратегия тестирования представляет собой описание общего подхода к тестированию и целей тестирования. Различают несколько уровней (компонент, интеграция и система в целом) и видов (функции, производительность, нагрузка, отказоустойчивость) тестирования.

В состав стратегии входят:

  • Технологии и инструменты тестирования.
  • Условия завершения и успешного выполнения тестов. Например, можно решить, что после успешного выполнения 95% тестов можно перейти к приемке продукта. Другим примером условия может служить охват кода. Например, в системах безопасности может требоваться стопроцентный охват кода при тестировании.
  • Особые обстоятельства, влияющие на требования к ресурсам и график тестирования, например:
  • тестирование всех интерфейсов ко внешним системам
  • имитация угрозы безопасности или физического повреждения системы

В некоторых организациях применяются корпоративные стратегии тестирования, и в этих случаях необходимо адаптировать эти стратегии к конкретным проектам.

Важнейшие обстоятельства для планирования тестирования:

  • Какая итерация выполняется в данный момент и каковы ее цели?
  • Какой уровень тестирования выполняется в данный момент (тестирование компонентов, интеграции или системы в целом)? Иногда все три уровня выполняются в ходе одной итерации.

Обратите внимание на то, как могут меняться характеристики задач тестирования в зависимости от того, на каком этапе находится тестирование с точки зрения указанных выше параметров. Существует много важных характеристик, например, объем необходимых ресурсов и затраченное время, но в данном случае нужно сконцентрироваться на важнейших факторах с точки зрения разработки стратегии тестирования:

  • типы тестов (функциональные тесты, тесты под нагрузкой, тесты объема, производительности, удобства работы, распределения и т.д.)
  • критерии оценки результатов (охват кода, охват требований, количество обнаруженных ошибок, средняя продолжительность бесперебойной работы и т.п.)
  • применяемые технологии тестирования (автоматического тестирования и тестирования вручную)

Не существует единого шаблона распределения тестов по циклам тестирования. Типы тестов зависят от количества итераций, размера итерации и типа проекта.

При тестировании центральное внимание уделяется охвату всех требований, подлежащих тестированию, то есть выполнению всех предусмотренных тестов. Это значит, что критерии завершения тестирования обычно привязаны к количественному охвату множества тестов, каждый из которых, в свою очередь, напрямую связан с каким-либо требованием. При тестировании компонентов и интеграции удобнее пользоваться критериями завершения на основе охвата кода. На следующем рисунке проиллюстрировано изменение этих двух критериев охвата на разных этапах итерационного процесса разработки программного обеспечения.

  • План тестирования должен содержать наборы критериев завершения тестирования для тестирования компонентов, интеграции и системы в целом.
  • Для разных итераций могут быть определены разные наборы критериев завершения.

Охват требований и охват кода при тестировании

Постарайтесь автоматизировать как можно больше тестов, особенно тех, что выполняются несколько раз (в рамках регрессионного тестирования). Помните о том, что создание и обслуживание автоматизированных тестов требует определенных ресурсов и затрат. В каждом проекте определенный объем тестирования выполняется вручную. На следующем рисунке приведены примеры ситуаций и этапов тестирования, на которых может потребоваться выполнение тестов вручную.

Список тестов с обведенными тестами, выполняемыми вручную

Пример

В следующих таблицах показаны различные типы тестов и примеры условий завершения тестирования. В первой таблице показан типичный пример проекта по разработке управленческой информационной системы.

Итерация Тест системы Тест интеграции Тест компонента
Итерация 1 Автоматизированное тестирование производительности всех вариантов использования.
· Выполнены все запланированные тесты.
· Устранены все ошибки серьезности 1.
· Все запланированные тесты выполнены повторно и не обнаружено ни одной ошибки серьезности 1.
Нет Неформальное тестирование
Итерация 2 Автоматизированное тестирование производительности и функций всех новых вариантов использования, а также тестирование старых вариантов использования в качестве регрессионного тестирования.
· Выполнены все запланированные тесты.
· Устранены все ошибки серьезностей 1 и 2.
· Все запланированные тесты выполнены повторно и не обнаружено ни одной ошибки серьезности 1 или 2.
Нет Неформальное тестирование
Итерация 3 Автоматическое тестирование функций и негативное тестирование всех новых вариантов использования, а также всех старых вариантов использования в качестве регрессионного тестирования; 95% тестов должны быть выполнены успешно.
· Выполнены все запланированные тесты.
· Выявлены все ошибки серьезностей 1, 2 и 3.
Автоматизированное тестирование, охват 70% кода. Неформальное тестирование
Итерация 4 Автоматическое тестирование функций и негативное тестирование всех вариантов использования, тестирование вручную всех неавтоматизированных частей, а также проведение всех прежних тестов в качестве регрессионного тестирования. Должно быть успешно проведено 100% тестов.
· Выполнены все запланированные тесты.
· Устранены все ошибки серьезностей 1, 2 и 3.
· Все запланированные тесты выполнены повторно и не обнаружено ни одной ошибки серьезности 1 или 2.
Автоматизированное тестирование, охват 80% кода. Неформальное тестирование

Во второй таблице показаны типы тестов и критерии завершения для типичной системы безопасности.

Итерация Тест системы Тест интеграции Тест компонента
Итерация 1 Автоматизированное тестирование производительности всех вариантов использования; охват 100% тестов.
· Выполнены все запланированные тесты.
· Устранены все ошибки серьезности 1.
· Все запланированные тесты выполнены повторно и не обнаружено ни одной новой ошибки.
Нет Нет
Итерация 2 Автоматизированное тестирование производительности и функций, а также негативное тестирование всех вариантов использования; охват 100% тестов.
· Выполнены все запланированные тесты.
· Устранены все ошибки серьезностей 1 и 2.
· Все запланированные тесты выполнены повторно и не обнаружено ни одной новой ошибки.
Автоматизированное тестирование производительности Неформальное тестирование
Итерация 3 Автоматизированное тестирование производительности и функций, а также негативное тестирование и тестирование документации всех вариантов использования; охват 100% тестов.
· Выполнены все запланированные тесты.
· Устранены все ошибки серьезностей 1, 2 и 3.
· Все запланированные тесты выполнены повторно и не обнаружено ни одной новой ошибки.
Автоматическое тестирование производительности и повтор предыдущих тестов в качестве регрессионного тестирования. Автоматизированное тестирование, охват 70% кода
Итерация 4 Автоматизированное тестирование производительности и функций, а также негативное тестирование и тестирование документации всех вариантов использования; охват 100% тестов.
· Выполнены все запланированные тесты.
· Устранены все ошибки серьезностей 1, 2 и 3.
· Все запланированные тесты выполнены повторно и не обнаружено ни одной ошибки.
Автоматическое тестирование производительности и повтор предыдущих тестов в качестве регрессионного тестирования. Автоматизированное тестирование, охват 80% кода.