Домашняя лаборатория мудрого KAA

Юнит-тесты - это боль?

Просмотров: 1369Комментарии: 2
Delphi

Если сравнивать информационную систему с человеческим телом, тесты - это нервная система. Тест, который завершился с ошибкой, - это боль, которую испытывает человек, если ранит свое тело.

Франкенштейн и монстр

Однако существует болезнь, которая делает людей невосприимчивыми к боли. Эта болезнь у человека называется “сенсорно-вегетативная невропатия IV типа”. В сериале “Доктор Хаус” есть серия, посвященная этому недугу. Люди, которые им страдают, должны регулярно осматривать себя на предмет травм и переломов. Но как быть нарушениями внутри тела? Если человек не чувствует боли, как он поймет, что у него лопнул аппендикс?

Наверное, вы уже понимаете, куда я клоню. Любая серьезная система должна иметь механизм контроля своего состояния. Особенно это касается динамически развивающихся систем.

Забавно, но можно сравнить информационную систему с чудовищем Франкенштейна (дальше по тексту Франки), а разработчика - с самим доктором. Разработчик берет куски кода, сшивает их вместе, и получается нечто новое, страшное, но по-своему красивое. Поначалу монстр не хочет оживать, потом ведет себя как ребенок, делает то, что нельзя и не так, как задумано. Но доктор вносит изменения в “конструкцию” и постепенно заставляет свое творение выполнять свою волю.

Итак, представим себе, что:

  • Информационная система - это монстр Франкенштейна, который не чувствует боли.
  • Разработчики - это сумасшедшие ученые и доктора, которые хотят сделать свое творение безупречным и постоянно изменяют и совершенствуют его.

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

    Ноги в мусорной корзине

    После операции монстра выпустили погулять. С виду новые ноги отличные, девушки заглядываются, но как понять, что они работают не хуже тех, что были до них? Со старыми ногами Франки спокойно делал комплекс физических упражнений, пробегал 20 километров, прыгал в высоту на 2 метра и толкал ногами вес в 300 килограмм. Хорошо, что наши педантичные яйцеголовые ученые все записывали. Теперь остается только понять, смогут ли новые ноги сделать то же самое.

    Как вы думаете, новые ноги оказались лучше старых? Несмотря на свою красоту и силу, они потребляли слишком много крови, а сердце и кровеносная система были не приспособлены к таким нагрузкам. В итоге Франки очень быстро пробежал первую четверть дистанции, а потом потерял сознание, сердце его остановилось, и пришлось проводить комплекс реанимационных мероприятий. Причём это случалось регулярно.

    Выяснение подобных последствий и должно было стать целью тестирования. Когда вы улучшаете или изменяете свою систему, вы можете ее “убить”, а вместе с ней убить и свою репутацию.

    Сыграли в русскую рулетку. Получилось жёстко...

    А что тестировщики?

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

    По большому счету тестировщики должны проверять корректность работы бизнес-логики и пригодность системы со стороны пользователя. На этом этапе работа всех функций и методов уже должна быть проверена при помощи юнит-тестов.

    Появление технических ошибок на этом уровне - признак некачественных тестов.

    Если система не умеет тестировать себя сама, необходимо использовать внешнее тестирование, которое позволяет убедиться, что система делает все, как раньше.

    Если система не покрыта тестами, любое изменение - это игра в русскую рулетку.

    Вывод

    Перед изменением любого алгоритма необходимо создать тест, который сможет проверить корректность работы этого алгоритма. Только после этого можно вносить изменения, а затем проверять их корректность при помощи ранее написанных тестов.

  • Комментариев: 2 RSS

    1 realitysgjska 24-02-2024 16:58

    Дорогиe друзья!

    Сдадим без комиссии квартиру по адресу: Санкт-Петербург, улица Достоевского, 11:

    https://www.avito.ru/sankt-peterburg/kvartiry/3-k._kvartira_112_m_44_et._2500927233

    УСЛОВИЯ:

    Moжнo ли с детьми?

    Дети - этo прaздник жизни. Конечно, можнo!

    - 86500 (Восемьдесят шесть тысяч пятьсот) рублей + к/у;

    - Залог 100%;

    О КВАРТИРЕ:

    Что есть в квартире, чего нет на фото:

    - Посудомоечная машина на кухне;

    - Тёплые полы;

    - Кофемашина и Тостерница;

    - Домашний кинотеатр в гостиной;

    - Кондиционер;

    - Удобная гардеробная 4-5 квадратных метров в спальной комнате;

    - Наборы постельного белья,одеял, подушек;

    - WI-FI Роутер и ключница в прихожей.

    ПАРКИНГ:

    Мы дадим вам ключ от ворот, чтобы вы могли ставить свой авто в закрытом дворе.

    МЕСТОРАСПОЛОЖЕНИЕ:

    С одной стороны, вы живёте в центре города, где доступно ВСЁ.

    С другой же - в вашей квартире абсолютная тишина и приватность.

    Квартира выходит на 3 стороны: окна с 2-х сторон выходят во двор, а с третьей - на Свечной.

    Поэтому здесь вы будете чувствовать себя в тепле и защищённости.

    пять мин. пешком до ст.м. Владимирская без светофоров и пешеходных переходов.

    О доме:

    Тип дома: кирпичный

    Год постройки: Одна тысяча восемьсот шестьдесят восьмой

    Этажей в доме: четыре

    Парковка: за шлагбаумом во дворе

    2 Sowncfj 07-03-2024 22:38

    Спасибо предназначенных для доставки этого рода хорошо сочетаются информация. Посетите также мою страничку

    посмотрите также мою страничку и дайте ей оценку

    http://damoa2019.maru.net/bbs/board.php?bo_table=free&wr_id=101449 eкскурзия виетнам лаос камбоджа тайланд

    http://dpe.kangwon.ac.kr/bbs/board.php?bo_table=photogallery&wr_id=380145 тайланд и виетнам

    https://traderinput.com/forums/users/jerome0028/ летище краби

    http://www.pirooztak.ir/?option=com_k2&view=itemlist&task=user&id=719487 времето в краби

    https://spmall.kr/bbs/board.php?bo_table=free&wr_id=545159 нощен живот патая

    https://anotepad.com/note/read/d9ew72i7 патая храм на истината

    https://traderinput.com/forums/users/charamicklem/ остров пукет плажове

    https://anotepad.com/note/read/7qt756nx софия пукет

    =pat=

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

    Используйте нормальные имена

    Вы можете войти под своим логином или зарегистрироваться на сайте.

    (обязательно)