Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > XP and xUnits


Автор: chaos 26.4.2005, 17:20
здрасте!!!
вот прочитал книгу XP(eXtremal Programming) и вот заинтересовало меня тестирование модулей.
что вы вообще думаете по этому поводу, может у кого есть личный опыт и где можно взять этот модуль(вроде как cppUnits для тэстирования)?

Автор: Alastis 26.4.2005, 19:48
модуль лежит http://sourceforge.net/projects/cppunit
Сам тоже только ознакомился с экстремальным прогрммированием, так что опыта еще нет, но сама идея XP программирования очень интересная, стоит попробовать

Автор: chipset 27.4.2005, 01:04
А ещё есть boost::Test. В теории, следовало бы юзать его - ибо стандартом он будет smile

Автор: chaos 27.4.2005, 11:10
Цитата(chipset @ 27.4.2005, 01:04)
А ещё есть boost::Test. В теории, следовало бы юзать его - ибо стандартом он будет smile

да чето я его поставить не могу этот буст (

Автор: chaos 27.4.2005, 12:29
да и еще, как хоть пользоваться этим cppUnit?

Автор: Dark Elf 27.4.2005, 15:26
http://www.software-testing.ru/lib/novichkov/xp_testing.htm

Автор: Nastya 9.8.2005, 16:48
Вот и я только-что почитала. Меня весьма заинтересовала концепция. Но хотелось бы узнать кто-нибудь уже работал в такой комманде? И как результат?

Автор: comcon1 9.8.2005, 17:10
А я вот ни в какой модели не работал, но статьи по XP читал, и мне тоже больше понравилось, чем остальное.
Да. Еще полистал доку по boost::test. Огромнющая, блин. smile

Автор: seagull 11.8.2005, 14:01
Еще есть неплохой модуль тестирования CxxTest. Он и проще в обращение и быстрей работает.
По поводу опыта, то я использовал тестирование в личном проекте - удобно, но не тогда, когда очень спешишь smile

Автор: Romikgy 11.8.2005, 16:47
Цитата(chaos @ 26.4.2005, 17:20)
вот прочитал книгу XP(eXtremal Programming)

Где ее взять на пролистание???

Автор: Orlan 15.8.2005, 12:30
Уже почти год использую модульное тестирование и очень доволен.
Раньше я вручную проверял работоспособность программы (писал в лог контрольные значения, сидел в дебаге, сверял ход программы и т.п.). Но стало лень каждый раз это делать. И я решил припахать компа - все равно почти нихера не делает smile
Начал писать по принцыпу:
0. Думаю что вообще хочу.
1. Пишу декларации классов и заглушки для методов.
2. Пишутся тесты. Я говорю компу что хочу получить на выходе, дав конкретные данные на входе. Чемь меньше шаг, тем лучше, только стараюсь быть не черепахой.
3. Компилируется (если нет, то goto 1)
4. Прогоняю тесты. Зачастую новые тесты не срабатывают и приходится самому реализовывать тела методов smile (компы нынче не очень умные что бы самим писать для себя проги).
5. Если все сработало, то иду к пункту 0 писать новый тест.

Фактически вся работа заключается в написании тестов, а код пишется лишь для того, что бы они правильно работали smile. Другими словами я реализую функционал, а не пишу какие то там классы.

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

Вот так я заставил делать комп черновую работу smile
Использую CppUnit, boost::test очень не понравилась.

Фактически я пишу используя TDD (Test drived development, разработка основанная на тестах): сначала тесты, а потом код. Код теперь стал очень стабильным, все контрольные примеры выполняются каждый раз при тестировании. Вот только пользовательский интерфейс не тестирую - сложно, да я не из тех, кто в обработчике событий OnClick1 будет вычислять тройные интегралы, а свои элементы управления пользовательским интерфейсом не пишу, так что в частичном нетестрировании нет особой проблемы - это делается вручную и как правило работает, логики там ноль.

Всем советую переходить на TDD и сначала писать тесты, а потом реализовывать код.
Вот почему (резюме)
1. Контрольные примеры сохраняются
2. Комп тестирует за секунды, а не за пол часа как люди
3. Не пишется лишний код, который потом выбрасывается. Идет разработка сверху вних, а не наоборот.
Вот вкратце и все, в литературе больше найдете

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)