Мастер-класс посвящен практике создания модульных и приемочных тестов для web-приложений, в частности: использование SimpleTest и Selenium, практики ООП, облегчающие тестирование и способствующие формированию хорошей архитектуры приложений, использование мок-объектов и многое другое. Мастер класс посвящен практическим аспектам внедрения разработки через тестирование (TDD), постоянной сборки (Continuous Integration) и приемочному тестированию (Acceptance Testing) приложений, выполненных при помощи PHP. После мастер-класса вы научитесь организовывать тестовую среду для своего кода, создавать модульные тесты на отдельные классы и приемочные тесты на все приложение в целом, будете знать, что такое изоляция кода и зачем она нужна, как тестировать те или иных аспекты ваших приложений и многое другое. Возможно, мастер-класс заставит вас пересмотреть взгляды на архитектуру ваших приложений и на ваше понимание ООП в целом.
Щеваев Павел Александрович и Юдин Сергей Юрьевич
Ведущие имеют опыт разработки через тестирование (TDD) около 5 лет.
Опыт разработки при помощи PHP – более 6 лет.
Отзывы
…Очевидно, первому потоку повезло в 3.14*2.7 раз больше - он получил неоценимый практический опыт в реализации разработки через тестирование. Несмотря на то, что [pachanga] (Павел Щеваев) и [syfisher] (Сергей Юдин) всячески отнекивались, мол, знаем мы много, да вот рассказывать получается плохо, их мастер-класс – это поистине шедевр… (
http://phpclub.ru/talk/showthread.php?postid=719366#post719366 )
Некоторые вещи[из доклада на конференции] я бы не понял, если бы не посетил мастер-класс syfisher'а (Сергей Юдин) и pachang'и (Павел Щеваев) по
экстремальному программированию, который проводился в рамках конференции несколькими днями раньше. Мастер-класс удался на славу, сэкономил мне кучу времени на изучение TDD (разработки на основе тестирования). В ближайшее время планирую внедрить этот подход на практике, предварительно подтянув коллег...(
http://djsv.livejournal.com/25383.html )
Одним из плюсов наших мастер-классов мы считаем парное проведение, когда ведущие в равной степени владеют материалом, при этом один из них выступает в роли оратора, а другой помогает слушателям на местах в сложных вопросах или если кто-то отстал. Время от времени ведущие меняются местами.
Аудитория
Аудитория наших мастер-классов – это достаточно опытные разработчики, применяющие объектно-ориентированный подход в работе, знакомые с теорией экстремального программирования. Как правило на мастер-классы направляются ведущие разработчики в компаниях, которые планируют внедрять методы экстремального программирования в разработке.
Некоторые требования к подготовке аудитории:
1) Знание ООП в PHP
2) Базовые знания работы в Linux-е
3) Знания о шаблонах проектирования (декоратор, итератор, фабрика, фасад и некоторые другие)
4) Желательно знакомство с библиотекой SPL
5) Приветствуется небольшой опыт применения автоматических тестов ранее (не обязательно).
Можно даже сказать, что мастер-класс рассчитан на тех людей, которые самостоятельно начали процесс, но застряли, у них не хватило времени на внедрение или же какие-либо проблемы помешали внедрению TDD.
Итоги посещения мастер-класса
Слушатели мастер-класса без труда смогут внедрить автоматизированное тестирование в своей работе. На мастер-классе они узнают, какими средствами можно и лучше пользоваться, какие есть альтернативы для тестирования. Мы постараемся указать на всевозможные ошибки и проблемы, которые могут возникнуть при внедрении и как этих проблем избежать. Они будут владеть набором приемов, которые позволят упростить процесс написания и запуска тестов. Мы расскажем, как мы тестируем наши приложения (в основном это стандартные Интернет-приложения с достаточно сложной бизнес-логикой), на какие моменты стоит обратить повышенное внимание.
В целом, почти все, кто посетил наши прыдыдущие мастер-классы, остались довольны и признают, что наши занятия сэкономили им много времени.
Программа
- Краткий экскурс в TDD, гибкие методики. Кратко связь test-first разработки, рефакторинга и простого дизайна.
- SimpleTest и PhpUnit3. Достоинства и недостатки.
- Установка тестовой среды. Первые тесты. Пример создания кода в стиле TDD. Основные принципы TDD на практике.
- Организация тестовой среды для тестирования больших приложений.
- Тестирование операций, связанных с базой данных.
- Мок-объекты. Ручное создание мок-объектов. Автоматическая генерация мок-объектов. Использование мок-объектов из SimpleTest. Правильное использование мок-объектов. Внедрение мок-объектов в тестируемый код.
- Приемочное тестирование. Использование Selenium, Selenium RC и SimpleTest WebTester.
- Тестирование отправки почты. Использование FakeMail и FakeMailDemon.
- Оценка покрытия кода тестами (Test Coverage) в PHP
- Постоянная интеграция (Continuous Integration) в PHP
- Влияние тестирования на дизайн кода. Принципы ООП, облегчающие модульное тестирование.
- Рефакторинг и связь рефакторинга и тестирования. Рекомендации по написанию тестов, которые легко читать и поддерживать. Рефакторинг тестов. Примеры безопасного рефакторинга.
- Перевод проектов на реальсы TDD
- Примеры из реальных приложений.
Содержимое программы также зависит от уровня аудитории. Иногда мы пропускаем самые базовые вещи, если аудитория имеет начальный опыт и даем сразу материал для «продвинутых».
Условия и предварительная регистрация
Продолжительность программы - 2 полных дня.
Ближайшая дата проведения - середина октября 2007 г.
Ориентировочная стоимость - 18000 рублей.