Bro, manage test data like a pro! (Mikalai Alimenkou, Ukraine) [RU]

00:44:20
https://www.youtube.com/watch?v=bd1l1rK8S8o

Zusammenfassung

TLDRNikolai, consultant indépendant, discute de l'importance des données dans l'automatisation des tests. Il souligne que les tests doivent être indépendants des données pour améliorer leur exécution parallèle et leur efficacité. Nikolai détaille les trois composants d'un test : la logique de test, les données de test et l'application driver. Il aborde également les différentes méthodes pour gérer les données dans les tests, y compris l'utilisation de données en direct, les enregistrements de données, et les bases de données, tout en mentionnant les inconvénients associés à ces méthodes. La présentation met en avant la nécessité d'avoir un bon soutien infrastructural et de maintenir les données à jour pour assurer un processus de test fluide.

Mitbringsel

  • 🔍 Importance des données tests
  • 💡 Tests indépendants pour parallélisme
  • 🛠️ Application Driver et logique de tests
  • 📊 Gestion efficace des données de tests
  • 🚀 Stratégies pour améliorer l'exécution des tests
  • 🌍 Accès aux matériaux de conférence
  • 🎤 Participation à des conférences de test
  • 📚 Partage de connaissances et expertise
  • 🔗 Outils pour l'automatisation des tests
  • 🎯 Focus sur la logique de test.

Zeitleiste

  • 00:00:00 - 00:05:00

    Introduction de Nikolay, un consultant indépendant avec plus de 13 ans d'expérience en Java et en gestion de livraison, co-fondateur d'un centre de formation et d'une série de conférences sur l'automatisation des tests.

  • 00:05:00 - 00:10:00

    Présentation des conférences organisées, notamment la Selenium Camp, la première et plus grande conférence en Europe sur l'automatisation des tests. Invitation à accéder à une base de connaissances riche disponible en ligne.

  • 00:10:00 - 00:15:00

    Discussion sur les trois composants essentiels de tout test : la logique de test, les données de test, et le driver d'application, soulignant l'importance de chaque élément dans l'automatisation des tests.

  • 00:15:00 - 00:20:00

    Mise en évidence de l'importance des données indépendantes dans les tests. Les tests dépendants des données doivent être exécutés séquentiellement, ce qui réduit la vitesse des tests. L'importance d'avoir des ensembles de données spécifiques à chaque test a été soulignée.

  • 00:20:00 - 00:25:00

    Exploration des systèmes typiques pour les tests et de la manière de créer des données de test à travers une interface utilisateur. Les avantages et inconvénients de cette méthode, tels que la stabilité et la commodité, ainsi que les problèmes de dépendance de données ont été discutés.

  • 00:25:00 - 00:30:00

    Présentation du 'Data Registry' comme un moyen de gérer les données de test, permettant de créer des utilisateurs uniques sans dépendre des données existantes dans le système, augmentant ainsi l'indépendance et la vitesse des tests.

  • 00:30:00 - 00:35:00

    Utilisation d'API pour créer des données de test. Bien que cela soit plus stable et rapide, il existe des défis, notamment la nécessité d'une bonne documentation des API et des compétences techniques pour les utiliser correctement.

  • 00:35:00 - 00:44:20

    Conclusion sur l'utilisation des données live par rapport aux données de test, en soulignant les risques de confidentialité et de sécurité tout en reconnaissant la richesse des données disponibles en production. Appel à l'importance de gérer de manière efficace les données pour améliorer les tests.

Mehr anzeigen

Mind Map

Video-Fragen und Antworten

  • Qui est Nikolai ?

    Nikolai est un consultant indépendant avec plus de 13 ans d'expérience en Java.

  • Quel est le sujet principal de la présentation ?

    L'importance des données de test dans l'automatisation des tests.

  • Quelles sont les principales composantes d'un test selon Nikolai ?

    Les trois composants principaux d'un test sont la logique de test, les données de test et l'application driver.

  • Comment peut-on améliorer l'efficacité des tests ?

    En rendant les tests indépendants des données, ce qui permet d'exécuter des tests en parallèle.

  • Quelle conférence a été mentionnée dans la présentation ?

    Nikolai parle de plusieurs conférences, y compris Selenium Camp.

  • Comment accéder aux matériaux de la conférence ?

    Les matériaux sont disponibles sur le site du centre de formation.

Weitere Video-Zusammenfassungen anzeigen

Erhalten Sie sofortigen Zugang zu kostenlosen YouTube-Videozusammenfassungen, die von AI unterstützt werden!
Untertitel
ru
Automatisches Blättern:
  • 00:00:12
    ночь меня зовут николай алиментов меня
  • 00:00:13
    можно найти в интернете как xp injection
  • 00:00:16
    я достаточно давно работаю войти более
  • 00:00:20
    13 лет я работал java тип не дома
  • 00:00:22
    delivery менеджером с мая прошлого с
  • 00:00:25
    апреля прошлого года я полностью работаю
  • 00:00:27
    как независимый консультант
  • 00:00:29
    где-то больших антон взята меньше хантон
  • 00:00:31
    то есть мы делаем множество разных
  • 00:00:33
    интересных вещей в рамках тренинга центр
  • 00:00:36
    их спин джексон который мы основали в
  • 00:00:38
    2009 году и от которым мы проводим
  • 00:00:40
    множество конференций в том числе у нас
  • 00:00:42
    есть три больших конференций конференции
  • 00:00:44
    же икон конференции selenium camp
  • 00:00:46
    которая была первой в мире конференции
  • 00:00:48
    поселений ума теперь трансформировалась
  • 00:00:50
    самую большую в восточной европе
  • 00:00:52
    конференцию сугубо посвященной
  • 00:00:54
    автоматизации тестирования вот за все
  • 00:00:56
    годы видео доступно и все материалы
  • 00:00:59
    доступны у нас в разделе
  • 00:01:01
    history поэтому заходите там собрано
  • 00:01:03
    очень большая база знаний
  • 00:01:05
    материалы этого года как только мы
  • 00:01:08
    закончим они будут собираться часть
  • 00:01:09
    видео уже опубликовано но мы их не шарим
  • 00:01:11
    чтобы исправить какие-то проблемы если
  • 00:01:14
    они есть вот как только они будут в
  • 00:01:16
    хорошем качестве уже доступны мы выложим
  • 00:01:18
    я думаю что это будет где-то понедельник
  • 00:01:19
    но я не думаю что вы придете воскресенье
  • 00:01:22
    будете пересматривать еще доклады это
  • 00:01:24
    уже нужно быть совсем таким фанатом
  • 00:01:26
    вот все мои материалы лично моих
  • 00:01:30
    докладов можно найти у нас в разделе
  • 00:01:32
    материалы
  • 00:01:33
    это самый простой путь наверное то есть
  • 00:01:35
    вот этих слайдов еще нигде нету наверно
  • 00:01:37
    первым делом они появятся в разделе
  • 00:01:39
    материалов у нас на сайте
  • 00:01:40
    также я не не перемену по рекламировать
  • 00:01:44
    нашу замечательную к и гильдию которая
  • 00:01:47
    находится в стеке
  • 00:01:48
    на текущим моментом почти 700 человек
  • 00:01:50
    достаточно активная комьюнити большая
  • 00:01:53
    часть спикеров которые выступали у нас в
  • 00:01:55
    эти два дня они тоже там поэтому если вы
  • 00:01:57
    хотите задавать вопросы по совершенно
  • 00:01:59
    разным
  • 00:02:00
    направлением касательно коллите шанса
  • 00:02:02
    тестирования и прочих направлений то
  • 00:02:04
    присоединяйтесь
  • 00:02:05
    абсолютно без регистрации sms если у вас
  • 00:02:07
    есть снег то велкам все хватит об этом
  • 00:02:11
    давайте непосредственно теме нашего
  • 00:02:13
    доклада как известно любой тест состоит
  • 00:02:15
    из трех компонентов это слайд я
  • 00:02:17
    показывая его специально только что
  • 00:02:19
    вспомнил что он у меня есть я его
  • 00:02:21
    показывал не знаю
  • 00:02:22
    лет семь или восемь назад наверно первый
  • 00:02:24
    раз и периодически его показу из каких
  • 00:02:26
    трех компонентов состоять любой тест
  • 00:02:30
    какой самый важный компонент вы считаете
  • 00:02:33
    в тесте как это назвать то что надо
  • 00:02:38
    тестировать
  • 00:02:40
    тестова логика правильно то есть это
  • 00:02:42
    логика которую вы закладываете ваш тест
  • 00:02:45
    ваш тестовый сценарий непосредственно
  • 00:02:47
    логика то есть вы ее сотворили вы не
  • 00:02:50
    взяли ее откуда автоматически сделали
  • 00:02:52
    вашу тестовые логику следующее что есть
  • 00:02:54
    у нас тестовые данные то есть это логика
  • 00:02:57
    манипулируют какими-то данными
  • 00:02:59
    ну и наконец логика сама по себе с
  • 00:03:01
    данными не могут добраться до
  • 00:03:03
    applications который вы тестируете то
  • 00:03:05
    есть нужна некая связь с applications
  • 00:03:07
    нитки апликэйшен драйвер который берет
  • 00:03:09
    вашу логику берет тестовые данные и
  • 00:03:12
    применяет непосредственно к апликэйшен
  • 00:03:14
    о чем вы слушали в течение этих двух
  • 00:03:16
    дней выслушали очень много про
  • 00:03:18
    апликэйшен драйверы то есть как написать
  • 00:03:21
    автоматизацию браузеров мобильных там
  • 00:03:23
    еще чего-то то есть как построить этот
  • 00:03:25
    промежуточный слой который позволит
  • 00:03:27
    вашей тестовые логике добраться до
  • 00:03:29
    вашего приложения
  • 00:03:30
    выслушали еще много докладов по поводу
  • 00:03:32
    того как а вот в каком-то инструменте
  • 00:03:34
    или каким-то подходом сделать тестовую
  • 00:03:37
    логику которая позволила бы вам
  • 00:03:39
    автотесты писать лучше там быстрее ли
  • 00:03:41
    еще что и получается тестовые данные
  • 00:03:43
    никто не затрагивает им всегда скучно и
  • 00:03:46
    одиноко вот и на конференциях и мало
  • 00:03:48
    освещают поэтому я решил сделать вот
  • 00:03:50
    такого доклад непосредственно
  • 00:03:51
    посвященный только тестовым данным
  • 00:03:53
    почему это вопрос данных так важен
  • 00:03:55
    потому что независимость по данным
  • 00:03:59
    является одним из ключевых аспектов в
  • 00:04:02
    скорости ваших тестов почему так
  • 00:04:04
    происходит давайте задумаемся вот у меня
  • 00:04:05
    есть такая мотивационная корзиночка
  • 00:04:07
    внизу которая говорит о том что если у
  • 00:04:09
    меня тесты зависимые по данным то
  • 00:04:11
    единственно что они могут делать они
  • 00:04:12
    могут проходить последовательно ну то
  • 00:04:15
    есть если я один и тот же тест имею на
  • 00:04:16
    логин и тот же логин я использую для там
  • 00:04:19
    изменения паспорта и тот же лаги не
  • 00:04:21
    использует для удаления ну явно они
  • 00:04:23
    могут проходить последовательно то есть
  • 00:04:24
    я не могу запустить параллельно эта
  • 00:04:26
    проблема правильно поэтому я бы хотел
  • 00:04:28
    что иметь я хотел бы вот эти зависимости
  • 00:04:31
    которые сделаны по данным я хотел бы
  • 00:04:33
    от них избавиться потому что если у меня
  • 00:04:35
    есть зависимая теста я не могу параллель
  • 00:04:37
    из если у меня есть независимая тесты я
  • 00:04:39
    их могу параллель из это же здорово
  • 00:04:40
    правильно если я могу параллель я могу
  • 00:04:42
    запускаться на не неограниченных просто
  • 00:04:46
    масштабах то есть мне абсолютно спокойно
  • 00:04:48
    могу запускать сотни тысяч тестов вот
  • 00:04:50
    вчера парень из болгарии рассказывал что
  • 00:04:52
    они там запускают 100 тысяч тестов не
  • 00:04:55
    знаю зачем проблема в другом но тем не
  • 00:04:57
    менее на это можно сделать но и самое
  • 00:05:01
    интересное что данные это должны быть
  • 00:05:03
    достаточно специфичны для каждого теста
  • 00:05:06
    то есть если вы делаете просто какие-то
  • 00:05:08
    общие данные то потом они
  • 00:05:10
    натуральным образом начинают реализацию
  • 00:05:12
    сделал круто юзера админы он hop и начал
  • 00:05:14
    у всех использовать этот юзер админы все
  • 00:05:16
    натурально это происходит вот и наконец
  • 00:05:19
    чего бы хотелось достичь это иметь
  • 00:05:21
    маленький сфокусированы дэйтасет и чтобы
  • 00:05:23
    каждый тест он имел свой отдельный dtc
  • 00:05:25
    то есть вот у него есть какие-то данные
  • 00:05:27
    которые нужны только ему если идет
  • 00:05:29
    какой-то рию из он идет только тогда
  • 00:05:31
    когда действительно эти данные общие
  • 00:05:33
    никому не мешают то есть вот наша задача
  • 00:05:35
    и понятно для чего
  • 00:05:36
    давайте рассмотрим какой-нибудь типичную
  • 00:05:38
    систему причем смотрите под системой вот
  • 00:05:41
    система у нас в центре подсистема я я
  • 00:05:43
    могу иметь ввиду какой-нибудь майкро
  • 00:05:45
    сервис я могу иметь целую большущую
  • 00:05:47
    систему
  • 00:05:48
    я могу иметь целую группу систем то есть
  • 00:05:50
    абсолютно не важно что внутри принципы
  • 00:05:52
    будут одни и те же техники будут одни и
  • 00:05:54
    те же что важно отметить у нее есть ей
  • 00:05:57
    возможно это неважно какая это может
  • 00:05:59
    быть консольную а это может быть в пюре
  • 00:06:01
    мобильный какой-то ей у нее есть и пиа и
  • 00:06:05
    он может стать и не быть на самом деле
  • 00:06:07
    да но вероятней всего ваш ей через
  • 00:06:10
    что-то ходит на серверную логику если мы
  • 00:06:12
    не говорим совсем про нативное
  • 00:06:14
    приложение в мобильном например которая
  • 00:06:16
    просто живет у себя в мобильном и
  • 00:06:18
    калькулятор на при калькулятор никуда не
  • 00:06:20
    ходит складывает локально числа и
  • 00:06:22
    умножает их тоже никуда не ходит вот
  • 00:06:25
    наша система которая есть предположим
  • 00:06:27
    два интерфейса и 5 и у нее есть какие-то
  • 00:06:29
    внешние стороны то есть базы данных у
  • 00:06:32
    нее есть в очереди какие-то и возможно
  • 00:06:34
    эта система общается с какими-то
  • 00:06:36
    внешними сервисами по каким-то
  • 00:06:37
    определенным контрактом который мы
  • 00:06:39
    задействуем через ebay
  • 00:06:41
    вот такую как бы достаточно общую
  • 00:06:44
    с другой стороны банальную ситуацию мы
  • 00:06:47
    будем рассматривать и первый самый
  • 00:06:49
    логичный способ который вы можете
  • 00:06:51
    придумать это идти через юань правильно
  • 00:06:54
    то есть если у нас есть
  • 00:06:55
    почему бы через него не пойти для того
  • 00:06:57
    чтобы создать свои тестовые данные и вы
  • 00:06:59
    абсолютно правы это самый простой способ
  • 00:07:01
    с которого можно начать
  • 00:07:03
    потому что во первых он очень понятный
  • 00:07:05
    то есть тестировщик который использует
  • 00:07:07
    такой подход он понимает что если нам
  • 00:07:09
    надо зарегистрировать пользователь нужен
  • 00:07:11
    пользователи зарегистрирую пользователю
  • 00:07:13
    тебя будет пользователь вон из
  • 00:07:15
    преимуществ давайте вот у нас одна
  • 00:07:17
    половина будет говорить что хорошего у
  • 00:07:19
    нас происходит вот с таким подходом
  • 00:07:20
    2 будет говорит что негативного есть в
  • 00:07:22
    таком подходе вот первое это то что это
  • 00:07:25
    black box помните есть white box грей
  • 00:07:28
    бокс и black box какой самый лучший
  • 00:07:32
    неправильно какой о разные цели отлично
  • 00:07:38
    то есть нету хорошего и плохого да есть
  • 00:07:40
    разные цели разные контексты
  • 00:07:42
    и для одной цели хорошо работает white
  • 00:07:44
    box вчера рассказывал никита макаров pro
  • 00:07:46
    white box очень много для какой-то цели
  • 00:07:48
    работает black box но с точки зрения
  • 00:07:50
    тестирования чем более black box
  • 00:07:53
    она будет с точки зрения данных тем
  • 00:07:55
    лучше потому что это значит что мы будем
  • 00:07:57
    просто засовывают какие-то данные
  • 00:07:59
    говорит смотрите это точно так же будет
  • 00:08:01
    работать как конечное пользователя то
  • 00:08:03
    есть вероятность того что нам нужно
  • 00:08:04
    будет платить за поддержку какую-то
  • 00:08:06
    дополнительную что данное
  • 00:08:08
    рассинхронизирует зачем то она будет
  • 00:08:09
    минимальная потому что ровно также
  • 00:08:11
    конечный пользователь придет эти данные
  • 00:08:13
    туда вставлять это здорово с точки
  • 00:08:15
    зрения вот
  • 00:08:16
    повторения конечного пользователя для
  • 00:08:18
    функциональных тестов вообще шикарно
  • 00:08:20
    всунули туда какие-то данные они там
  • 00:08:22
    есть вот второе это простой путь то есть
  • 00:08:25
    его можно просто к любому человеку
  • 00:08:27
    объяснить то есть вот ты говоришь там
  • 00:08:29
    приходит к себе тестировщик говорит
  • 00:08:31
    слушай а как мне вот юзера получите
  • 00:08:32
    кажется rega его
  • 00:08:33
    ну конечно пойду за реку не надо
  • 00:08:36
    какие-то сложности на таких технических
  • 00:08:38
    знаний специфических скилов отдельных
  • 00:08:41
    инструментов все мега просто у вас есть
  • 00:08:43
    инструмент которым вы автоматизируете
  • 00:08:45
    ваше тестирование через ей круто этим же
  • 00:08:48
    инструментом и
  • 00:08:49
    извели юзеров туда или все остальные
  • 00:08:52
    данные точно также но есть проблемы
  • 00:08:55
    проблема в том что не очень стабильно
  • 00:08:58
    это получается почему не очень стабильно
  • 00:09:00
    потому что мы знаем что вообще ей
  • 00:09:02
    тестирование не очень стабильно сегодня
  • 00:09:04
    тоже не вчера андрей солнцев рассказывал
  • 00:09:06
    про флэки тест да про особенности вот
  • 00:09:09
    этого апликэйшен драйвера который может
  • 00:09:11
    быть далеко не идеальным и и браузер не
  • 00:09:13
    идеальны короче все не идеальна в этой
  • 00:09:15
    цепочке
  • 00:09:16
    имея такую не идеальную цепочку сложно
  • 00:09:19
    потом понять это проблемы больше данных
  • 00:09:21
    то есть вот данные не до конца
  • 00:09:23
    заступились или эта проблема все таки
  • 00:09:25
    тестовой логике ну то есть реально
  • 00:09:26
    какие-то сердце не сработали из-за
  • 00:09:28
    приложения из за то что логика не
  • 00:09:30
    работает приложение или из заданных
  • 00:09:32
    которые не до конца в бились у него там
  • 00:09:34
    был пример с плавающей кнопкой там и
  • 00:09:36
    прочее представившие от вас поля уплыла
  • 00:09:38
    текстовая вы в него вбивали что-то и не
  • 00:09:40
    довели вот не получилось у вас вот и
  • 00:09:42
    данные зашли внутрь но не целиком и
  • 00:09:44
    потом где-то это всплывает там на пятом
  • 00:09:46
    шаге вашего теста не очень хорошая
  • 00:09:48
    ситуация второе это то что это очень
  • 00:09:51
    долго
  • 00:09:51
    вот представьте для того чтобы меня
  • 00:09:53
    зарегистрированного пользователя я
  • 00:09:54
    должен открыть браузер пойти на страницу
  • 00:09:57
    регистрации она должна загрузиться я
  • 00:09:59
    должен вбить все данные пройдет к это
  • 00:10:00
    валидация мне пришлют имейл я получу
  • 00:10:03
    email куда-то с какой-то mail бокса
  • 00:10:05
    подтвержу его и у меня наконец появился
  • 00:10:08
    юзер самое смешное теперь что я этот с
  • 00:10:10
    могу иметь
  • 00:10:11
    на этого юзера что я хочу просто
  • 00:10:13
    попробовать залогиниться под
  • 00:10:14
    неправильным паролем если не получилось
  • 00:10:16
    то не знаю сказать файл
  • 00:10:18
    то есть представьте сколько усилий для
  • 00:10:20
    того чтобы сделать гораздо более
  • 00:10:22
    короткий тест это минус это не очень
  • 00:10:24
    хорошо ну и наконец самая большая
  • 00:10:27
    проблема у я и
  • 00:10:29
    способа она заключается в том что если
  • 00:10:31
    что-то поломалось
  • 00:10:32
    в одном месте то падает сразу много
  • 00:10:35
    всего в это вы например вбивали юзеров
  • 00:10:37
    через ей и поломалась регистрация вы
  • 00:10:40
    всегда имеете тупо все краса
  • 00:10:42
    ну за исключением там каких-нибудь
  • 00:10:44
    админских тестов или ещё каких-нибудь
  • 00:10:45
    статических теста все остальное как бы
  • 00:10:47
    вас красное то есть вот такой бинарный
  • 00:10:49
    статус начинает либо ничего не работает
  • 00:10:51
    либо все работает но это не то для чего
  • 00:10:54
    мы делили там
  • 00:10:55
    тестовый сценарий отдельно мышка теле
  • 00:10:57
    если у полку это тестовый сценарий
  • 00:10:58
    конкретно мы хотим знать что они
  • 00:11:00
    работают а эта информация скрывается
  • 00:11:02
    потому что нас зависимости теперь между
  • 00:11:04
    функциональностью появились отвалилась
  • 00:11:06
    еще кое-то функционале добавляла там
  • 00:11:08
    комментарий а нам нужен был комментарий
  • 00:11:09
    для 200 сценариев и все 200 сценариев
  • 00:11:12
    отвалились не очень хорошо видите причем
  • 00:11:16
    могло отвалится не по самой
  • 00:11:17
    бизнес-логики могло отвалится просто но
  • 00:11:19
    я и кто-нибудь криворукий разработчик то
  • 00:11:22
    неправильно переменную объявил и нельзя
  • 00:11:25
    добавить комментарий через ей
  • 00:11:27
    ну как бы и горя не то есть другая эта
  • 00:11:29
    функциональность работает а у нас уже
  • 00:11:31
    тесты не работают а теперь представьте
  • 00:11:33
    если эти тесты
  • 00:11:34
    еще остались у вас вашей зоне
  • 00:11:36
    ответственности то есть если они
  • 00:11:38
    ломаются вам потом с этим разбираться и
  • 00:11:40
    вот вы открываете у вас там test report
  • 00:11:42
    в каком-нибудь не дай бог там report
  • 00:11:44
    портале или аллюре там открывается и там
  • 00:11:46
    сто пятьсот тестов упала и вы начинаете
  • 00:11:49
    там колупать сама почему вот этот блин
  • 00:11:51
    это из заданных там проще
  • 00:11:53
    слегка эта группировка нам хотя бы
  • 00:11:55
    как-то поможет это кстати очень
  • 00:11:56
    интересная тема развитие вот этих
  • 00:11:58
    группирования ошибок потому что можно
  • 00:12:01
    было бы избежать проблем сгруппировал
  • 00:12:03
    ошибку перед это вы с тестовыми данными
  • 00:12:04
    у вас нам проблемы выходили в тестовые
  • 00:12:06
    данные вот поэтому так получилось плохо
  • 00:12:08
    то есть вообще подход не очень хорошие
  • 00:12:11
    имена вот по последнему вот этому пункту
  • 00:12:13
    и вот этот он тоже очень сильно влияет
  • 00:12:15
    особенно там где тестовые данные сложно
  • 00:12:17
    через через ей долго делать то ваши
  • 00:12:20
    теста очень сильно удлиняются
  • 00:12:21
    еще есть одна такая скрытая проблема
  • 00:12:25
    что не все данные можно на самом деле
  • 00:12:28
    так легко сбить то есть мы имеем
  • 00:12:30
    какую-то систему достаточно простенькую
  • 00:12:32
    например там социальную сеть там все
  • 00:12:34
    данные предполагается что юзер может
  • 00:12:35
    сбить а может даже и там не все а есть
  • 00:12:39
    сложные системы где какие-то данные еще
  • 00:12:41
    заходят там из каких-то боковых каналов
  • 00:12:43
    например там вас прилетели ки нибудь
  • 00:12:44
    транзакции с платёжной системы а не
  • 00:12:46
    сбоку прилетели их никто через юани
  • 00:12:48
    вбивает вот или у вас еще как эта
  • 00:12:50
    информация из какого-нибудь другого
  • 00:12:52
    ресурса из европе системы прилетела
  • 00:12:54
    пользователя и опять их через ей никто
  • 00:12:56
    не взбивая получается может быть такая
  • 00:12:58
    система в которой вы не можете все
  • 00:12:59
    сделать через ей это тоже накладывает
  • 00:13:02
    свои ограничения но зато с этого подхода
  • 00:13:04
    можно легко начать как можно сделать его
  • 00:13:07
    ним
  • 00:13:07
    ручка легче и проще для этого
  • 00:13:10
    используется замечательный подарок под
  • 00:13:11
    названием дейта registry в чем сущность
  • 00:13:13
    этого суть этого паттерна что когда мне
  • 00:13:16
    в каком-то тэсси
  • 00:13:17
    нужен юзер то я вместо того чтобы
  • 00:13:20
    говорить о гай пойду реджистер юзер
  • 00:13:22
    использовать этого юзера я это скрываю
  • 00:13:24
    за реджис 3 то есть я спрашиваю у реджи
  • 00:13:26
    среди камни юзера и реджис 3 вот здесь
  • 00:13:29
    вот в данном примере во-первых формирует
  • 00:13:31
    мне уникального юзера видите у него есть
  • 00:13:34
    юзер подчеркивание индекс это всего лишь
  • 00:13:37
    пример то есть вы генерируете каждый как
  • 00:13:39
    себе нравится для того чтобы он был
  • 00:13:40
    уникальным
  • 00:13:41
    если он будет уникальным то у вас
  • 00:13:42
    появляется возможность потом не зависеть
  • 00:13:45
    по тестам и теперь запускается процесс
  • 00:13:47
    регистрации в данном случае он у меня
  • 00:13:48
    пропущен потому что этот подход можно
  • 00:13:50
    использовать вообще для любого вида
  • 00:13:52
    управления тестовыми данными
  • 00:13:54
    но именно за ним скрывается у вас может
  • 00:13:56
    быть один юзер registry который умеет
  • 00:13:59
    например ходить через юань то есть у
  • 00:14:01
    него будет конкретная реализация you a
  • 00:14:03
    use ridgid re он будет формировать
  • 00:14:05
    уникальный вот этого юзера идти
  • 00:14:07
    регистрировать его через ей назад его
  • 00:14:09
    возвращать тогда ваши тесты в идеале
  • 00:14:11
    оторваны от от детали откуда взялся этот
  • 00:14:14
    юзер он появился из базы данных он
  • 00:14:16
    появился из while он появился еще откуда
  • 00:14:18
    то какая разница самому тесту тесту же
  • 00:14:21
    важно знать что у него на руках есть
  • 00:14:22
    юзер которым он может пользоваться со
  • 00:14:24
    всей необходимой информации вот это
  • 00:14:26
    скрытие вот этого самого механизма
  • 00:14:28
    получения данных очень хорошо помогает
  • 00:14:30
    для каких-то подходов все-таки
  • 00:14:32
    использовать you are providing вот этих
  • 00:14:34
    данных для каких-то подходов не
  • 00:14:36
    использовать для каких-то тестов это
  • 00:14:37
    используя для каких-то не используя но
  • 00:14:39
    все это скрывается за вот этим режете
  • 00:14:41
    очень полезным поттером вот идем дальше
  • 00:14:44
    то есть следующий логичный способ
  • 00:14:45
    совершенно это использовать для этого и
  • 00:14:47
    5 и 5 находится по соседству поэтому
  • 00:14:50
    кто-то говорит ну так давайте вот
  • 00:14:51
    дуайтом нестабильный попытаемся это
  • 00:14:53
    исправить дуется через и переходить вот
  • 00:14:56
    и вроде как это логично совершенно но
  • 00:14:57
    если понятна эта тряпья есть у вас вот
  • 00:15:00
    если его нет то вы его и дернуть никак
  • 00:15:02
    нельзя причем некоторые так забавно
  • 00:15:04
    некоторые приходят горит у нас в
  • 00:15:05
    приложении г а вы используете нет у нас
  • 00:15:07
    нет а это я говорю как вы считаете там
  • 00:15:10
    какой-то код пачкать вжух у вас браузера
  • 00:15:14
    типа hop и уже там в базе как-то
  • 00:15:15
    оказывается не горит у нас очень и т.п.
  • 00:15:18
    мы проверяли никакого этой они на самом
  • 00:15:21
    деле не по любому есть просто может не
  • 00:15:23
    называться и
  • 00:15:24
    ну что сервер с браузером
  • 00:15:26
    взаимодействует по протоколу http по
  • 00:15:28
    бинарному протоколу по кому-то протоколу
  • 00:15:31
    вот и этот протокол это и есть как бы
  • 00:15:33
    поверх него ну ладно выращивать к это
  • 00:15:35
    бизнес лойко это если 5 вы можете его
  • 00:15:37
    так не называют но тем не менее он такой
  • 00:15:39
    есть вот что тут хорошего
  • 00:15:42
    ну в таком подходе через и 5 во первых
  • 00:15:45
    вы можете использовать один и тот же и
  • 00:15:46
    пиарь получается и для приложений для
  • 00:15:48
    тестов но для тестовых данных получается
  • 00:15:51
    вы спустились на один уровень ниже тем
  • 00:15:52
    самым убрав проблемы в более высокого
  • 00:15:54
    уровня то есть все вот нестабильности
  • 00:15:56
    длительную работу и так далее вы выбрали
  • 00:15:59
    это
  • 00:15:59
    это здорово это позитив вот во вторых и
  • 00:16:02
    пион больше ориентирован на данные ну то
  • 00:16:05
    есть он дейта рендер
  • 00:16:06
    это значит что вы в принципе уже там
  • 00:16:08
    передаете конкретные данные вы не не
  • 00:16:10
    вбиваете какие-то поляна в нанана в
  • 00:16:13
    формочки там галочки еще что-то в уже
  • 00:16:16
    непосредственно передается поля данных и
  • 00:16:18
    мало этого
  • 00:16:19
    если у вас есть например данные уже
  • 00:16:20
    заготовлена например вы в джейсоне
  • 00:16:22
    куда-то их сохранили вот если у вас был
  • 00:16:24
    джейсон готовы вы где-то за sniff или из
  • 00:16:26
    трафика и сохранили вы его взяли из
  • 00:16:28
    какой-то примера например да или в
  • 00:16:30
    swagger у вас описан где то ждите пиво
  • 00:16:33
    шипя и там есть готовый пример вот
  • 00:16:34
    говорит вот это пример к этому это вы и
  • 00:16:37
    вас копию постель вставили его можно
  • 00:16:38
    отправлять а если бы вы через
  • 00:16:41
    сбивали то так бы не получилось потому
  • 00:16:43
    что нужно теперь взять эти поля
  • 00:16:45
    привязать кью ай фил да мы это отдельная
  • 00:16:48
    работа которую нужно сделать а здесь
  • 00:16:50
    очень удобно любой источник данных где
  • 00:16:51
    вы только пол получили возможность
  • 00:16:53
    вклиниться в вашей 5 можете life http
  • 00:16:56
    header с плагином каким-то другим
  • 00:16:58
    плагином который позволяет вам
  • 00:16:59
    вклиниться и вы можете чуть ли не из
  • 00:17:01
    реальных страничек
  • 00:17:02
    получить много примеров то есть вы в
  • 00:17:04
    рамках ручного тестирования например
  • 00:17:06
    что-то делается с не фреза трафик
  • 00:17:08
    снимаете этот трафик смотрится отлично
  • 00:17:10
    пришел какой-то джейсон возьму-ка я его
  • 00:17:12
    к себе в тесты сохранили его прямо в
  • 00:17:14
    джейсоне он горит круто все можем
  • 00:17:16
    работать через и 5 вот это позитив то
  • 00:17:19
    что дейта orient ot упрощения большое
  • 00:17:21
    второе он гораздо быстрее ну то есть не
  • 00:17:23
    надо запускать браузер не надо там ждать
  • 00:17:26
    дополнительного времени пукает все
  • 00:17:27
    стартанет страница загрузится то есть
  • 00:17:30
    все прямо идет под капотом
  • 00:17:31
    позитив самый главный плюс это то что
  • 00:17:35
    существует уже существующие инструменты
  • 00:17:37
    которые позволяют очень легко такого и 5
  • 00:17:39
    клиента написать вот и
  • 00:17:41
    и это просто здорово потому что если вы
  • 00:17:44
    использовали нормальную документацию к
  • 00:17:46
    своему и пишите пиши ну например
  • 00:17:48
    разработчики использовали тот же самый
  • 00:17:49
    swagger то у вас есть
  • 00:17:51
    задокументированные пиа и вы берете
  • 00:17:53
    swagger натравливает на него swagger
  • 00:17:55
    caught ген выбирается тип клиента
  • 00:17:58
    который вы хотите сгенерировать ваш язык
  • 00:18:00
    программирования go у java java script
  • 00:18:02
    даже упаси бог вот какой-то другой язык
  • 00:18:05
    и он вам генри сразу готового клиента
  • 00:18:07
    удобного sd с элем там и так далее если
  • 00:18:10
    вы больше все-таки для тестов мы не
  • 00:18:12
    значит не просто клиент извне нам не
  • 00:18:14
    нужен retrofit 2 который потом с вами
  • 00:18:16
    голову с этими кубиками вот я надеюсь
  • 00:18:19
    кто-то хоть понимает о чем я говорю но
  • 00:18:21
    тем не менее вот нам все-таки если мы
  • 00:18:23
    находимся в тестах то нам наверное
  • 00:18:26
    хотелось бы иметь что-то приближенное к
  • 00:18:28
    тестам к тестам лучше наверное выбор это
  • 00:18:30
    использовать какие-то тестовые клиенты
  • 00:18:32
    например с ашуры хороший выбор с
  • 00:18:35
    недавней версии swagger коллаген
  • 00:18:36
    поддерживает 300 should вы можете
  • 00:18:38
    спокойненько генерить клиента нарисую у
  • 00:18:41
    вас получается красивый доменный клиент
  • 00:18:44
    то есть вы потом приходите и говорите
  • 00:18:45
    пошли пожалуйста запросов на такой и 5
  • 00:18:47
    прим вот вызывается java методы
  • 00:18:49
    передается туда объекты готовы там и так
  • 00:18:52
    далее как это соединить вот с тем что у
  • 00:18:54
    нас была у нас был помните джейсон мы
  • 00:18:55
    где откуда взяли джейсон нет ничего
  • 00:18:58
    проще у вас есть обжиг mapper через
  • 00:19:00
    джексон натравливаете его на джейсон
  • 00:19:02
    горит восстановим не этот объект и вас
  • 00:19:04
    объект прямо появляется это же круто в
  • 00:19:06
    этот объект потом через прямо java и пео
  • 00:19:08
    или другой 5 прим вызвали вызов у вас
  • 00:19:11
    исчезает весь http то есть выше
  • 00:19:13
    используя клиента генерить генерят яся
  • 00:19:15
    тулы
  • 00:19:15
    ну вот получается прямой вызов классно
  • 00:19:18
    удобно надежно нету никаких проблем и 5
  • 00:19:21
    поменялся вы перегенерировать
  • 00:19:25
    на минимум усилий то есть автоматически
  • 00:19:28
    ставится просто генерацию после того как
  • 00:19:30
    и любые изменения выпивая делаются перри
  • 00:19:32
    генерируется если что у вас произойдет
  • 00:19:34
    ошибка компиляции если ошибка компиляции
  • 00:19:37
    круто да вы сразу посмотрели год акаши
  • 00:19:39
    опять поменялся не надо отлавливать
  • 00:19:41
    флажок появился какой то вы его ним не
  • 00:19:43
    знаете или поле поменялось а вы
  • 00:19:45
    посылаете старый name вот это супер
  • 00:19:47
    преимущество вот это существующие
  • 00:19:49
    инструменты но есть минусы во-первых
  • 00:19:52
    нужен айпи и самый главный минус но сама
  • 00:19:56
    еще более главный минус это же я
  • 00:19:57
    рассказывал когда выше 5 хорошо
  • 00:19:59
    задокументирован
  • 00:20:00
    есть дар парадокс хорошо документирована
  • 00:20:02
    это я чтобы хорошо задокументированы 5
  • 00:20:05
    существовал его должен кто-то хорошо
  • 00:20:06
    задокументировать вот такой казалось бы
  • 00:20:09
    да немыслимый парадокс вот и этот кто-то
  • 00:20:12
    должен понимать как его хорошо
  • 00:20:14
    задокументировать это такой следующий
  • 00:20:17
    вывод и таких людей возможно у вас нет в
  • 00:20:19
    команде и ваши разработчики возможно так
  • 00:20:22
    не умеют вот поэтому тот плюс который по
  • 00:20:24
    идее должен был быть для вас работать не
  • 00:20:26
    факт что это сработает именно для вас то
  • 00:20:28
    есть вот то что у вас есть хороший
  • 00:20:30
    чистый красивый 5 это вам хорошо это это
  • 00:20:34
    очень позитивный момент тогда на уровне
  • 00:20:36
    это я очень классно можно это используя
  • 00:20:39
    следующая минус это мы уже не black box
  • 00:20:42
    мы уже грей бокс мы уже знаем что на
  • 00:20:44
    самом деле когда жмется кнопочка
  • 00:20:46
    registration
  • 00:20:47
    надо на самом деле сделать там два
  • 00:20:49
    действия например надо послать
  • 00:20:51
    один вызов вот туда один вызов вот сюда
  • 00:20:54
    если потом кто-то придет и на кнопочку
  • 00:20:56
    на эту привяжут еще третий вызов но при
  • 00:20:58
    этом уже что-то право лидировать то мы
  • 00:21:00
    можем ни фига об этом не узнать
  • 00:21:02
    а раз мы об этом не узнаем то получится
  • 00:21:04
    так что наше тесто выданы уже не совсем
  • 00:21:06
    правильно то есть их нужно был еще
  • 00:21:08
    куда-то зарегать
  • 00:21:09
    и вот эта самая большая проблема то есть
  • 00:21:13
    идеального solution а никогда не будет
  • 00:21:15
    но вы просто должны понять что если у
  • 00:21:16
    вас это не ваш случай и у вас достаточно
  • 00:21:18
    прозаично так называть тонкий клиент
  • 00:21:20
    когда вот такой бизнес логики не
  • 00:21:21
    хранится на клиенте это бизнес логика то
  • 00:21:24
    есть если я завожу юзера то надо пойти
  • 00:21:25
    еще куда то там его зарегать по идее это
  • 00:21:28
    бизнес лойко должна была бы быть на
  • 00:21:29
    сервере вот сервер должен был бы за это
  • 00:21:31
    отвечать если оно у вас на клиенте и на
  • 00:21:34
    клиенте у вас такой толстый клиент
  • 00:21:35
    который делая часть бизнес-логики
  • 00:21:37
    возможно вариант через и пиа не очень
  • 00:21:39
    удачный для вас потому что вы будете
  • 00:21:41
    часто падать из-за того что меняется
  • 00:21:42
    бизнес-логика на клиенте
  • 00:21:44
    но вот этом толстом клиенте вот и
  • 00:21:47
    наконец это требует уже к dance skills
  • 00:21:51
    которых у вас может не быть
  • 00:21:53
    через его и все просто клип склад склад
  • 00:21:55
    помнится там сколько всего методов если
  • 00:21:57
    mode driver там и всего штук 10 наверное
  • 00:21:59
    половину из них вы не знаете то есть
  • 00:22:01
    клик и в виде кнопки все вот большинство
  • 00:22:06
    этим пользоваться там все просто а здесь
  • 00:22:09
    уже надо и пиа и вот я говорю там
  • 00:22:11
    страшные слова которые старше там до
  • 00:22:13
    джексон все это надо между собой
  • 00:22:14
    завязать тоже надо кодировать никуда от
  • 00:22:17
    этого не денешься генерация очень сильно
  • 00:22:19
    позволяет упростить это то есть ваш уже
  • 00:22:21
    готовая получается программная модель
  • 00:22:22
    dth кей там куча всего
  • 00:22:24
    но потом из этого все равно надо клепать
  • 00:22:26
    вызовы если вы не знаете как клепать
  • 00:22:29
    вызовы а еще и не знаете как это с
  • 00:22:31
    генерит то печаль вот поэтому наверное
  • 00:22:33
    это на этот вариант не для вас эти плюсы
  • 00:22:36
    минусы присутствуют в обоих вариантах
  • 00:22:38
    рассмотрены пойдем дальше то есть
  • 00:22:41
    логично двигаться слева направо но мы не
  • 00:22:43
    можем внутрь системы залезть внутрь всем
  • 00:22:45
    это плохой вариант я его не буду
  • 00:22:46
    рассматривать есть такие варианты делать
  • 00:22:49
    плагин внутрь системы через которые
  • 00:22:51
    управляя заводить данные есть и такие
  • 00:22:53
    хаки
  • 00:22:54
    я не привык приключениях не рассказывать
  • 00:22:57
    будем считать что я вообще не упоминал
  • 00:22:58
    эту тему потому что это плохой путь и вы
  • 00:23:01
    потом нарветесь на очень много костылей
  • 00:23:02
    но видео все записала на самом деле вот
  • 00:23:05
    третий путь логичный и очень простой
  • 00:23:07
    через из qu'elle то есть не смогли
  • 00:23:09
    заставить этому ослу морковку сзади
  • 00:23:12
    паромом наоборот спереди будем сзади вон
  • 00:23:15
    мы идем через и сквер что логично ну
  • 00:23:18
    подожди база данных есть если у вам кто
  • 00:23:20
    такой так из кель только для реляционных
  • 00:23:22
    базах есть на самом деле точно такие же
  • 00:23:24
    инструменты один в один для новый сквер
  • 00:23:26
    всех бананы то есть вообще нет никакой
  • 00:23:28
    проблемы то есть идея в том что мы
  • 00:23:30
    используем натуральный протокол для
  • 00:23:31
    вашего хранилища который позволяет
  • 00:23:33
    сбивать в него данные как это вообще
  • 00:23:35
    выглядит обычно ну вот есть банальная
  • 00:23:37
    square вот у нас есть за табличка бог у
  • 00:23:40
    нее есть три колоночки юности
  • 00:23:42
    insert and ebook 3 колоночки в люс
  • 00:23:44
    travel usa все мега просто вот у нас
  • 00:23:46
    объединили такие way to set the data
  • 00:23:48
    сайт который нам нужен и говорим надо
  • 00:23:50
    теперь его как-то вставить из кода нет
  • 00:23:53
    ничего проще потому что если вы
  • 00:23:54
    находитесь в каком-то более менее
  • 00:23:56
    развитым языке программирования я не
  • 00:23:58
    уверен что такое можно сделать через
  • 00:23:59
    java script но
  • 00:24:01
    из большинства языков программирования
  • 00:24:02
    адекватных вы можете такое сделать то
  • 00:24:05
    есть вот например в джаве вы можете
  • 00:24:06
    просто пометить вы находитесь например
  • 00:24:08
    spring будьте или подключили другую лигу
  • 00:24:09
    с такими же свойствами вы просто над
  • 00:24:11
    тестом ставится аннотация сквер и прям
  • 00:24:14
    минимум от вас усилий требуется и он
  • 00:24:16
    горит можно несколько и склеили
  • 00:24:17
    перечислить это ответ всем людям которые
  • 00:24:20
    скажут подождите
  • 00:24:21
    так это же самый простой пример показан
  • 00:24:23
    здесь бук и и не от кого больше не
  • 00:24:26
    зависит ну типа бук сам по себе да это
  • 00:24:28
    простой пример больше не влез бы просто
  • 00:24:30
    по экран вот но на самом деле если вы
  • 00:24:32
    пользуетесь вот у вас буки к ним к этим
  • 00:24:34
    буквам у вас могут быть еще кто-нибудь
  • 00:24:36
    там не знаю а второй этом к странице там
  • 00:24:38
    еще что то то вы можете зависеть даже
  • 00:24:40
    отдельными с гелями почему потому что
  • 00:24:43
    вот здесь вот можно перечислить
  • 00:24:44
    несколько искали про constraint и мы
  • 00:24:47
    потом еще поговорим если кто-то не
  • 00:24:48
    вспомнил вот это отдельный вопрос и я
  • 00:24:51
    могу дальше делать очень прикольную
  • 00:24:53
    штуку я могу дальше еще сказать а надо
  • 00:24:55
    ли мне комитете изменения или нет ну то
  • 00:24:58
    есть если например и нахожусь на
  • 00:24:59
    системном to set который там на этой
  • 00:25:01
    тесте которая тестирует
  • 00:25:02
    там большой кусок систему то наверное
  • 00:25:04
    хотел бы закомитить результаты
  • 00:25:06
    если я нахожусь где-то внутри на
  • 00:25:08
    ком-нибудь интеграционным компонентном
  • 00:25:09
    тэсси в этом случае я хотел бы их
  • 00:25:11
    откатить ну сделать rollback
  • 00:25:13
    потому что мне бы не хотелось чтобы у
  • 00:25:14
    меня два разных теста пересекались по
  • 00:25:17
    данным помните самый простой способ
  • 00:25:18
    чтобы они не пересекались я открываю
  • 00:25:20
    транзакцию вставляю свои данные
  • 00:25:22
    запускаю ту логику которая должна быть
  • 00:25:24
    запущена на в транзакции вот она
  • 00:25:27
    запускается все внутренние там сервисы
  • 00:25:29
    все остальное готова так транзакций уже
  • 00:25:30
    открыто мы не будем новой открывать
  • 00:25:32
    запускается в этой транзакции в конце
  • 00:25:34
    делали робок круто круто ну то есть все
  • 00:25:37
    все все независимые не работает для всех
  • 00:25:40
    случаев жизни потому что для некоторых
  • 00:25:42
    случаях жизни вам жизненно важно
  • 00:25:44
    закомитить потому что у вас на commit
  • 00:25:46
    какая-то логика пример в определенных
  • 00:25:48
    базах данных constraint и проверяются на
  • 00:25:50
    комете не за комиссии constraint они
  • 00:25:52
    проверились поэтому иногда это важно вот
  • 00:25:56
    плюсы и минусы то есть получается что мы
  • 00:25:58
    начинаем использовать внутреннюю с
  • 00:25:59
    внутреннее состояние системы в чем оно
  • 00:26:04
    заключается то есть с одной стороны
  • 00:26:05
    получается мы получаем гибкость
  • 00:26:07
    правильно то есть мы уже знаем четко как
  • 00:26:09
    там под капотом все устроены мы горим
  • 00:26:11
    так вот в эту табличку став одну запись
  • 00:26:13
    вот здесь вот друг
  • 00:26:14
    здесь под хоть и на самом деле мы
  • 00:26:16
    возможно вообще уже не повторяем
  • 00:26:18
    натурального дайте flow но зато это дает
  • 00:26:20
    нам гибкость классно можем там каким-то
  • 00:26:22
    образом даже оптимизировать свои
  • 00:26:24
    действия 2 это самый быстрый путь
  • 00:26:27
    помните через и piano было чуть лучше
  • 00:26:30
    чем через войну всего ходила сквозь
  • 00:26:32
    систему мы уже не ходим сквозь системы
  • 00:26:34
    уже прям сто раз заливаем
  • 00:26:36
    то есть по скорости работы это самый
  • 00:26:38
    классный путь то есть вот вы прям
  • 00:26:39
    идеально в самый так сказать нужны им
  • 00:26:42
    нужно место засунули вот и прямой доступ
  • 00:26:46
    к данным то есть вот прям к плоским
  • 00:26:48
    данным к сырым данным то есть вам не
  • 00:26:50
    надо выдумывать там как их encrypted не
  • 00:26:52
    encrypted вы вообще полная свобода у вас
  • 00:26:55
    да вы всю бизнес-логику обошли и
  • 00:26:57
    вставляется просто данные но за большую
  • 00:26:59
    гибкость приходится чем-то платить
  • 00:27:00
    давайте посмотрим чем в данном случае
  • 00:27:02
    заплатим это уже white box со всеми
  • 00:27:05
    вытекающими
  • 00:27:06
    то есть если мы не разобрались как
  • 00:27:07
    работает система то печально мы вставили
  • 00:27:11
    в одну табличку надо было ставить в
  • 00:27:12
    другую и у нас все поломалась кто то
  • 00:27:15
    поменял кусочек бизнес-логики которые
  • 00:27:17
    теперь вставляет и в другую табличку и
  • 00:27:18
    нас все поломалась поэтому вот этот вот
  • 00:27:21
    white box to sing требует большей
  • 00:27:23
    интеграции с разработчиками то есть
  • 00:27:26
    требует того чтобы разработчик это меня
  • 00:27:27
    он тоже знал где у вас завязка по данным
  • 00:27:31
    и он точно знал куда надо еще заставить
  • 00:27:33
    изменения или вы точно знали участвуя в
  • 00:27:35
    кадре view в в обсуждение задач
  • 00:27:37
    что о будет меняться структура базы
  • 00:27:39
    данных я был на дизайн сессии кто был на
  • 00:27:42
    вчерашнем моем докладе до ходить на
  • 00:27:44
    дизайн сессии и там горит у мы поменяем
  • 00:27:46
    структуру базы данных высоко любому
  • 00:27:47
    отличную надо поменять у меня в тестах
  • 00:27:50
    не сделали так извините это недостатки
  • 00:27:53
    white box а если вы не знаете как
  • 00:27:55
    устроена система изнутри вы не можете
  • 00:27:57
    эффективно этим пользуется зато
  • 00:27:59
    молниеносно то есть хоп и вставили
  • 00:28:00
    данные вот следующая интересная проблема
  • 00:28:03
    это кеширование то есть данные которые у
  • 00:28:06
    вас в апликэйшен находятся они
  • 00:28:08
    кешируется и таким образом получается
  • 00:28:10
    выданные вставили они записывались самом
  • 00:28:12
    приложении и надо как-то в этот кэш еще
  • 00:28:15
    сбоку войти
  • 00:28:16
    а мышц систему не хотели нарушает то
  • 00:28:18
    есть мы не хотели каким-то образом в нее
  • 00:28:20
    вклиниваться и тут начинается много
  • 00:28:21
    интересных моментов обходится эта тем
  • 00:28:24
    хорошей практикой чтобы каждый дэйтасет
  • 00:28:26
    каждый тест и mills
  • 00:28:27
    мой выделенный дэйтасет тогда получается
  • 00:28:30
    вы не попадёте на хеширование но блин
  • 00:28:32
    это сложно потому что ну пересечение по
  • 00:28:35
    банальным каким-то вещам начинаются и
  • 00:28:37
    потом начинается эфемерная проблема вот
  • 00:28:39
    про одну такую мерную проблему андрей
  • 00:28:40
    солнце вчера рассказывал своем докладе
  • 00:28:42
    когда они долго ловили где этот кэш у
  • 00:28:44
    них как вдруг на выращивался хороший
  • 00:28:48
    принцип
  • 00:28:48
    вот который помогает от этой проблемой
  • 00:28:50
    избавиться это в тестах стартовать без
  • 00:28:52
    кэша то есть вот вы когда вы запускаете
  • 00:28:55
    ваш и тест это выглядит кэш должен быть
  • 00:28:57
    выключен но тогда получается вы
  • 00:28:59
    тестируется не совсем то что будет
  • 00:29:01
    работать для конечного пользователя ведь
  • 00:29:03
    опять трейдов
  • 00:29:03
    то есть побороть можно но минус
  • 00:29:06
    достаточно большое вот и наконец нужно
  • 00:29:09
    это поддерживать
  • 00:29:10
    то есть вот все интер ты которые вы
  • 00:29:12
    вставляете представьте вас много data
  • 00:29:14
    set of и у вас во всех дата сетах как-то
  • 00:29:16
    называется колонка например name кто-то
  • 00:29:18
    пришел в базу данных и горит теперь эта
  • 00:29:20
    колонка будет называться full name
  • 00:29:21
    все надо пойти во все datasette и
  • 00:29:24
    аккуратненько везде все поменяю то есть
  • 00:29:26
    за саппорт надо будет платить это не of
  • 00:29:28
    the genie решаясь а штука это не очень
  • 00:29:30
    удобно вот ну и наконец слишком много из
  • 00:29:33
    киля то есть каждый раз когда вы пишите
  • 00:29:35
    что-то выпишет это insert in тут-то и
  • 00:29:37
    болт amd этот плюс этого простенький
  • 00:29:40
    вариант привел да будет еще сложные
  • 00:29:42
    варианты где еще куча куча всего вот это
  • 00:29:45
    слишком как бы verbo us то есть такое
  • 00:29:47
    слово слишком многословно что ли есть
  • 00:29:50
    способ чуть лучше то есть вы можете
  • 00:29:51
    следующий способ это использовать ровно
  • 00:29:54
    на том же уровне только с помощью
  • 00:29:55
    инструментов позволяющих оперировать
  • 00:29:57
    чуть более высокого уровня абстракции то
  • 00:30:00
    абстракция называется дэйтасет такая
  • 00:30:02
    абстрактная абстракция то есть у вас был
  • 00:30:04
    прямо сквер который говорил это просто
  • 00:30:06
    набор sql statements
  • 00:30:07
    а теперь мы будем говорить про дэйтасет
  • 00:30:09
    и для этого существуют вот тебе юнит со
  • 00:30:11
    всеми его дополнительными библиотеками
  • 00:30:14
    написанными вокруг него что это
  • 00:30:15
    позволяет нам сделать это позволяет нам
  • 00:30:17
    предыдущий гель превратить вот в такую
  • 00:30:19
    штуку у нас появляется datasette это xml
  • 00:30:22
    там потом уже поддерживается джейсон там
  • 00:30:25
    же подержится ямал там же поддерживаться
  • 00:30:27
    сизве любой формат который вы захотите
  • 00:30:29
    важно то что мы имеем мета информацию
  • 00:30:31
    эта информация вот тут это что это
  • 00:30:33
    дэйтасет что это у нас табличка который
  • 00:30:36
    называется бук у нас есть колоночки
  • 00:30:38
    которые называются полями и дальше у нас
  • 00:30:40
    куча всего осталь
  • 00:30:41
    новак примеру у нас может подключаться к
  • 00:30:43
    деби юнит уточнение где бью не так x и
  • 00:30:45
    мальком которым и генерим можно
  • 00:30:47
    сгенерить схему мы можем взять схему
  • 00:30:49
    база данных и сгенерить xml схему
  • 00:30:51
    подсоединив xml схему к нашим xml к мы
  • 00:30:54
    можем получать прямо выдает вор нинги по
  • 00:30:56
    поводу того что колонка называется уже
  • 00:30:58
    не так как она называется в базе дано вы
  • 00:31:00
    сквере мы бы никогда не фига такого не
  • 00:31:02
    видели вот можно вы съели добиться
  • 00:31:05
    такого же если вы все искали
  • 00:31:06
    зарегистрируйте подсоедините где это
  • 00:31:08
    соусу в правильном и д.е.
  • 00:31:09
    скажите вот эти с келли на самом деле
  • 00:31:11
    написано вот для того datasource а тогда
  • 00:31:13
    вы получите такую же ситуацию для xml я
  • 00:31:15
    ну прям разруливаются на уровне вот
  • 00:31:18
    схемы мало этого вы можете еще на
  • 00:31:20
    уровень сборки вставить файл если вы
  • 00:31:22
    пытаетесь собрать xml в котором есть
  • 00:31:24
    выглядит он ее ошибки и в этом случае
  • 00:31:27
    вот вы пытаетесь собрать ну вернее
  • 00:31:28
    извини данные поменялись как бы надо
  • 00:31:30
    пойти по меня плюс рефакторинг очень
  • 00:31:32
    простой потому что теперь это xml и
  • 00:31:35
    инструментарий для xml вы да я гораздо
  • 00:31:38
    шире чем для и склеили то есть вы можете
  • 00:31:40
    сказать эй поменяем не это тыква всех
  • 00:31:43
    xml и она взяла поменяла во всех xml ах
  • 00:31:46
    это удобно то есть можете схему просто
  • 00:31:48
    применить сказать поправь и она поправит
  • 00:31:50
    автоматически вплоть до того что вы
  • 00:31:52
    можете настроить плагин который следит
  • 00:31:54
    за изменениями и который поправляет за
  • 00:31:57
    вас то есть вы например говорится
  • 00:31:59
    отслеживая изменения в схеме если
  • 00:32:01
    изменилась схема то будь добр и
  • 00:32:02
    скорректируем немой xml но это опасный
  • 00:32:05
    плагин потому что с ним можно много бед
  • 00:32:08
    натворить вот как-то на выглядит тест
  • 00:32:10
    тест выгляд мега просто это мы сейчас
  • 00:32:12
    находимся на юнит интеграционных тестах
  • 00:32:14
    я проставляю просто аннотацию дэйтасет и
  • 00:32:16
    ведь вот но их самолет кусалась всем
  • 00:32:20
    мега-мега просто могу несколько указать
  • 00:32:22
    через запятую если я нахожусь в и пео
  • 00:32:26
    или системных тестов то все ровно то же
  • 00:32:27
    самое чуть-чуть сама сложности с
  • 00:32:29
    получением baby юнита это уже детали
  • 00:32:31
    java и spring будто но в остальном все
  • 00:32:34
    то же самое дэйтасет и где лежит
  • 00:32:36
    дэйтасет и вот тут еще стратегия то есть
  • 00:32:39
    мы можем указать разную стратегий в
  • 00:32:41
    данном случае я использую стратегию
  • 00:32:42
    inserto
  • 00:32:43
    то есть я добавляю всегда данные мою
  • 00:32:45
    могла быть стратегия
  • 00:32:47
    refresh то есть если такие данные уже
  • 00:32:49
    есть просто за рефрешах
  • 00:32:50
    могла быть стратегия апдейт это значит
  • 00:32:52
    что за апдейта что чего то что есть а
  • 00:32:55
    оставшаяся вставь то есть уже можно
  • 00:32:57
    какими-то стратегиями управлять значит
  • 00:33:00
    мы на этом дополнительном уровне
  • 00:33:02
    абстракции что получили во-первых мы
  • 00:33:04
    получили большой кусок инструментария
  • 00:33:06
    который вокруг baby you не то есть то
  • 00:33:08
    есть сразу вот это xml и к нему xml
  • 00:33:10
    схемы вот эти красивые аннотации которые
  • 00:33:13
    можно использовать гибелью нет очень
  • 00:33:15
    старый инструмент он у него и библиотеки
  • 00:33:17
    интеграционной есть для любого языка
  • 00:33:18
    программирования не уверен насчет гоу
  • 00:33:20
    только да потому что там чуть специфика
  • 00:33:23
    и другая но вот для всех традиционных
  • 00:33:25
    назову такс традиционной ориентация
  • 00:33:27
    языков программирования вот там
  • 00:33:29
    поддержка тебе юнита есть и она уже
  • 00:33:31
    достаточно старая то есть просто мета
  • 00:33:33
    информация меняется вот мы получаем
  • 00:33:36
    удобный формат xml куда удобнее чем
  • 00:33:38
    испей в этом плане мы получаем маленький
  • 00:33:40
    сфокусированы дэйтасет и которые можем
  • 00:33:43
    комбинировать между собой и самого
  • 00:33:45
    лидирующая ну и наконец мы можем очень
  • 00:33:47
    гибко управлять constrain to me потому
  • 00:33:49
    что вот в этих обертках вокруг baby you
  • 00:33:51
    не то есть замечательные механизмы
  • 00:33:53
    отключение constraint а то есть можно
  • 00:33:55
    например сказать я не хочу вставлять
  • 00:33:56
    зависимые записи потому что я тестирую
  • 00:33:59
    например только поиск по юзерам если я
  • 00:34:01
    тестирую поиск по юзерам зачем мне там
  • 00:34:03
    все дочерние записи яж тестирую просто
  • 00:34:05
    поиск по юзерам по найму например я могу
  • 00:34:07
    отключить на время моей транзакции
  • 00:34:09
    constraint и вставить маленький дэйтасет
  • 00:34:13
    который без constraint авто есть not
  • 00:34:15
    налы отключены for некие отключены все
  • 00:34:17
    отключена вставить его и после этого
  • 00:34:19
    сделать то что мне нужно а после этого
  • 00:34:22
    вернуть constraint и очень удобно
  • 00:34:25
    функциональность очень простая но очень
  • 00:34:27
    удобно минус и минусы те же самые white
  • 00:34:30
    box
  • 00:34:31
    стала только лучше с тем что мы
  • 00:34:33
    чуть-чуть все-таки абстрагировались от
  • 00:34:34
    самого из киля caching ничего не
  • 00:34:37
    исправилась но я уже говорил как это
  • 00:34:38
    лечить и поддержка ну тут тоже нужно
  • 00:34:41
    будет поддержка только проще чуть-чуть
  • 00:34:43
    она становится за счет вот
  • 00:34:44
    инструментарий обвязки вокруг xml
  • 00:34:47
    следующая очень хорошая интересная
  • 00:34:50
    стратегия вы видите уже по-прежнему
  • 00:34:52
    долгий москве льда то есть это дамб и
  • 00:34:54
    дамбы это круто но когда вы начинаете
  • 00:34:57
    работать с дамбами то ваша жизнь
  • 00:34:59
    превращается в ад
  • 00:35:00
    потому что выдам сняли а потом как его
  • 00:35:03
    поддерживать ни хрена не понятно потому
  • 00:35:05
    что вы об этом не подумали вам нужен был
  • 00:35:07
    а сейчас сейчас вы сделали дамп сняли
  • 00:35:09
    загрузили
  • 00:35:10
    чего-то там протестировали а как дальше
  • 00:35:12
    будет непонятно нехорошая стратегия
  • 00:35:14
    то есть лучше всего сделать какую-то
  • 00:35:17
    более надёжную стратегию например у вас
  • 00:35:19
    есть nexus как артефакт репозиторий или
  • 00:35:22
    артефакт или любой другой артефакт
  • 00:35:24
    репозитории куда вы publish все свои
  • 00:35:26
    артефакты и у вас где-то там наверняка я
  • 00:35:29
    надеюсь что мы сейчас 2018 году поэтому
  • 00:35:32
    вы версии они руется схему базы данных
  • 00:35:34
    то есть у вас нет одного гигантского
  • 00:35:35
    файлика create и сквер вот который вы
  • 00:35:37
    просто руками отслеживается изменения
  • 00:35:39
    тут я надеюсь это уже ни у кого не
  • 00:35:40
    осталось у кого еще так кто так живет
  • 00:35:44
    стесняясь я бы тоже не поднимал руку на
  • 00:35:46
    самом деле увидеть они не все стесняются
  • 00:35:49
    есть еще такие но это на самом деле
  • 00:35:51
    пережиток то есть по хорошим вы должны
  • 00:35:53
    versio не ровать свою схему
  • 00:35:54
    если вы версия нерусь эту эта схема
  • 00:35:56
    где-то хранится правильная между сами
  • 00:35:58
    файлики ваши схемы
  • 00:36:00
    они могут храниться предположим в вашем
  • 00:36:01
    jar ники вы смотрите у меня там сервис а
  • 00:36:04
    схема вершин вся та денди биджара это
  • 00:36:07
    может быть жар ник ваш просто jar и
  • 00:36:08
    неважно то есть какой-то артефакт и он
  • 00:36:10
    верси они равану то есть у него понятная
  • 00:36:12
    какая версия это версия последняя вашей
  • 00:36:14
    схемы и предположим что у меня уже
  • 00:36:16
    каким-то образом откуда-то появился
  • 00:36:19
    изначальный дам под он у меня тут в
  • 00:36:21
    торгах версии 50 ну то есть это значит
  • 00:36:25
    как его получил наверняка я поднял
  • 00:36:26
    приложения версии 50 пошел через ю ай
  • 00:36:29
    накликал мне там 100 юзеров не знаю там
  • 00:36:32
    кучу у них комментариев там всего чего
  • 00:36:34
    мне нужен накликал и сказал там ну и
  • 00:36:37
    снял оттуда дам круто круто сзади повал
  • 00:36:40
    его положил его в nexus вот для 50
  • 00:36:42
    версии есть тут кто-то поближе 51 что
  • 00:36:46
    должно произойти правильно должны
  • 00:36:49
    запустится дженкинс жопы которая подымут
  • 00:36:51
    в докер контейнеры эту в пятидесятую
  • 00:36:54
    версию на котят на нее 50 первую
  • 00:36:57
    миграцию даже здесь у вас мигрирует базы
  • 00:37:00
    они просто тупо стирается
  • 00:37:01
    вот 51 на котят и опять сниму дамб и
  • 00:37:04
    положите его в nexus смотрите как
  • 00:37:07
    замечательно и вы получали версию 51
  • 00:37:09
    теперь вы если захотели поднять свое
  • 00:37:11
    приложение версии 51
  • 00:37:13
    вы подымаете беря из nexus адам номер 51
  • 00:37:16
    данные остались теми же вот структура
  • 00:37:19
    данных которая ваша база она уже
  • 00:37:21
    немножечко не то большое преимущество
  • 00:37:23
    которое дает данный подход это что вы
  • 00:37:25
    можете потом в любой момент времени к
  • 00:37:27
    такому дампу подсоединить само
  • 00:37:29
    приложение той же версии еда вбивать в
  • 00:37:31
    него еще даны или подсоединю приложение
  • 00:37:35
    такой же версии посмотреть отчётом с
  • 00:37:37
    данными получилось это очень просто на
  • 00:37:40
    самом деле то что я описал и благодаря
  • 00:37:42
    этому вы получаете версии они раваны
  • 00:37:43
    дампы для ваших тестов и что еще стоит
  • 00:37:46
    отметить видите у меня тут дампы для
  • 00:37:47
    разных типов тестов у меня могут быть
  • 00:37:49
    дампы например для регрессии меня могут
  • 00:37:52
    быть bump дампы для смоук тестов у меня
  • 00:37:54
    бы могут быть дампы для низа для seo и
  • 00:37:56
    то есть можно много разных дампов
  • 00:37:58
    поддерживать не обязательно иметь
  • 00:37:59
    одинаково но обязательно вот это вот
  • 00:38:03
    синхронизация версии что мы получили мы
  • 00:38:06
    имеем по-прежнему большой плюс суммы
  • 00:38:08
    менеджер данные напрямую в базу данных
  • 00:38:11
    но теперь они уже структурирован теперь
  • 00:38:13
    я не могу разрушить этот я же их бил
  • 00:38:15
    изначальным приложением то есть я
  • 00:38:17
    получил вот этот плюс большой в отличие
  • 00:38:19
    от когда я вставлял из крилем то есть
  • 00:38:21
    она вбила сети данные должны жить по
  • 00:38:23
    хорошему они валидные второе это
  • 00:38:25
    по-прежнему быстро потому что
  • 00:38:27
    восстановиться из маленького дампа
  • 00:38:29
    особенно если вы подняли вашу базу в in
  • 00:38:31
    memory режиме или подняли и инором диске
  • 00:38:34
    то поднять из дампа этом мега быстрая
  • 00:38:36
    операция
  • 00:38:37
    вот при этом дам подготавливаться через
  • 00:38:40
    юань
  • 00:38:40
    это круто мы можем ручных тестировщиков
  • 00:38:42
    ручных такое доброе слово от ручных
  • 00:38:45
    тестировщиков попросить это сделать или
  • 00:38:47
    попросить не знаю менеджеров и кого-то
  • 00:38:49
    еще кто-то кто набьет данных туда
  • 00:38:51
    изначально есть может любой набить через
  • 00:38:53
    его и ходит вот и мы все это храним в
  • 00:38:56
    артефакт репозитории с версиями со всем
  • 00:38:58
    остальным то есть очень просто
  • 00:39:00
    разруливать конфликты
  • 00:39:01
    подбирать друг дружке версию короче все
  • 00:39:03
    вот эти задачи становятся очень очень
  • 00:39:04
    простыми вы даже можете такую штуку
  • 00:39:06
    сделать
  • 00:39:07
    а можно ли мне запустится на версии
  • 00:39:09
    трехмесячной давности и посмотреть
  • 00:39:12
    почему падают с ты мужчина проблем
  • 00:39:14
    подняли трехмесячную версию подняли дам
  • 00:39:16
    трехмесячной версии запустили и прогнали
  • 00:39:18
    все тесты круто круто вот но есть минус
  • 00:39:22
    и минусы небольшие но есть самый такой
  • 00:39:25
    четки -
  • 00:39:26
    уже сложно как то это все получается вот
  • 00:39:29
    если раньше мы кому-то объясняли вы
  • 00:39:30
    помните первый подход через ей открою
  • 00:39:33
    айнов натыкал все годится тут уже
  • 00:39:35
    какие-то версий дампы схемы апдейты то
  • 00:39:39
    есть уже тяжелее объяснить как это все
  • 00:39:40
    работает но ты много данных скрыто
  • 00:39:43
    внутри в этих домах то есть не так четко
  • 00:39:45
    становится видно что же там за данное на
  • 00:39:47
    самом деле сидя следующий нужно в
  • 00:39:49
    саппорт на уровне инфраструктуры то есть
  • 00:39:51
    если у вас некому этим заниматься не и
  • 00:39:53
    вот я только что назвал там какие-то
  • 00:39:54
    слова дженкинс nexus и уже страшно
  • 00:39:57
    звучит потому что никто этого не знает
  • 00:39:58
    вот он наверное не очень хороший подход
  • 00:40:01
    в этом случае наша поддерживать это все
  • 00:40:03
    равно придется ну и требует каких-то
  • 00:40:06
    навыков работы непосредственно с данными
  • 00:40:08
    непосредственно с дамами из вашей базы
  • 00:40:10
    данных что можно еще использовать еще
  • 00:40:12
    можно использовать вот в этой области
  • 00:40:13
    замечательный паттерн под названием
  • 00:40:15
    блэкпул то есть что это обозначает
  • 00:40:18
    не не обязательно грузить дам в тот
  • 00:40:20
    момент когда он вам нужен то есть не
  • 00:40:22
    обязательно тест приходит и говорит а
  • 00:40:23
    дай-ка мне данных а мы горе мое ты
  • 00:40:25
    знаешь нам нужно дам загрузить сидишь
  • 00:40:27
    где пока загрузится дам вместо этого
  • 00:40:29
    можно делать это в бэкграунде то есть
  • 00:40:31
    представьте что вы загружаете роман
  • 00:40:33
    несколько схем одинаковых и кто-то
  • 00:40:36
    приходит горит ну давайте начнем с он
  • 00:40:38
    горит отлично смотрит пузырит вот есть
  • 00:40:41
    схема на котором можем работать отлично
  • 00:40:42
    работаем на этой схеме
  • 00:40:44
    эта схема заек спорилась вы абсолютно
  • 00:40:47
    спокойненько подняли другую схему в
  • 00:40:49
    бэкграунде
  • 00:40:49
    а в это время другой тест работает с
  • 00:40:51
    другой вашего темой вот это очень
  • 00:40:54
    хороший подход он действует хорошо как
  • 00:40:56
    для деби инстансов так и для каких-то
  • 00:40:58
    тяжелых доменных объектов то есть вы
  • 00:41:00
    какой тяжелый доменный объект создали
  • 00:41:02
    он у вас базе хранится его нету смысла
  • 00:41:04
    потом ну еще раз создавать вы его просто
  • 00:41:07
    используется из пула и наконец последнее
  • 00:41:09
    это вот что я называю дейдару то есть
  • 00:41:12
    корни ваших данных
  • 00:41:13
    это ваша ключевая сущность от которой
  • 00:41:15
    потом растут все ваши данные то есть
  • 00:41:17
    если это юзер все что связано с юзерам
  • 00:41:19
    например гитхабе the repository все что
  • 00:41:21
    связано с репозиторием еще где-то там не
  • 00:41:23
    знаю в jiri the project все что связано
  • 00:41:25
    с project am то есть вот это ключевая
  • 00:41:27
    сущность от которой все зависит от
  • 00:41:28
    который все потом расходится вот делая
  • 00:41:30
    pulling на этом уровне очень легко потом
  • 00:41:32
    писать ваши тесты ну и наконец из чего
  • 00:41:35
    последний способ это использовать живые
  • 00:41:37
    данные то есть вы пошли на
  • 00:41:39
    на реальный nanostation ворман тупо
  • 00:41:41
    взяли оттуда дамп это дамп
  • 00:41:43
    восстанавливаете каждый раз для тестов
  • 00:41:44
    какие у этого есть плюсы и минусы плюс
  • 00:41:47
    естественно что это живые данные это
  • 00:41:48
    класса ну то есть живые данные не всегда
  • 00:41:51
    настоящие да то есть то что я настоящая
  • 00:41:53
    юзера вбивают нету дополнительной
  • 00:41:56
    подготовки потому что на лайве уже
  • 00:41:58
    наверное данных при достаточно для
  • 00:41:59
    любого вида теста если вам надо вставить
  • 00:42:01
    там не знаю тысячу юзеров то на лаве вас
  • 00:42:03
    могут быть миллионы юзеров и и все окей
  • 00:42:05
    вот более реалистичные сценарии потому
  • 00:42:08
    что есть кто-то кто вбил корявые данные
  • 00:42:10
    есть кто-то кто там делал много
  • 00:42:12
    транзакций кто-то мало транзакций то
  • 00:42:14
    есть можно взяв из реальных данных и
  • 00:42:16
    найдя правильной сущности с которыми
  • 00:42:18
    работать можно на реальных примеров
  • 00:42:20
    прогонять ваши тесты это классно то есть
  • 00:42:22
    не просто на выдуманных она реально но
  • 00:42:25
    до может быть большой
  • 00:42:27
    это первая проблема я всегда смешит
  • 00:42:29
    когда люди подход используют и горят мы
  • 00:42:31
    сняли 100 гиговый там
  • 00:42:33
    game то есть вы теперь для ваших
  • 00:42:35
    функциональных тестов будете 100 гиговый
  • 00:42:37
    дам каждый раз восстанавливать то есть
  • 00:42:38
    явно вы сделали что-то не то значит надо
  • 00:42:40
    брать сообщает этих данных не надо брать
  • 00:42:42
    тогда все вот второе the security
  • 00:42:45
    если у вас там хранятся кредитки телефон
  • 00:42:48
    и e-mail и я один раз участвовал в
  • 00:42:50
    проекте где один раз разослали около
  • 00:42:53
    миллиона эсэмэсок на реальные номера в
  • 00:42:56
    рамках тестов ну кто-то взял просто дам
  • 00:42:58
    данных under я не знаю какие там телефон
  • 00:43:00
    и запустим наш тестовый сценарий и
  • 00:43:02
    запустили поэтому с этим надо быть очень
  • 00:43:04
    осторожным и наконец пир миссии далеко
  • 00:43:07
    не факт что у вас вообще есть доступ к
  • 00:43:09
    лайвов то есть вы приходите таки отдать
  • 00:43:11
    к нам слайго скачать базы данных у нас
  • 00:43:13
    вы даже есть когда работал в помятом из
  • 00:43:15
    такой пунктик кодов контакта что если
  • 00:43:17
    вам кто-то предложит скачать слайго базу
  • 00:43:20
    данных вы должны отказаться вот потому
  • 00:43:24
    что ну как бы вы получаете
  • 00:43:26
    дополнительную ответственность в виде
  • 00:43:27
    живых данных которые крутятся в системе
  • 00:43:29
    и бог его знает имеете ли вообще права
  • 00:43:32
    смотреть эту информацию и вообще ее
  • 00:43:34
    где-то используя поэтому вот тут вот это
  • 00:43:36
    минус и зато в остальном большие плюсы
  • 00:43:38
    вот я надеюсь что я с вами хоть чем-то
  • 00:43:40
    полезным поделился и это изменит как-то
  • 00:43:43
    вашу работу с
  • 00:43:45
    с данными ваших конкретных тестах на
  • 00:43:47
    разных уровнях и то что я хотел бы вам
  • 00:43:50
    сказать напоследок
  • 00:43:51
    что нельзя так взять просто и написать
  • 00:43:53
    классный тест потому что у классного
  • 00:43:56
    тестов а тот который независимый быстрый
  • 00:43:59
    делая то что нужно может параллели со
  • 00:44:02
    масштабироваться у него есть много вот
  • 00:44:05
    таких вот критериев по которым не так
  • 00:44:07
    это все просто сделать я надеюсь что тот
  • 00:44:09
    инструментарий которым сегодня показал
  • 00:44:11
    предоставил он вам в этом поможем это
  • 00:44:14
    все что у меня есть для вас большое
  • 00:44:16
    спасибо что пришли
  • 00:44:17
    [аплодисменты]
Tags
  • tests
  • données
  • automatisation
  • Selenium
  • consultant
  • logique de test
  • performances
  • scalabilité
  • conferences
  • expertise