Перейти к содержимому

Фотография

Зависимость тестов друг от друга в интеграционном тестировании

integration testing

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 26

#21 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 20 декабря 2016 - 13:19

Расскажу, как у нас.

 

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

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

Включая роль суперюзера, которая используется для тестов, где собственно проверяется процедура создания юзеров с разными ролями. 


  • 0

#22 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 20 декабря 2016 - 13:27

 

 

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

тоже хороший вариант, со своими достоинствами и недостатками

 

удобно что "всё сразу есть"

неудобно, что например надо поддерживать дамп при изменениях в базе. ну и сам дамп тоже поддерживать - например добавлять новых пользователей и роли в дамп когда в тесте требуется, удалять из дампа когда уже не требуются. Типа "удалил тест с user9. Но надо ли удалять user9 из дампа? Может кому нужен будет? А может нет?" Получается опять же что тесты зависят от создания базы. 


  • 0

#23 Vasiliy

Vasiliy

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 959 сообщений
  • ФИО:Касимов Василий
  • Город:Москва

Отправлено 20 декабря 2016 - 14:24

 

 

 

Создается, а не тестируется создание.
Сделайте запрос к БД на создание.

 

 

А вот тут проверяйте=)

так получается что создадим как минимум двух админов, одного "просто создали", а другого "создали и проверили"

 

хотя можно было "создать и проверить" - создав одного админа, а не двух

 

идея такая чтобы не создавать те же самые данные по нескольку раз

 

Ну да, создали двух админов. Вам жалко?) Или в БД мало места?

На мой взгляд, у вас не совсем верное применение бритвы Оккама)


  • 0

#24 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 20 декабря 2016 - 14:35

 

Ну да, создали двух админов. Вам жалко?) Или в БД мало места?

На мой взгляд, у вас не совсем верное применение бритвы Оккама)

это только для простенького примера "жили были два админа" :)

 

вот пример "более жизненный":

 

есть например система документооборота, возможно банковская либо другая финансовая, документы переводятся из одного статуса в другой с помощью джоба "закрытие дня", джоб крутится 5 минут

надо ввести 50 документов(например транзакций), прокрутить джоб и проверить каждый документ что правильный статус и дополнен правильными данными, и что сгенерились нужные транзакции, запустить генерацию отчёта и тоже проверить

 

ну тут полюбому надо зависимые тесты писать, не будешь ведь в каждом отдельном тесте закрывать день


  • 0

#25 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 20 декабря 2016 - 14:48

а вот пример когда "жалко" создать пользователей, из реальной жизни
 
в системе которую тестирую: 
- создать пользователя очень быстро, например 500мс
- добавить пользователю кредитку - осуществляется через тестовый гейтвей, расположенный вообще не у нас, долго - например 5 секунд
- положить пользователю денег на кредитку - опять тот же гейтвей, ещё 5 секунд
 
получается что постоянное создание пользователей для обеспечения "независимых" тестов значительно увеличивает время выполнения сьюта

  • 0

#26 Vasiliy

Vasiliy

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 959 сообщений
  • ФИО:Касимов Василий
  • Город:Москва

Отправлено 20 декабря 2016 - 15:26

Ясно.

Но в примере с 50 документами какие зависимости? Если вы не сможете создать 1 документ, то все равно будете закрывать день, так? Закрытие то надо проверить хоть на 50, хоть на 49?


  • 0

#27 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 20 декабря 2016 - 15:33

 

Ясно.

Но в примере с 50 документами какие зависимости? Если вы не сможете создать 1 документ, то все равно будете закрывать день, так? Закрытие то надо проверить хоть на 50, хоть на 49?

если делать тесты без зависимостей - будут сплошные костыли

 

а с зависимостями будет типа:

- 50 тестов на создание по одному документу, у каждого своя личная группа "ввод документа такого-то", плюс общая группа "ввод документов"

- один тест "закрытие дня", софт зависимость от группы "ввод документов"

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

 

в результате пускаем тесты:

- сначала пойдут создания документов, некоторые создадутся, некоторые зафейлятся

- потом после всех созданий и попыток созданий будет закрываться день

- потом начнутся проверки успешно созданных документов, проверки фейленных документов будут пропущены


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных