Legacy: подходы к тестированию старых систем

Особенности и сложности тестирования устаревших программных систем (legacy). Рекомендуемые подходы к автоматизации UI, API и модульного тестирования таких систем. Плюсы и риски, с чего начинать.

Подходы к тестированию legacy систем

Что такое legacy системы

Legacy (устаревшие) системы — это программные системы, которые используются компаниями на протяжении многих лет, как правило, более 10-15 лет. Они могут быть написаны на устаревших языках программирования, использовать старые базы данных и иметь сложную, запутанную архитектуру. Основные особенности legacy систем:

  • Использование устаревших технологий и языков программирования
  • Сложная, труднопонимаемая архитектура
  • Высокая стоимость поддержки и модернизации
  • Высокие риски при внесении изменений
  • Отсутствие исходного кода и документации

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

Тестирование таких систем сопряжено с определенными сложностями:

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

Основные подходы к тестированию

Несмотря на сложности, необходим постепенный переход к автоматизации тестирования таких систем с использованием современных инструментов и подходов:

  1. Создание автоматизированных UI тестов, эмулирующих действия пользователя
  2. // Пример кода UI теста на Python + Selenium
    
    def test_login():
      driver.get(http//legacy-app/login)
      driver.find_element_by_id(username).send_keys(testuser) 
      driver.find_element_by_id(password).send_keys(pass123)
      driver.find_element_by_id(submit).click()
      assert driver.title == Legacy App  
    
  3. API тестирование устаревших веб-сервисов с помощью Postman, JMeter, SoapUI
  4. Создание автоматизированных тестов сервисных шин данных (ESB)
  5. Модульное тестирование отдельных компонент системы

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

Вопросы и ответы

Вопрос: Какие риски несет автоматизация тестирования legacy систем?
Ответ: Основные риски: потеря или повреждение данных, нарушение работы взаимосвязанных компонент по причине недостатка знаний о системе. Поэтому важен постепенный, осторожный подход к автоматизации.
Вопрос: Как определить с чего начать автоматизацию?
Ответ: С приоритетных с точки зрения бизнеса пользовательских сценариев и функций. Например, проверка основных отчетов, выгрузка данных, разграничение прав доступа.

Оцените статью
Учеба легко