Разработка через тестирование(TDD) и гибкие методики разработки ПО с использованием PHP. Практика создания модульных и приемочных тестов для web-приложений, использование SimpleTest и Selenium, практики ООП, облегчающие тестирование и способствующие формированию хорошей архитектуры приложений, использование мок-объектов и многое другое.
Ведущие мастер класса: Щеваев Павел Александрович и Юдин Сергей Юрьевич,
Основные разработчики LIMB CMF (http://limb-project.com), программисты компании BIT (http://bit-creative.com),
активные участники open-source проектов WACT, SimpleTest, FakeMail и некоторых других, огранизаторы проекта AgileDev (http://agiledev.ru).
Обладают опытом разработки через тестирование (TDD) более 3 лет, опытом веб-разработок с применением ООП - более 5 лет.
План
|
|
Продолжительность
2 дня, 3 часа (всего более 15 часов).
Целевая аудитория:
Профессиональные PHP-разработчики. Необходимо знание ООП, шаблонов проектирования, основ рефакторинга. Желательно иметь представление о гибких методиках разработки (например, об экстремальном программировании XP).
Начало – в 10:00 каждого дня, регистрация. Каждый час-полтора или по мере необходимости делается небольшой перерыв (кофе-брейк) на 5-10 минут. |
|
Первый день (22 мая): |
| 10:00 |
Регистрация, раздача материалов, настройка оборудования |
| 10:30 |
Начало. Теоретическая часть. Краткий экскурс в TDD, гибкие методики. Связь test-first разработки, рефакторинга и простого дизайна. |
| 11:00 |
SimpleTest и PhpUnit2. Достоинства и недостатки. Установка тестовой среды. Первые тесты. Пример создания кода в стиле TDD. Основные принципы TDD на практике. |
| 13:00 |
Организация тестовой среды для тестирования больших приложений. |
| 13:30 |
Тестирование операций, связанных с базой данных. |
| 14:00 |
Обед. |
| 15:00 |
Запахи тестового кода. Рекомендации по написанию тестов, которые легко читать и поддерживать. Рефакторинг тестов. Рефакторинг рабочего кода. Связь рефакторинга и тестирования. Примеры безопасного рефакторинга. |
| 17:45 |
Раздача заданий. Коллективная проверка – на следующий день. |
| Второй день (23 мая): |
| 10:15 |
Роль изоляции в тестировании. Использование мок-объектов и заглушек.. Ручное создание мок-объектов. Автоматическая генерация мок-объектов. Использование мок-объектов из SimpleTest. Правильное использование мок-объектов. Внедрение мок-объектов в тестируемый код. Влияние тестирования на дизайн кода. Top-down разработка. Принципы ООП, облегчающие модульное тестирование и способствующие формированию качественной архитектуры. |
| 14:00 |
Обед. |
| 15:00 |
Приемочное тестирование. Использование Selenium и SimpleTest WebTester. |
| 16:30 |
Тестирование отправки почты. Использование FakeMail и FakeMailDemon. |
| 16:45 |
Средства оценки покрытия кода тестами. Использование Spike PHP Coverage. |
| 17:00 |
Проверка заданий с предыдущего дня. Раздача новых заданий. |
| Третий день (24 мая): |
| 10:00 |
Перевод проектов на рельсы TDD. Работа с legacy-кодом. Некоторые приемы, позволяющие провести изоляцию для облегчения модульного тестирования. |
| 12:00 |
Внедрение TDD в команду «традиционных» программистов. Рекомендации по дальнейшему совершенствованию навыков: список книг, проекты, темы. |
| 12:15 |
Проверка заданий, вручение сертификатов. |