среда, 3 апреля 2013 г.

"Нельзя вот так просто взять и начать использовать TDD для Delphi"?



Можно! И НУЖНО!

И не только для Delphi. Для ВСЕГО! Для ЛЮБОГО кода!

Который написан - ВАМИ.

Для начала.

Напишите хотя бы "атомарный тест" - http://18delphi.blogspot.com/2013/04/blog-post_2326.html

Он вам поможет хотя бы при переходе на НОВУЮ версию Delphi.

Где "эти умники" поменяли AnsiString на WideString.

Правите ошибку, которая пришла вам от пользователей или от Группы Качества - напишите тест - http://18delphi.blogspot.com/2013/03/blog-post_54.html.

Не считайте себя "ГЕНИАЛЬНЫМ программистом, который всё предусмотрел". Такие в природе - НЕ ВСТРЕЧАЮТСЯ,

Есть в ТЗ фраза - "надо прохерачить красную линию". Вы программируете эту линию? ПИШИТЕ тест!

Не зря "люди которые умнее вас" - внесли эту фразу в ТЗ. Они - ДУМАЛИ. Долго и нудно.

И не зря они эту фразу там написали. Это - ТРЕБОВАНИЕ к системе.

А раз есть требование - значит его НАДО ПРОВЕРЯТЬ. Пишите тест!

Не дайте "этим умникам" выставить вас идиотом. БЫВАЮТ противоречивые ТЗ. А значит - БУДУТ противоречивые требования.

Так пусть "эти умники" - разбираются с ПРОТИВОРЕЧИВЫМИ требованиями. Которые показывают ДЕТЕРМИНИРОВАННЫЕ тесты. У тестов - НЕТ ЛИЧНЫХ предпочтений!

ВЫ - своё дело сделали. Написали код и и проверку к нему.

Пусть другие теперь - "чешут репу".

Я вас не убедил?

Идём дальше.

Мне вот тут начали писать - "вы пишете КАК, но не пишите ЗАЧЕМ". В тут я и пытаюсь донести - ЗАЧЕМ.

Зачем? Очень просто - есть ТРЕБОВАНИЯ, есть ошибки. Так или иначе - вы что-то кодируете. Если просто кодировать - не увидит НИКТО. Если при этом ещё и написать тест - УВИДЯТ ВСЕ. В частности - ваши коллеги, которые работают рядом.

Пока - просто поверьте мне на слово.

Требования и ошибки писали неглупые люди. И им ВАЖНО, чтобы ТРЕБОВАНИЯ выполнялись, а ОШИБКИ - больше не повторялись.

Посему имеем две ветки тестирования - функциональное - http://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 и регрессионное - http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.

Функциональное - это проверка ТЗ, регрессионное - проверка УЖЕ встреченных ошибок.

Бывает ещё - нагрузочное тестирование - http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Но это - ВООБЩЕ уже отдельная тема.

Не пытайтесь сделать "супер-тест", который "протестирует ВСЁ".

Вы потерпите неудачу. Если не потерпите, то обязательно напишите мне. Мне очень интересно на такой тест посмотреть.

Серебряной пули - нет.

"Путь в две тысячи ли начинается с одного шага".

Не думайте - "как протестировать ВСЁ и СРАЗУ".

Начните с МАЛОГО!

Пишите тесты по ТЗ и по ОШИБКАМ.

Я готов поспорить - после пары месяцев работы у вас наберётся внушительная база тестов.

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

ПЕРВЫЕ тесты писать долго и нудно. По себе знаю. У вас ещё нет должной инфраструктуры.

Но переступите через себя. В конце-концов - ПРОФЕССИОНАЛ вы или нет!?

Дальше - будет проще. Будет нарастать инфраструктура. База знаний. Эталоны. Типичные тесты.

Вы будете "наполнять скелет мясом".

И когда вы очередной раз исправите "эту маленькую ошибку от ГК" - у вас упадёт половина тестов.

И вы оперативно будете знать - "что, когда и зачем".

Исправите ОДНУ запятую и у вас пройдут ВСЕ тесты.

И вы напишете - НОВЫЙ. На эту "запятую". И может быть - скажете мне - "спасибо". А может - не скажете. Я - не гордый. Не расстроюсь.

Это я попытался написать - ЗАЧЕМ. Если опять же не убедил - буду писать дальше. Буду КРАЙНЕ признателен, если кто-нибудь пришлёт КОНКРЕТНЫЕ вопросы. Многие вещи мне лично кажутся - "очевидными", но это не значит, что они действительно очевидны.

Поверьте мне на слово.

Я уже не раз пытался "продать слона" (то бишь тесты) и не очень удачно пока. Значит я был неубедителен. Значит не нашёл нужных слов.

Если вы поняли ЗАЧЕМ, то - КАК - я буду долго и вдумчиво рассказывать. Следите за обновлениями.

Или я вас всё ещё не убедил?

P.S. Если у вас наберётся более менее внушительная база тестов - просто запустите из под утилитой QACoverage и вы увидите - сколько процентов кода у вас УЖЕ покрыто, а над сколькими - надо ещё работать.

Комментариев нет:

Отправить комментарий