:: Exception #04 ::
Оглавление На главную [/] Дата проведения Стоимость О мероприятии Доклады Место проведения Адрес Контакты Дата 31 марта 2007 года. Последняя суббота месяца. Начало в 14:00. Стоимость Вход бесплатный. О мероприятии Первые два доклада будут посвящены тестированию и его роли в разработке на Python. Докладчики рассмотрят вопрос важности тестирования как такового, расскажут о выборе оптимальной стратегии тестирования, опишут инструменты и приемы эффективного тестирования. Так же будет описан процесс тестирования на примере разработки системы контроля версий Bazaar и будут рассмотрены конкретные примеры расширения возможностей стандартной библиотеки unittest. Темой третьего доклада будет тема профайлинга при оптимизации скорости работы приложения. Спонсоры Информационный спонсор: Доклады: I. "Роль тестирования в разработке на Python" . Докладчик: Максим Ищенко План доклада: Побочные эффекты динамизма языка: даже опечатки требуют для своего обнаружения выполнения кода refactoring — постоянный источник ошибок pylint/pycheker обнаруживают только узкий класс проблем легко "протащить" некачественный в "продакшн" Тестировать необходимо, но как? насколько глубоко копать как найти баланс между гибкостью (скоростью внесения изменений) и надежностью кода Муки выбора (стратегии тестирования): ручное тестирование модульное тестирование функциональное тестирование Инструментарий: nose twill selenium Использование nose (мини-туториал) Приемы эффективного тестирования: разработка-через-тестирование (TDD, bialix) скорость исполнения тестов изоляция тестов заглушки (ввод/вывод, БД, внешние библиотеки) не нужно бояться вносить "ненужные" тестовые расширения в "продакшн" код (logging, hooks, etc.) Примеры проектов (с точки зрения тестирования) Ссылки: PTTT - http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy Agile testing blog, http://agiletesting.blogspot.com/ TIP mailing list, http://lists.idyll.org/listinfo/testing-in-python II. "Использование разработки через тестирование (TDD) в разработке системы Bazaar" . Докладчик: Александр Бельченко План доклада: Знакомство: кто я и о чем собираюсь рассказать Краткое описание процесса разработки системы Bazaar: Эрик Реймонд "Cathedral and Bazaar" Распределенная разработка системы Процесс включения правок в основной репозитарий: требования к новому коду и багфиксам (PEP-8, обязательное наличие тестов) отслеживание статуса патчей через Bundle Buggy ( http://bundlebuggy.aaronbentley.com/ ) code review, обратная связь объединение правок с основным кодом через сервис PQM (patch queue manager, http://pqm.ubuntu.com ), обязательный прогон тестов на сервере PQM. Проблемы разработки кросс-платформенной системы: краткий набор возможностей Bazaar и проблемы их тестирования почему нужно использовать питон-фреймворк для тестирования влияние ограничений различных платформ на тесты обратное влияние тестов на написание основного кода системы, или как писать удобный для тестирования код. Использование стандартной библиотеки unittest для построения тестовой подсистемы Bazaar: возможности и ограничения библиотеки unittest подсистема тестирования Bazaar: как расширяли возможности unittest (с конкретными примерами): улучшенное представление результатов тестирования расширенные базовые классы для тестов возможность пропуска тестов (из-за ограничений конкретной платформы); автоматическое создание наборов тестов по образцу при старте тестирования (клонирование тестов по единому образцу для ансамбля реализаций): тестирование черного ящика и поддержки unicode тестирование набора поддерживаемых транспортных протоколов (file://, sftp://, ftp://, http://, https://, bzr://); тестирование различных поддерживаемых конфигураций работы с bzr (автономные ветки, ветки в общем репозитарии, работа в стиле CVS/SVN); тестирование работы с различными поддерживаемыми форматами репозитария. benchmarks: подсистема оценки скорости работы основных операций, или вы не можете увеличить скорость работы если вы не можете ее измерить. много тестов: это хорошо или плохо? Влияние времени исполнения всех тестов на стиль работы: частичное тестирование останов по первой ошибке запуск "своих" тестов первыми муляжи, модели и реальные операции ввода-вывода Вопросы и ответы. Заключительное слово. III. "Профайлинг" . Докладчик: Андрей Светлов Введение timeit - за пару минут Python profiler статистический и событийный профайлер модуль profile: что сделать, чтобы его включить pstats - смотрим на результат интересна "первая страница" что-то метод много кушает/часто вызывается. Правим. на первой странице много лишнего. Правим pstats. Уже лучше. Этого мало - "в среднем по больнице температура 36.6". Нужен событийный perfmon. Для измерения производительности нужны в первую голову мерялки. Пишем первую. результат в консоль - ненаглядно пишем бросатель UDP пакетов с profile info нужен рисователь графиков. Создаем конфиги, раскраска, масштабирование и фильтрация итого... использование его же для отладки web. proxy profile server. Заключение. В периодах между докладами вас ждут кофе-брейки, способствующие плодотворному общению, знакомству и обмену опытом. Место проведения Зал находится в гостинице "Санкт-Петербург" возле Бессарабской площади. Адрес Гостиница "Санкт-Петербург", бул. Т. Шевченко, 4. В конференц-зале на 2-м этаже. Гостиница находится возле Бессарабской площади. Неподалёку от м. Театральная, м. Хрещатик и м. Льва Толстого. Карта Дата 31 марта 2007 года. Последняя суббота месяца. Начало в 14:00. Стоимость Вход бесплатный. Контакты ICQ : 254008282 Google Talk : ivan.pirog@gmail.com Jabber: mkdir@jabber.ru Skype: flexx_ut E-mail : ivan.pirog@gmail.com Тел.: (096) 816-82-82 (Иван aka Mkdir ) © 2006-2007 Exception , python seminar.