Можно! И НУЖНО!
И не только для 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 и вы увидите - сколько процентов кода у вас УЖЕ покрыто, а над сколькими - надо ещё работать.
Комментариев нет:
Отправить комментарий