Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2011, 04:08   #11
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию Этап пятый.

На пятом этапе мы реализуем методы релизного класса.

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

В тестовом классе обнаружились 3-4 грубых ошибки, которые были исправлены.

Получившиеся классы прикреплены к сообщению.
Вложения
Тип файла: txt RollbackReaderWrapper.java.txt (15.1 Кб, 158 просмотров)
Тип файла: txt RollbackReaderWrapperTest.java.txt (24.0 Кб, 156 просмотров)
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 06.06.2011, 04:55   #12
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

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

Что же нам дал TDD, и чем он лучше написания тестов после разработки (и тем более игнорирования модульного тестирования)?
1. Мы заранее составили большую часть контракта релизного класса.
2. Мы составили релизный класс так, чтобы его было удобно тестировать.
3. Тесты стали не только контролировать качество продукта, но и обеспечивать качество продукта.

Чем подход с тестированием лучше подхода без тестирования?
1. Вероятность появления ошибок в конечном продукте падает (перемножение вероятностей появления ошибок в тесте и в релизном классе меньше, либо равно любой из них).
2. Повышение устойчивости к ошибкам при добавлении и/или изменении поведения/функционала релизного класса (предположим, мы хотим добавить что-то, но совершили ошибку, которая повлияла на то поведение/функционал, которое мы не хотели менять - тесты того поведения/функционала скорее всего сразу выявят эту ошибку)

В первом сообщении я упоминал об исключениях в порядке следования этапов (10%, определены на вскидку) - эти исключения связаны с ошибками, которые все равно появляются(например, добавление новых методов в релизный класс на 4-м и 5-м этапах, добавление/изменение тестов на 5-м этапе).

Я далеко не гуру в TDD - применять его активно я стал только сравнительно недавно и среди моих знакомых, с которыми я часто общаюсь/общался, модульное тестирование крайне не в почете.
Многие обосновывали свою пренебрежение к TDD примерно одинаково: TDD обеспечивает только скорость разработки, снижая качество результата; что есть в корне не верно - TDD как раз обеспечивает качество продукта.

Я не профессионал в области составления руководств и как человеку, мне свойственно ошибаться - очень вероятно что я где-либо допустил ошибки или очень плохо изложил материал. Если вы обнаружили что-либо из этого (или вообще что-то чего я не ожидаю), сообщите мне об этом, я постараюсь как можно быстрее исправить недочеты/ошибки.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.

Последний раз редактировалось alexinspir; 12.06.2011 в 15:28.
alexinspir вне форума Ответить с цитированием
Старый 24.06.2011, 07:30   #13
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию update

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

В качестве задания для всех интересующихся: найти ошибку и написать к ней тесты поведения.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 19.11.2012, 12:02   #14
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Пример разработки программы на языке C по методологии экстремального программирования (с помощью CuTest):

Паказал на простом примере (взятом из readme.txt, из скаченного архива с CuTest): http://programmersforum.ru/showpost....4&postcount=41

Дополнение к предыдущей ссылке: http://programmersforum.ru/showpost....4&postcount=45

Пошаговая инсрукция начала применения CsUnit (для разработки на C#):

http://www.csunit.org/tutorials/tutorial8/index.html


Testing Framework:

http://c2.com/cgi/wiki?TestingFramework

Последний раз редактировалось 8Observer8; 19.11.2012 в 12:19.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Test-driven development [Smarik] Свободное общение 2 30.03.2011 10:46
Ответ по практике StudentMarat Свободное общение 1 14.09.2010 23:57
Задание по практике IPI Помощь студентам 4 15.06.2010 12:31
Отчот по практике sby Фриланс 3 12.05.2009 17:16
Программа по практике Antowka БД в Delphi 0 15.10.2007 10:40