Кратко

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

У миграционного проекта может появиться больше успешно пройденных тестов, но не появиться ответ на вопрос, каким должно быть поведение приложения. AWS 10 сентября добавила в Transform для .NET генерацию модульных тестов: инструмент оценивает тестируемость, планирует покрытие и создаёт проверки подходящих классов, включая бизнес-логику и контроллеры. Возможность включается по выбору в AWS Toolkit for Visual Studio. Заказчику важно установить, какую часть приёмки этот новый результат действительно закрывает.

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

Ранее существовавшие тесты обрабатываются отдельно. Transform переносит поддерживаемые проекты MSTest, NUnit и xUnit, выполняет перенесённые проверки и отражает результаты в отчёте. Так можно проверить ожидания, сформулированные ещё до изменений. Сам перенос, однако, не доказывает полноту старого набора и наличие в нём всех бизнес-условий. Число новых тестов не превращает их в исходный эталон.

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

Поэтому передача проекта должна сохранять происхождение тестов и проверенную ревизию. Что было перенесено, что создано заново, какой код проверялся и что ещё не запускалось? Единая сумма успешных тестов способна скрыть эти различия. Показатель покрытия сам по себе также не определяет, соответствуют ли заложенные ожидаемые результаты потребностям заказчика.

Собственные рекомендации AWS перед преобразованием требуют плана валидации поведения, внешнего вида, механизмов безопасности, бизнес-логики и хранения данных. Они отделяют модернизацию .NET от архитектурного рефакторинга. Покупка автоматической генерации не должна незаметно расширять согласованный объём или отменять оставшуюся проверочную работу.

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