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

Вы сначала реорганизуете свой SQL? Ваша архитектура? или ваша кодовая база? Вы меняете языки? Вы выбрасываете все и начинаете с нуля? [Без рефакторинга]

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
4
0
496
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это действительно зависит от состояния кодовой базы ... есть ли массовые классы? один класс с мега-методами? Насколько сильно связаны классы? конфигурация - это бремя?

Учитывая это, предлагаю прочитать Эффективная работа с устаревшим кодом, выделить свои проблемы и применить рекомендации.

Выглядит интересно. Я использую «Работаем эффективно ...» прямо сейчас в моем первом крупном заброшенном приложении, и это очень помогает. Думаю, рефакторинг amazon.com/dp/0201485672 тоже может быть полезен (моя следующая покупка).

Anthony Mastrean 16.09.2008 00:25

Рефакторинг Мартина Фаулера - это библия мастера рефакторинга. Это очень помогло мне в развитии. Я также рекомендую Head First Design Patterns и Code Complete.

Scott Gowell 16.09.2008 21:40
Ответ принят как подходящий

Я добавляю модульное тестирование в большую устаревшую кодовую базу спагетти.

Мой подход заключается в том, что, когда меня просят решить проблему, я пытаюсь создать новую оболочку вокруг той части кода, которая имеет отношение к моей текущей задаче. Эта новая оболочка разработана с использованием TTD (сначала напишем тест). Иногда вызывается в унаследованного кода, не прошедшего модульное тестирование. В других случаях я делаю новую копию существующего модуля и начинаю серьезно насиловать ее. Иногда переписываю функционал с нуля.

Но поскольку я довольно хорошо провожу тесты, я чувствую, что все под контролем.

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

Я не (и не имею полномочий) пытаться переписывать или добавлять тесты к тем частям кода, которые не затрагиваются моей текущей проблемой (обычно это ошибка, которую я пытаюсь исправить), но у меня есть довольно агрессивная проактивная позиция. обо всем, что касается и может иметь отношение к делу.

Обновление: Penguinix спросил: «На каких языках вы работаете? Вы порекомендуете какие-то специальные средства тестирования?»

Прямо сейчас я работаю с ... э ... свинка! Но тот же принцип работает везде.

Что-то, что изменило мое понимание UT, было MinUnit: http://www.jera.com/techinfo/jtns/jtn002.html

Когда я увидел MinUnit, для меня это был своего рода "дзен" момент просветления. Это избавило меня от недопонимания, которое у меня было о модульном тестировании как о чем-то сложном, требующем сложных объектно-ориентированных структур и т. д. Я понял, что UT просто собирался написать кучу тестов. «Обвязку» вы можете написать сами, примерно за 3 минуты, на любом языке, который вам нравится. Просто продолжай и делай это.

На каких языках ты работаешь? Вы порекомендуете какие-то специальные приспособления для тестирования?

Scott Gowell 16.09.2008 21:41

Другие вопросы по теме