Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile: разработка + тестирование

Agile: разработка + тестирование

Александр Бындю

September 29, 2010
Tweet

More Decks by Александр Бындю

Other Decks in Technology

Transcript

  1. www.dotnetconf.ru
    Agile

    разработка + тестирование
    Александр Бындю


    Компания «Главснаб», технический директор

    View Slide

  2. www.dotnetconf.ru
    Темпы разработки
    Время
    Функциональность

    View Slide

  3. www.dotnetconf.ru
    ПН ВТ СР ЧТ ПТ
    Планирование итерации

    Заказчик + разработчики + тестировщики
    1 2 3
    5
    8
    Я как…


    Залогиненый пользователь


    Могу…


    Выйти из личного кабинета,
    нажав ссылку «Выйти»


    При этом…


    •Попадаю на главную
    страницу


    •Выход из системы
    заносится в лог
    Я как…


    Залогиненый пользователь


    Могу…


    Выйти из личного кабинета,
    нажав ссылку «Выйти»


    При этом…


    •Попадаю на главную
    страницу


    •Выход из системы
    заносится в лог
    Я как…


    Залогиненый пользователь


    Могу…


    Выйти из личного кабинета,
    нажав ссылку «Выйти»


    При этом…


    •Попадаю на главную
    страницу


    •Выход из системы
    заносится в лог
    3
    1 2
    2
    1 1
    Управление

    View Slide

  4. www.dotnetconf.ru
    ПН ВТ СР ЧТ ПТ
    Ценность планирования –
    создание измеримого плана
    Управление

    View Slide

  5. www.dotnetconf.ru
    ПН ВТ СР ЧТ ПТ
    Управление
    Визуализация результата

    View Slide

  6. www.dotnetconf.ru
    ПН ВТ СР ЧТ ПТ
    Делаем ответвление

    View Slide

  7. www.dotnetconf.ru
    ПН ВТ СР ЧТ ПТ
    Заливка новой версии
    Как выпустить релиз?

    View Slide

  8. www.dotnetconf.ru
    Что помогает программистам?
    • Принципы проектирования SOLID


    • Рефакторинг


    • Test-Driven Development


    • Коммуникация


    –Стендапы


    –Парное программирование


    –Общее владение кодом


    • Постоянный рост над собой
    Разработка

    View Slide

  9. www.dotnetconf.ru
    Принципы проектирования
    Single Responsibility Principle


    Open/Close Principle


    Liskov Substitusion Principle


    Interface Segregation Principle


    Dependency Inversion Principle
    Разработка

    View Slide

  10. www.dotnetconf.ru
    Постоянный рефакторинг
    1. улучшение того, что только что написал


    2. улучшение системы в следствии внесения
    новой функциональности
    Разработка
    Рефакторинг возможен только при
    наличии модульных тестов

    View Slide

  11. www.dotnetconf.ru
    Главное правило рефакторинга
    Лучшее –


    враг хорошего
    Разработка

    View Slide

  12. www.dotnetconf.ru
    Рефакторинг и технические долги
    Разработка

    View Slide

  13. www.dotnetconf.ru
    Test-Driven Development
    ―Рефакторинг


    ―Документация к коду


    ―Проектирование


    ―Покрытие тестами
    Разработка
    1. Пишем тест


    2. Пишем код, чтобы тест скомпилировался


    3. Запускаем тест – он не проходит


    4. Реализуем функциональность пока тест не пройдет


    5. Делаем рефакторинг


    View Slide

  14. www.dotnetconf.ru
    Что помогает тестировщикам?
    • Раннее обнаружение ошибок


    • Фиксация ошибки в
    интеграционных тестах


    • Автоматизация запуска всего
    набора тестов


    • Аудит на живых серверах
    Разаботка
    Тестирование

    View Slide

  15. www.dotnetconf.ru
    Раннее обнаружение ошибок
    Тестирование
    Стоимость
    обнаружения
    Время
    Планирование Разработка Тестирование Выпуск

    View Slide

  16. www.dotnetconf.ru
    А если возникают ошибки?
    1. Восстанавливаем ошибку с помощью
    интеграционного теста
    Тестирование
    3. Интеграционный тест проходит, а значит
    такая ошибка больше не повторится
    2. Если нет сложности в исправлении, то
    проблему решает сам тестировщик,
    иначе переходит программисту

    View Slide

  17. www.dotnetconf.ru
    Автоматизация запуска

    всего набора тестов
    Запуск каждую ночь
    или «по щелчку»
    Тестирование

    View Slide

  18. www.dotnetconf.ru
    Аудит
    • Специальный сервис
    отслеживает запуск консольных
    приложений


    • Ошибки подробно логируются на
    живых серверах в момент
    возникновения
    Тестирование

    View Slide

  19. www.dotnetconf.ru
    ПН ВТ СР ЧТ ПТ
    Ретроспектива –

    оценка результата итерации
    ―Какие есть проблемы?


    ―Что можно улучшить?
    Управление

    View Slide

  20. www.dotnetconf.ru
    ПН ВТ СР ЧТ ПТ
    Куда девать
    незаконченные карточки?
    Управление

    View Slide

  21. www.dotnetconf.ru
    Темпы разработки
    Время
    Функциональность

    View Slide

  22. www.dotnetconf.ru
    Границы
    применимости

    View Slide

  23. www.dotnetconf.ru
    Динамика изменений


    (% в месяц)
    30
    10
    5
    1
    50
    70
    50
    30
    10
    90
    Культура


    (% анархия против порядка)
    бюджет проекта
    серьезные средства
    жизнь человека
    жизни многих
    комфорт
    Критичность


    (потери из-за дефектов)
    80
    70
    50
    30
    90
    Квалификация


    % новичков / % матёрых
    20
    30
    50
    70
    10
    Размер


    (кол-во участников)
    10
    30
    50
    3
    100
    Можем себе позволить
    Осваивание бюджета
    Частный бизнес
    Заинтересованность руководства


    в эффективности
    Работаю и ладно

    View Slide

  24. www.dotnetconf.ru
    Обратная связь
    [email protected]


    http://blog.byndyu.ru


    alexanderbyndyu

    View Slide