Wednesday, April 12, 2006

Тестирование как средство проектирования

На мой взгляд, принцип test first - отличная техника проектирования. По крайней мере, опыт использования такого подхода при разработке библиотеки классов для финансовых приложений - крайне положительный. Энтузиазм по поводу TDD, или Test-Driven-Development, при котором тест пишется до самого класса, основан, возможно, как раз на том, что такая техника восполняет недостаток / исправляет на раннем этапе недочеты дизайна. Дополнительное преимущество: когда класс написан, уже готовы тесты чтобы его протестировать. Если тесты писать после классов, то шансы велики, что тесты не будут написаны вообще.

Недостаток пропаганды TDD, на мой взгляд, - в утрировании принципа test first, его аксиоматизации и возведении на пъедестал, где он приобретает абсурдный вид. По крайней мере, так его часто подают в статьях. Такой подход совершенно естественно вызывает скептицизм практикующего программиста, поскольку написание теста сначала имеет свои неудобства - например, невозможность пользоваться IntelliSense при вызове методов класса. (Кстати, Resharper решает эту проблему.) Поэтому понять прелесть подхода часто можно только попробовав его на практике. Принцип "test first" нужно использовать не как догму, а как мощный инструмент, который качественно меняет подход к разработке ПО, но имеет свою область применения, если смотреть на него в контексте полного цикла разработки.

Отражение взгляда на тесты как на нечто очень важное я нашел в статье о тестировании в Microsoft. О значении, которое там придается тестам, говорят следующие факты:

  • позиция тестировщика называется Software Design Engineer in Test
  • число тестеров на 40% больше, чем число разработчиков
  • планы тестирования внушительны (отрывок)
  • тесты изначально автоматизированы

В общем, совершенно согласен с таким подходом, и рад, что мой взгляд на тесты как на что-то первостепенное, находит подтверждение в методике разработки софтверного гиганта.

Monday, April 10, 2006

Калькулятор паев

Мое небольшое произведение - Калькулятор паев. Программа предназначена для держателей паев паевых инвестиционных фондов (ПИФ). Скачивает стоимость паев из Интернет, рассчитывает данные портфеля.