вторник, 11 февраля 2014 г.

Написали тут ещё про тесты. Хороший вопрос

http://programmingmindstream.blogspot.ru/2014/02/blog-post_5.html?showComment=1392071571657#c3788910846027774849

"Подскажите плз. что делать, если есть куча унаследованного кода, где банально форма, на ней Grid, DataSet, Query. Всё это подключается к датамодуля каждой BPL. А на каждой форме всё прописано в тупую в обработчиках событий. Это вообще реально как то тестировать, и стоит ли тестировать, скажем форму которая делает банальный insert, update одной записи таблицы?"


Это РЕАЛЬНО - БОЛЬШОЙ и СЛОЖНЫЙ вопрос.

Тем более, что с Grid'ами и DataSet - я - на "Вы". Но если хотите - мы можем ПРЕДМЕТНО об этом поговорить.

Разобрать КОНКРЕТНЫЙ пример.

Два слова скажу всё же по поводу - "стоит ли тестировать, скажем форму которая делает банальный insert, update одной записи таблицы?"  надо тестировать не "форму", а бизнес-логику, которая делает это самый "Insert/Update".

А если такой бизнес-логики нет, то НАДО её для начала - ВЫДЕЛИТЬ.

И ОПИСАТЬ в ТЗ. А потом в тестах.

И опять приведу ссылку на Теплякова:

И "синергия тестов и архитектуры":

К "чему это я"?

К ТОМУ, что надо ТЕСТИРОВАТЬ НЕ ФОРМУ, а "бизнес-логику".

Тестирование "форм" это прибежище для "НЕУДАЧНИКОВ".

ЕГО НАДО ИЗБЕГАТЬ.

Хотя и не всегда возможно.

P.S. Вот тут написана одна вещь - "Всё это подключается к датамодуля каждой BPL". С ОДНОЙ стороны - "BPL это СЛОЖНО", потому, что "другое адресное пространство".

Но! С ДРУГОЙ стороны - BPL - "это ОЧЕНЬ ДАЖЕ НЕПЛОХО".


Почему?

Потому, что есть "ГРАНИЦА СРЕД". По которой может быть ПРОВЕДЕНА ГРАНИЦА "разделения ответственностей". И по ЭТОЙ ГРАНИЦЕ - можно выделить "бизнес-логику" и по ней проводить тестирование.

Вполне возможно.

Но для ТОЧНОЙ оценки надо ВИДЕТЬ "ИНТЕРФЕЙС" тех самых BPL.

P.P.S. Что хочу сказать?

BPL это - "аналог" DLL.

А DLL - "легко" тестировать? Почему?

Потому, что DLL имеет "ЧЁТКО описанный ИНТЕРФЕЙС" и имеет "чётко очерченную границу".

Мысль понятна?

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

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