понедельник, 26 мая 2008 г.

Справочник - инструменты для тестирования

Еще один интересный сайт, справочник по open-source инструментам для тестирования.

Выбираем категорию тестирования (функциональное, юнит, ...), и читаем список доступных инструментов с описанием и ссылками.

Например, модульное тестирование на .Net, модульное тестирование на Java или модульное тестирование баз данных.

четверг, 22 мая 2008 г.

SQADays2008 - Разработка ведомая приемочными тестами и FIT

27 мая буду выступать на конференции SQADays2008 про Разработку через приемочные тесты (Acceptance test driven development) и применение FIT.

В принципе, доклад пересекается с одной из наших встреч AgileRussia, но примеры более живые и понятные (по крайней мере я на это надеюсь:) ).

Формат конференции подразумевает общение у флипчарта после каждого доклада - приходите, должно быть интересно!

livents.ru

среда, 21 мая 2008 г.

Design and Refactoring Patterns

Сайт из разряда must have, что называется. Или must bookmark.

В общем, зайдите сами и все поймете: подробнейшее описание рефакторинга, паттернов проектирования и антипаттернов (включая управление проектами). Почти ко всем статьям прилагаются картинки.

Ребята здорово постарались!

http://sourcemaking.com

вторник, 20 мая 2008 г.

Парное программирование - что это такое и какие дает преимущества

Сегодняшний тренинг по инженерным практикам XP окончательно убедил меня в том, что очень многие у нас плохо себе представляют (или представляют хорошо, но неверно), что такое парное программирование и какие преимущества можно извлечь из его применения в проекте.
Собственно, поэтому родился этот пост.

Итак, Парное программирование - одна из методик Экстремального Программирования (eXtreme Programming), заключающаяся в том, что два человека ОДНОВРЕМЕННО трудятся над ОДНОЙ ЗАДАЧЕЙ и сидят при этом ЗА ОДНИМ компьютером.

Очень важно помнить, что в каждый момент времени они ОБА заняты решением задачи, например пока один (driver) пишет тест, другой (navigator) думает о коде, который реализует этот тест.

Применение парного программирования, в противоречие мнению большинства наших менеджеров проектов, позволяет улучшить общую производительность команды.

За счет чего это достигается?

  • При работе в паре решения задач приходят быстрее (две головы лучше, чем одна), и эти решения более качественные.


  • Пока вы пишите код, партнер думает на шаг вперед, и как только вы остановились, он берет у вас клавиатуру и продолжает писать, а вы смотрите, что он делает и начинаете думать над вашим следующим шагом.


  • Постоянное общение и совместная работа позволяет максимально повысить обмен знаниями и опытом внутри пары. Это идеальный способ для ввода в команду нового разработчика


  • Работа в паре дисциплинирует (нельзя просто встать и пойти курить или начать общаться по ICQ или смотреть любимые сайты).


  • Увеличивается кроссфункциональность в проекте, т.е. снижаются риски, связанные с отсутствием человека на работе (болезнь, увольнение).


  • И, наконец, это просто постоянное общение! (да, программистам это тоже нужно)


  • Не верите? Нужно просто попробовать!

    Это легко - попросите коллегу, с которым вам приятно работать, помочь вам с решением какой-нибудь сложной задачи за вашим компьютером. Дайте ему клавиатуру, пусть пишет код. Как только начнет останавливаться или сомневаться, а у вас появилась идея - выхватывайте клавиатуру и продолжайте. Как только он поймет вашу мысль и начнет давать советы - отдайте клавиатуру и пусть снова пишет он.

    У вас получится!

    Для примера: эпизод экстремального программирования (конечно же в паре)

    понедельник, 19 мая 2008 г.

    Риски в Agile проектах

    Книги по гибким методологиям практически не уделяют внимания проектным рискам, поэтому приходится как всегда искать в гугле :)

    Вот кратко один из подходов, на мой взгляд весьма разумный:

  • идентификация рисков производится всей командой на митинге планирования

  • каждый пишет на листочках те риски, которые он считает возможными в планируемой итерации

  • листочки вывешиваются на доску и презентуются команде

  • листочки могут быть сгруппированы по предметным областям

  • команда голосует за те риски, которые кажутся ей наиболее критичными (как на ретроспективах)

  • риски связываются с элементами backlog'a, на которые могут оказать влияние

  • формируется план действий для снижения вероятности возникновения рисков

  • происходит постоянный мониторинг рисков, например на ежедневных скрам-митингах


  • Основная идея - вовлечь в идентификацию и мониторинг рисков всю проектную команду, чтобы обеспечить ей видимость влияния рисков на достижение целей итерации.

    Взято отсюда: Agile Risks \ Agile Rewards

    среда, 14 мая 2008 г.

    Тренинг: Разработка через тестирование

    - Как проектной команде начать писать модульные тесты и делать это правильно?
    - Что такое на самом деле модульные тесты и какие есть паттерны по их разработке?
    - Как добиться максимального покрытия кода модульными тестами?
    - Как изменить образ мышления и начать писать тесты еще до написания кода?
    - Какие это дает преимущества?
    - Как получить уверенность в том, что написанный код действительно работает?

    Ответ на эти и многие другие вопросы вы можете получить на тренинге по Test Driven Development (TDD).

    Помимо этого, на практическом занятии у вас будет возможность, работая в паре с коллегой, собственными руками под чутким руководством тренера попробовать TDD и проникнуться необходимостью его применения в вашей работе.

    Первое время это очень трудно - заставить себя писать тест перед написанием кода, а затем писать минимум кода для того, чтобы тест стал зеленым.
    А тренинг - это самый быстрый и правильный способ научиться новому.

    Целевая аудитория: разработчики и тимлиды.
    Длительность тренинга: 6-7 часов.
    Стоимость: на текущий момент (до июня) всего 3500 рублей.

    Вы можете заказать проведение тренинга как отдельно для своей команды, так и присоединиться к уже существующей группе.

    Следующий тренинг будет проведен 30 мая, запись открыта - присылайте свои заявки на dlobasev ^ mail . ru

    P.S. Чуть позже опубликую отзывы об уже проведенных тренингах - скажу сразу, TDD действительно очень интересен командам, для которых важно качество разрабатываемого продукта.

    понедельник, 12 мая 2008 г.

    FITPro web - среда управления FIT тестами

    Очень хочется найти замену Fitnesse, в которой тесты нужно писать в wiki формате - если честно, не очень удобно. Да и то, что тесты не хранятся в общем репозитории рядом с кодом, тоже не очень хорошо.

    Давно приглядывался к FITPro Web - некоторому аналогу Fitnesse, но без недостатков последнего. Из заявленных преимуществ:
    - тесты создаются в WYSIWYG html редакторе - соответственно, не сложнее, чем в Word.
    - есть возможность просмотра истории запусков с результатами.
    - интеграция с системой контроля версий.

    Но, к сожалению, текущая версия 1.0 мало подходит под серьезное использование: глючит навигационная панель, почему-то не отображаются (и не записываются никуда) ошибки в тестах - а это ведь самое главное, что хочется видеть :) Правда, я пробовал только dotnet тесты, может быть на java проблемы с отображением ошибок нет.

    Жаль, что проект развивается не очень активно - идея изначально интересная!
    Посмотрим, что будет дальше - opensource все-таки.
    А пока - обратно в Fitnesse.

    четверг, 8 мая 2008 г.

    VS2008 Express for free

    Для меня было новостью, что Microsoft начала распространять бесплатные версии студии 2008.
    Вчера скачал, ~50mb, C# - установка занимает 10 минут, вроде все работает.

    Единственное, не понял, как прописать в debug режиме вызов nUnit для моей .dll - в полной версии такая штука работает.

    В общем, теперь есть альтернатива SharpDevelop, который хоть маленький и быстрый, но все же немного непривычный.

    UPD: Вот и настал момент, когда студия запросила регистрационный код, для получения которого нужно регистрироваться на сайте.. и т.д и т.п - ну ее, снес.