Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Работа с унаследованным
кодом
Лебедев Михаил
http://phpfriends.club/
Лебедев Михаил
mihasichechek@gmail.com
https://fb.com/mihasichechek
https://www.linkedin.com/in/mihail-lebedev
https://git...
4 причины для внесения изменений в
существующий код
● Ввод нового поведения
● Изменение существующего поведения
● Рефактор...
Что у них общего?
Чем отличается хорошая система от плохой?
Как нам сохранить существующее поведение?
Модульные тесты – тесты в которых мы тестируем
самые элементарные единицы поведения
системы.
Почему именно модульные тесты?
1. Быстро выполняються
2. Помогают обнаружить и локализовать ошибки.
Модульный тест который выполняется дольше
1/10 секунды – медленный блочный тест
Модульный тест должен выполняться быстро. ...
Модульные тесты не должны
● Обращаться к базе данных
● Общаться по сети
● Обращаться к файловой системе
Зависимости
● От классов
● От глобальных переменных
● От сторонних сервисов
● От операционной системы
● От стороннего софт...
Причины для разрыва зависимостей
Разделение - если мы не можем ввести в среду
тестирования фрагмент кода для выполнения
Ра...
Алгоритм изменения унаследованного кода
1. Определение точек изменения
2. Нахождение тестовых точек
3. Разрывание зависимо...
Швы
Шов - место где можно изменить поведение
программы, не правя код в этом месте
Разрешающая точка - место где можно выбр...
Литература
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Working with legacy code
Upcoming SlideShare
Loading in …5
×

Working with legacy code

372 views

Published on

Slides about how make legacy code testable.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Working with legacy code

  1. 1. Работа с унаследованным кодом Лебедев Михаил http://phpfriends.club/
  2. 2. Лебедев Михаил mihasichechek@gmail.com https://fb.com/mihasichechek https://www.linkedin.com/in/mihail-lebedev https://github.com/mihasicehcek
  3. 3. 4 причины для внесения изменений в существующий код ● Ввод нового поведения ● Изменение существующего поведения ● Рефакторинг ● Оптимизация
  4. 4. Что у них общего?
  5. 5. Чем отличается хорошая система от плохой?
  6. 6. Как нам сохранить существующее поведение?
  7. 7. Модульные тесты – тесты в которых мы тестируем самые элементарные единицы поведения системы.
  8. 8. Почему именно модульные тесты? 1. Быстро выполняються 2. Помогают обнаружить и локализовать ошибки.
  9. 9. Модульный тест который выполняется дольше 1/10 секунды – медленный блочный тест Модульный тест должен выполняться быстро. В противном случае это не модульный тест.
  10. 10. Модульные тесты не должны ● Обращаться к базе данных ● Общаться по сети ● Обращаться к файловой системе
  11. 11. Зависимости ● От классов ● От глобальных переменных ● От сторонних сервисов ● От операционной системы ● От стороннего софта ● От глобальных функций ● От дня недели и т.д.
  12. 12. Причины для разрыва зависимостей Разделение - если мы не можем ввести в среду тестирования фрагмент кода для выполнения Распознавание - если мы не можем получить доступ к значениям которые вычисляет код
  13. 13. Алгоритм изменения унаследованного кода 1. Определение точек изменения 2. Нахождение тестовых точек 3. Разрывание зависимостей 4. Написание тестов 5. Внесение изменений и реорганизация кода
  14. 14. Швы Шов - место где можно изменить поведение программы, не правя код в этом месте Разрешающая точка - место где можно выбрать то или иное поведение.
  15. 15. Литература

×