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

Подробнее ниже:
№ 1) Некорректность работы кода:
Некорректность кода - это признаки того, что в коде может существовать серьезные проблемы и код является неэффективным.
Ниже приведены некоторые примеры некорректности:
Наличие лишнего или идентичного кода.
Объявленная переменная, которая в остальной части кода нигде не используется.
Класс в коде, существование которого не оправдано.
Существование слишком большого количества условий и циклов, которые могут быть разбиты и упрощены.
Код создается таким образом, что изменение одной части кода требует изменения, которое должно быть реализовано и в других местах.
Некорректность кода становится более очевидной с течением времени. По мере того, как приложение или система растет, в конечном итоге это начинает влиять на разработку кода, поддержку и даже работу системы в экстремальных сценариях.
# 2) Технический долг:
При разработке ПО в течении ограниченного времени и доступных ресурсов может возникать следующая ситуация: есть функция, которая должна быть добавлена в существующий модуль. После обсуждения команда рассматривает два подхода по добавлению этой функции. Подход A является долгосрочным подходом. Подход B занимает всего 5 дней, но это будет грязный код, который предназначен для обслуживания модуля лишь в ближайшей перспективе.
Выбирая подход В, команда создаёт технический долг для себя, до момента рефакторинга.
Почему QA должен знать о рефакторинге?
Во время рефакторинга кода обновляются старые классы, добавляются новые, и существующие модульные тесты могут быть неактуальны. Кроме того, для устаревших систем вообще может не быть никаких единичных тестов. В большинстве случаев эти новые модульные тесты должны быть созданы и настроены с нуля.
Когда функция реорганизуется (учитывая, что мы не добавляем никаких новых функций), мы понимаем, что после выполнения рефакторинга большинство функций для конечного пользователя должны оставаться неизменными.
  • С точки зрения тестировщика рефакторинг грубо переводится в углубленное тестирование + регрессионное тестирование. Углубленное тестирование должно включать все существующие потоки пользователей, чтобы гарантировать, что все функции работают по-прежнему. Регрессионное тестирование всего приложения (или затронутых областей) требуется для обеспечения того, чтобы обновление модуля не приводило к непреднамеренному нарушению функциональности других модулей.
  • Приемочные тесты для пользователей также будут важны, и эти тесты должны пройти до того, как сборка будет объявлена готовой к выпуску.
  • Кроме того, любое другое тестирование, такое как нагрузочное, тесты безопасности и т. д., также должны быть реализованы по мере необходимости.
  • Важно понимать существующую функциональность. На основе существующей функциональности необходимо документировать потоки пользователей и приемочные тесты. Когда тестируется реорганизованный код, все эти сценарии должны быть проверены вместе с регрессионным тестированием затронутых областей.
  • Не стесняйтесь привлекать членов не-проектных групп или конечных пользователей к участию в тестировании.
Подводя итог, рефакторинг кода - это процесс очистки / упрощения дизайна модуля без изменения его функциональности. Процесс рефакторинга может быть простым, например добавлением комментариев, добавлением правильного отступа, удалением статической переменной и т. д., или может быть сложным, например для устаревших систем.
27 сентября / 2018
ул. Шота Руставели 40\10
info@start-it.ua
+380 63 742 50 52
© 2018 StartIT training center

Made on
Tilda