Что такое тестирование восстановления?

Тестирование восстановления (англ. Recovery Testing) – это один из методов тестирования программного обеспечения. Его суть в проверке способности ПО восстанавливаться после сбоев (программных, аппаратных, сетевых и т.д.).

Цель тестирования восстановления – определить, может ли программное обеспечение продолжить работу после сбоя или потери целостности. Тестирование восстановления включает в себя возврат программы к точке проверенной целостности и повторную обработку транзакций до точки сбоя.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Пример Recovery Testing

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

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

Примечание редакции: о видах тестирования можно почитать здесь.

Время, необходимое для восстановления, зависит от следующих обстоятельств:

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

При наличии нескольких сбоев тестирование восстановления должно проводиться структурированно. То есть сначала оно проводится для одного сегмента, а затем для другого.

Этим занимаются профессиональные тестировщики. Перед Recovery Testing соответствующие бэкапы данных сохраняются в надежных местах. Это гарантирует возможность продолжения работы даже после аварии.

Жизненный цикл процесса восстановления

Жизненный цикл процесса восстановления можно разделить на следующие пять этапов:

  1. Нормальная работа
  2. Возникновение аварийной ситуации
  3. Нарушение и сбой в работе
  4. Устранение последствий аварии с помощью процесса восстановления
  5. Реконструкция всех процессов и информации для приведения всей системы в состояние нормальной работы
Жизненный цикл процесса восстановления

Давайте рассмотрим эти 5 шагов подробнее.

  1. Система, состоящая из аппаратных средств, программного обеспечения и встроенного программного обеспечения, интегрированных для достижения общей цели, вводится в эксплуатацию для выполнения четко определенной и заявленной цели. Система призвана выполнять нормальную работу по выполнению поставленной задачи без сбоев в течение оговоренного периода времени.
  2. Нарушение работы может произойти из-за сбоя в работе программного обеспечения. Причиной может быть сбой из-за некорректного ввода, сбой из-за отказа оборудования, повреждения в результате пожара и т.п.
  3. Фаза сбоя – самая болезненная. Она приводит к потерям в бизнесе, потерям возможностей, потерям человеко-часов и непременно к финансовым и репутационным потерям. Каждая компания должна иметь план аварийного восстановления, чтобы фаза сбоя была минимальной.
  4. Если есть план резервного копирования, а процессы снижения рисков налажены, то восстановление может быть проведено без больших потерь времени и сил. Чтобы избежать длительных сбоев, нужно заранее назначить ответственного за восстановление и распределить роли в его команде.
  5. Для восстановления всех папок и конфигурационных файлов могут потребоваться несколько сеансов работы. Для правильного восстановления должна быть надлежащая документация и процесс реконструкции.

Стратегия восстановления

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

Стратегия может быть уникальной для каждой организации и основываться на критичности систем, с которыми они работают.

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

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

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

Многие компании могут пострадать из-за зависимости их данных и кода от сторонней компании. Например, если Amazon AWS выходит из строя, это приводит к отключению интернета. В таких случаях независимое восстановление имеет решающее значение.

Как проводить тестирование восстановления

При проведении Recovery Testing необходимо учитывать следующие моменты:

  • Тестовый стенд нужно делать максимально приближенным к реальным условиям развертывания. Изменения в интерфейсе, протоколе, микропрограмме, аппаратном и программном обеспечении должны быть максимально приближены к реальным условиям, если не совпадать с ними.
  • Поскольку исчерпывающее тестирование может занять много времени и быть дорогостоящим мероприятием, следует проводить идентичную конфигурацию и полную проверку.
  • Если возможно, тестирование следует проводить на том оборудовании, которое мы собираемся восстанавливать. Это особенно актуально, если мы восстанавливаем на другой машине, а не на той, на которой была создана резервная копия.
  • Некоторые системы резервного копирования ожидают, что жесткий диск будет точно такого же размера, как и тот, с которого была сделана резервная копия.
  • Необходимо следить за устареванием, поскольку технология дисков развивается быстрыми темпами, и старый диск может быть несовместим с новым. Один из способов решения этой проблемы – восстановление на виртуальную машину. Поставщики программного обеспечения для виртуализации, такие как VMware Inc., могут настроить виртуальные машины таким образом, чтобы они имитировали существующее оборудование, включая размеры дисков и другие конфигурации.
  • Системы онлайнового резервного копирования не являются исключением для тестирования. Большинство поставщиков услуг онлайнового резервного копирования защищают нас от проблем с носителями путем использования отказоустойчивых систем хранения.
  • Хотя системы онлайн-бэкапов чрезвычайно надежны, нужно протестировать сторону восстановления системы, чтобы убедиться в отсутствии проблем с функциональностью поиска, безопасностью или шифрованием.

Процедура тестирования после восстановления

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

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

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

Заключение

В этой статье мы рассказали, что собой представляет тестирование восстановления (recovery testing), и разобрали основные аспекты этого вида тестирования.

Перевод статьи Thomas Hamilton «What is Recovery Testing? with Example».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *