Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 28.11.2007 | Доступ: свободный | Студентов: 3885 / 335 | Оценка: 4.53 / 3.65 | Длительность: 22:18:00
ISBN: 978-5-94774-825-3
Специальности: Программист, Тестировщик
Лекция 5:

Повторяемость тестирования

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

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

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

Самый простой, но в то же время действенный способ такого подтверждения - полное выполнение всех тестовых примеров после каждого существенного изменения системы и сравнение результатов выполнения тестов до и после изменения.

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

В общем случае повторное выполнение тестов может завершиться одним из трех способов.

  1. Все тесты пройдены успешно. В этом случае изменения не затрагивают уже протестированные функции, но может потребоваться разработка новых тестовых примеров для новых функций системы.
  2. Часть тестов, ранее выполнявшихся успешно, завершается с отрицательным результатом. Причины этого могут быть следующие:
    • корректное изменение функциональности тестируемой системы, в результате которого тестовый пример перестал соответствовать требованиям;
    • некорректное изменение функциональности системы, в результате которого тестовый пример выявил расхождение с требованиями;
    • влияние остаточных данных от предыдущих тестовых примеров, ранее остававшееся незамеченным.

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

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

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

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

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

Процесс, включающий в себя повторное выполнение тестов, называют регрессионным тестированием. Регрессионное тестирование включает в себя следующие стадии:

  1. Анализ изменений в системе
  2. Выбор тестовых примеров для проверки системы
  3. Выполнение тестовых примеров
  4. Анализ результатов выполнения
  5. Модификация тестового окружения, тестовых примеров или уведомление разработчиков о дефекте системы

Таким образом, можно определить следующие основные задачи повторяемости тестирования при внесении изменений:

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

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

Александр Медов
Александр Медов

Здравствуйте, какова полная сумма предоставленной услуги с печатью документа и отправкой по почте?

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Светлана Антипина
Светлана Антипина
Россия