powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тестирование логики
11 сообщений из 11, страница 1 из 1
Тестирование логики
    #39517098
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос форумчанам - есть ли у вас тестирование логики ХП и триггеров? И если да, то как/на чем?
Пример: есть ХП, которая с указанными входными параметрами делает обновление в пяти таблицах, удаление в трех и вставку в одну. После изменения ХП, надо проверить, что затронутые таблицы остались теми же.
...
Рейтинг: 0 / 0
Тестирование логики
    #39517114
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax> После изменения ХП, надо проверить, что затронутые таблицы остались теми же.

В смысле, "изменились как надо" ?

P.S. Как, как... Функциональными тестами на
синтетических (или куске реальных) данных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Тестирование логики
    #39520158
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

Есть. Используется маленькая самописная утилитка на питоне. На вход принимает файл в формате json с указаниями какие запросы выполнить и какой ожидать результат. Результатом может быть не только число/строка, но и ошибка и равенство ("field1 = field2) и неравенство ("id > 0").
...
Рейтинг: 0 / 0
Тестирование логики
    #39520212
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline> какой ожидать результат. Результатом может быть не только число/строка,
miwaonline> но и ошибка и равенство ("field1 = field2) и неравенство ("id > 0").

Ну т.е. DML-процедуры ей не проверить...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Тестирование логики
    #39520255
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Результат выполнения вполне себе проверить можно. Если я правильно понял CyberMax-a, ему надо убедиться что после выполнения процедуры данные в таблицах соответствуют ожидаемым. Собственно, для выполнения (в том числе) похожих задач оно и используется.
...
Рейтинг: 0 / 0
Тестирование логики
    #39520260
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax, что ты имеешь в виду под "затронутые таблицы остались теми же"? Убедится, что зависимости остались теми же?
...
Рейтинг: 0 / 0
Тестирование логики
    #39520285
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devCyberMax, что ты имеешь в виду под "затронутые таблицы остались теми же"?
Что не были изменены другие таблицы и что состав измененных таблицы остался тем же самым.
...
Рейтинг: 0 / 0
Тестирование логики
    #39520304
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline> Результат выполнения вполне себе проверить можно.
miwaonline> данные в таблицах соответствуют ожидаемым.

А как ты передашь набор данных (и тем более несколько) в свой скрипт?

CyberMax> Что не были изменены другие таблицы

ИМХО, проверять что другие таблицы не изменены, это какой-то маразм.
А вот проверять данные (ну и связность, если хочется вручную) без их
копии или ещё одной ХП/EB/клиента (скрипта) нереально. Да и проще
просто сверить два (перечня) НД между собой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Тестирование логики
    #39520336
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxrdb_devCyberMax, что ты имеешь в виду под "затронутые таблицы остались теми же"?
Что не были изменены другие таблицы и что состав измененных таблицы остался тем же самым.Как состав таблиц может остаться тем же, если в логику ХП заложено изменение таблиц - "делает обновление в пяти таблицах, удаление в трех и вставку в одну"? Тебе тест на регрессию нужен? Возьми две одинаковые базы, в одной прогони старый скрипт, а в другой новый, затем сделай выборку из этих баз и сравни результаты (естественно программно). Конечно, такое сравнение не дает 100% гарантии отсутствия регрессии, но хоть что-то...
...
Рейтинг: 0 / 0
Тестирование логики
    #39520366
Болтаювпт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамmiwaonline> Результат выполнения вполне себе проверить можно.
miwaonline> данные в таблицах соответствуют ожидаемым.

А как ты передашь набор данных (и тем более несколько) в свой скрипт?
Холодное копирование в эталонную тестовую базу. В эталоне - отдельные записи на отдельные тесты, в тестах - хардкод соответствующих id, можно с комментариями.
...
Рейтинг: 0 / 0
Тестирование логики
    #39520420
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамmiwaonline> Результат выполнения вполне себе проверить можно.
miwaonline> данные в таблицах соответствуют ожидаемым.

А как ты передашь набор данных (и тем более несколько) в свой скрипт?

По-всякому: можно sql-скрипт выполнить перед запуском теста, можно bash/python/cmd. Можно непоредственно в тесте нужные данные вносить:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
{
  "id": "001",
  "name": "first test",
  "author": "developer",
  "description": "This is description of a test.",
  "data_files": ["test1-1.sql", "test1-2.sql"],
  "test_files": ["test1.sh", "test1.py"],
  "test_statements": 
  [
    {"sql": "insert into t1(a,b,c) values(1,2,3)"},
    {"sql": "execute procedure p1"},
    {"sql": "select a as t1, b as t2, c as t3 from t1", 
     "expect_values": {"t1": "1"},
     "expect_equals": ["t1", "t2", "t3"]
    }
  ]
}



Сам скрипт на гитхабе валяется: https://github.com/miwaonline/fdbtest Правда оно писалось для внутреннего употребления, так что с оформлением и документацией все плохо. Но если интерессно, реальных примеров набросать могу. Да и код там не особо сложный.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тестирование логики
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]