Александр Бельченко на Exception Seminar #04

Nickname:Bialix
Город:Запорожье
Название доклада:"Использование разработки через тестирование (TDD) в разработке системы Bazaar"
О докладе:
  1. Знакомство: кто я и о чем собираюсь рассказать
  2. Краткое описание процесса разработки системы Bazaar:
    • Эрик Реймонд "Cathedral and Bazaar"
    • Распределенная разработка системы
    • Процесс включения правок в основной репозитарий:
      • требования к новому коду и багфиксам (PEP-8, обязательное наличие тестов)
      • отслеживание статуса патчей через Bundle Buggy
      • code review, обратная связь
      • объединение правок с основным кодом через сервис PQM (patch queue manager, http://pqm.ubuntu.com), обязательный прогон тестов на сервере PQM.
  3. Проблемы разработки кросс-платформенной системы:
    • краткий набор возможностей Bazaar и проблемы их тестирования
    • почему нужно использовать питон-фреймворк для тестирования
    • влияние ограничений различных платформ на тесты
    • обратное влияние тестов на написание основного кода системы, или как писать удобный для тестирования код.
  4. Использование стандартной библиотеки unittest для построения тестовой подсистемы Bazaar:
    • возможности и ограничения библиотеки unittest
    • подсистема тестирования Bazaar: как расширяли возможности unittest (с конкретными примерами):
      • улучшенное представление результатов тестирования
      • расширенные базовые классы для тестов
      • возможность пропуска тестов (из-за ограничений конкретной платформы);
      • автоматическое создание наборов тестов по образцу при старте тестирования (клонирование тестов по единому образцу для ансамбля реализаций):
        • тестирование черного ящика и поддержки unicode
        • тестирование набора поддерживаемых транспортных протоколов (file://, sftp://, ftp://, http://, https://, bzr://);
        • тестирование различных поддерживаемых конфигураций работы с bzr (автономные ветки, ветки в общем репозитарии, работа в стиле CVS/SVN);
        • тестирование работы с различными поддерживаемыми форматами репозитария.
      • benchmarks: подсистема оценки скорости работы основных операций, или вы не можете увеличить скорость работы если вы не можете ее измерить.
    • много тестов: это хорошо или плохо? Влияние времени исполнения всех тестов на стиль работы:
      • частичное тестирование
      • останов по первой ошибке
      • запуск "своих" тестов первыми
      • муляжи, модели и реальные операции ввода-вывода
  5. Вопросы и ответы.
  6. Заключительное слово.