Перейти к основному содержимому

Задача

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

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

Сложность

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

примечание

Не редко, растёт время выполнение только определённых задач.

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

Данное распределение напрямую зависит от выбранной архитектуры приложения.

Рефакторинг

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

Одна из таких мер — это рефакторинг.

примечание

Рефакторинг — это процесс изменения исходного кода программы без изменения её наблюдаемого поведения.

Тесты

Нюанс заключается в том, чтобы упростить систему не вызывая при этом регресса.

примечание

Регресс — это явление при котором система теряет в своём ожидаемом наблюдаемом поведении.

Здесь на помощь приходят тесты. Их основная задача — защита от регресса, но она не является единственной.

примечание

Тесты — это программа, которая проверяет свойства/поведения другой программы.

Рассмотрим проблемы, возникающие при тестировании приложений.