
Vitaly
24.07.2018
17:39:08
И немного отвлечёмся от китайских ботов на UI automation http://qa-blog.alexei-vinogradov.de/2018/07/kiss-driven-test-automation-и-вопросы-о-статистике-успеха/
На мой взгляд, слишком абстрактно получилось. KISS, в отличие от SOLID, GRASP и DRY самый толковый, но и самый размытый из всех "принципов", поэтому вещать за него, действительно не стоит(это как сказать "ребят, ну надо хороший код просто писать"), но доклад, тем не менее крутой, хотя бы из-за "не пишите фреймворки, пишите код"


Artur
24.07.2018
17:59:11
Доклад хороший. Вот только я бы его переименовал в "Mastering selenide". В условиях работы на основе Селенида информация интересна и правильна и даст хороший старт новичку в данном врапере. Но тема доклада и некоторая подача все таки базировалось на подход в целом. А в условиях вот уже нативного Селениума или дргих фреймворков которые уже не используют такие подкапотные динамеческие кондишены, подобные советы могут ,я бы даже сказал, навредить. А ведь как вы сами заметили Селенидом пользуется чуть большая часть аудитории. Соответсвенно часть аудитории может впитать и не совсем то что нужно.
В целом доклад хороший и интересный вот только посыл, как мне кажется, стоило чуть специфицировать.

Evgeniy
24.07.2018
18:01:37
что касается паттернов, то сам Солнцев еще 3 года назад писал на своем сайте, что можно вполне себе жить без пейдж обжект паттерна =)

Alexei
24.07.2018
18:38:29

Google

Alexei
24.07.2018
18:42:32
На мой взгляд, слишком абстрактно получилось. KISS, в отличие от SOLID, GRASP и DRY самый толковый, но и самый размытый из всех "принципов", поэтому вещать за него, действительно не стоит(это как сказать "ребят, ну надо хороший код просто писать"), но доклад, тем не менее крутой, хотя бы из-за "не пишите фреймворки, пишите код"
Спасибо! Как раз новый вариант с бритвой более конкретно объясняет когда "обрезать", ну и примеры для ui и Selenide конкретные.
А так да, писать KISS код сложно. Учимся потихоньку

Olha
24.07.2018
18:53:14
0,

Alexei
24.07.2018
20:11:33


Ivan
24.07.2018
20:44:46
еще хорошо, когда pageobject генерируется автоматически для всех страниц сайта)

Evgeniy
24.07.2018
20:50:32

Ivan
24.07.2018
20:52:11
тестировал только большие проекты, ван пэйдж не тестировал

Evgeniy
24.07.2018
20:54:19
Генерация бойлерплейт кода может что-то и сэкономит на джаве, но на интерпретируемых языках это экономия на спичках. Сомневаюсь что генерация может что-то больше, чем как-то обозвать класс исходя из текущего Url и накидав в него нужных и ненужных вебэлементов

Ivan
24.07.2018
20:55:45
ну думаю хорошо, если заходишь на первую страницу сайта, а там есть уже js объект в котором есть все виджиты, кнопки и id всех элементов

Evgeniy
24.07.2018
20:58:23
Ясно.

Anton
24.07.2018
20:58:27
Этот js объект генерируется самостоятельно или описывается ручками?

Ivan
24.07.2018
20:58:52
автоматически

Anton
24.07.2018
21:01:20
Ну тут правда возможности генерации, наверное, ограничены. Да и от проекта зависит и кейсов тестирования. Некоторые динамические элементы автоматически не сгенерируются в любом случае

Ivan
24.07.2018
21:03:03
можно было создать свою страницу накидать на нее компонентов и автоматически сгенерировать класс со всеми page object элементами и писать тесты

Google

Shoo
24.07.2018
21:04:17
Можно сделать троллейбус из буханки хлеба.

Alexei
24.07.2018
21:35:32
Генерация слишком много ненужного нагенерирует, на практике лучше только то, что нужно в тестах.

Ivan
24.07.2018
21:36:49
Может быть, но было удобно когда разработчики изменили страницу и код перегенерировался и тестовый проект сразу содержит ошибки компиляции без прогона тестов...

Alexei
24.07.2018
21:40:11
Плюсы и минусы, где-то может хорошо работать, где-то не очень

Ivan
24.07.2018
21:42:25
везде есть + и - )

Alexei
24.07.2018
21:53:49
В идеале работать так должно: разрабы поменяли разметку, запустили тесты, тесты упали - они их поправили. Иначе для чего тесты.

Ilya
24.07.2018
21:54:59
Или еще лучше, сразу править тесты, до того как они пойдут

Alexei
24.07.2018
21:55:03
люблю утверждения, начинающиеся со слов "большинство экспертов считает" :)

Marsel
24.07.2018
21:57:40
Народ, iOS апп с. 3.2 пытаюсь запустить XCTest на UI automation тест кейсы вообще(точнее запускается после launch сразу закрываться)run не проходит и ошибок тоже нету просто пишет success и все. Проверил target тоже проблем нету

Vitaly
25.07.2018
06:38:25

Сергей
25.07.2018
06:49:52
Ну да. Почему бы и нет? :)


Vitaly
25.07.2018
07:19:36
Ну гнать е2е сомнительная идея из-за таймингов: я знаю контору у которой подготовка окружения и прогон занимали 3 дня))) Даже выборочный прогон может отправить разработчика курить минут на 20, а разработчики нынче конских денег стоят. Более того, у разрабов обычно есть свои тестовые "подушки" (юниты, интеграционные тесты и т.д.) которые бегут сильно быстрее. Вот тут полнее дядя написал про это: “Testing is Good. Pyramids are Bad. Ice Cream Cones are the Worst” @fistsOfReason https://medium.com/@fistsOfReason/testing-is-good-pyramids-are-bad-ice-cream-cones-are-the-worst-ad94b9b2f05f
Про поправили тут еще более спорно: дело в том, что у вас свои приколы, а у нас свои. Вы совсем по-другому пишите, у вас свои паттерны, фреймворки...да даже стайл-гайды могут быть другими. Если разработчик залезет в тест и увидит там все вот эти page-object'ы обмазанные кукумбером, то он в лучшем случае ничего не поймет, а в худшем случае поправит-сломает-подопрет костыликом-и так сойдет
Не говоря уже о том, что у нас, например, бекенд на .net, фронт на js, а автоматизация на java
Может я не прав, конечно, но мне всегда казалось, что лучше выходит когда каждый делает свое дело: тестирование пишет тесты, разработка разрабатывает, ci/cd запускает :)


Ilya
25.07.2018
07:38:11
хм, у нас разработчики сначала пишут базовые тесты на новые фичи, а потом только пилят фичу)

Anton
25.07.2018
07:38:58
с юнитами так часто бывает;
но не везде разработчики вообще взаимодействуют с end-to-end сценариями

Ilya
25.07.2018
07:39:09
я не про unit тесты

Google

Alexei
25.07.2018
07:53:02


Vitaly
25.07.2018
07:54:35
Более того, супер дорогие программисты, обычно, руками прокликивают то что могло сломаться перед коммитом, т.к. да, быстрее сразу хорошо чем по 100 раз переделывать)))

Alexei
25.07.2018
07:56:54
Общая идея, если тесты программистам никак не помогают, то возможно это ненужные тесты.

Anton
25.07.2018
07:59:35
E2E на пул-реквест - нормас. Чтобы разраб не ждал три дня есть CI/CD и автоматизация подготовки окружения.
У тестировщиков фреймворки ни фига не магические, разрабы в unit'ах больше магии делают. Если локатор сложно написать - то может разрабу как раз легче айдишник в коде добавить.
Если пэйджи готовы и есть дока к тесту, то там вообще все понятно должно быть.
Плюс разраб большей экспертизой обладает и может зарефакторить код теста.
Ну и последнее, все его изменения через ревью пойдут, так что ему объяснят, где он сломал и он больше так не будет.

Shoo
25.07.2018
08:00:55
Дока к тесту. Т.т

Vitaly
25.07.2018
08:01:38

Shoo
25.07.2018
08:01:47
Пойду, пожалуй, тоже за kiss проповедовать.


Vitaly
25.07.2018
08:09:04
E2E на пул-реквест - нормас. Чтобы разраб не ждал три дня есть CI/CD и автоматизация подготовки окружения.
У тестировщиков фреймворки ни фига не магические, разрабы в unit'ах больше магии делают. Если локатор сложно написать - то может разрабу как раз легче айдишник в коде добавить.
Если пэйджи готовы и есть дока к тесту, то там вообще все понятно должно быть.
Плюс разраб большей экспертизой обладает и может зарефакторить код теста.
Ну и последнее, все его изменения через ревью пойдут, так что ему объяснят, где он сломал и он больше так не будет.
Е2е на пул-реквест нормас, если можно выбирать нужные е2е из пачки, иначе 3 дня на каждый ПР
CI/CD - это прекрасно, расскажите теперь какому-нибудь банку про то, что им надо весь софт через дженкинс на стенд выращенный солтом или ансиблом научиться катать.
В юнитах магии быть не может, или это не юниты
Ревью не отлавливает ошибки и баги
А в остальном согласен)))


Shoo
25.07.2018
08:11:48
Если ваше ревью не отлавливает ошибки - это хреновое ревью.
Если ваши е2е гонятся три дня - это хреновые е2е.
Ну а про катание через дженкинс вообще промолчу пожалуй.

Никита
25.07.2018
08:16:50
Как можно имитировать занятость файла? К примеру есть .dll файл и я хочу чтобы он был занят другим процессом, дабы он не менялся

Ilya
25.07.2018
08:19:03
откройте его на запись и не закрывайте

Vitaly
25.07.2018
08:19:15

Shoo
25.07.2018
08:22:45
И нет, к дженкинсу у меня претензий нет.

Vitaly
25.07.2018
08:26:10

Evgeniy
25.07.2018
08:26:14
можете найти утилиты\написать сами на python\java\etc код который будет захватывать файл\папку

Ilya
25.07.2018
08:27:56

Google

Ilya
25.07.2018
08:28:18
хотя я дллки и на юниксе заводил, через ctypes

Evgeniy
25.07.2018
08:29:10
я дал генерализованный ответ :S хоть коня рогатого можно будет лочить

Shoo
25.07.2018
08:29:33
Резонный подход (нет).

Никита
25.07.2018
08:29:51
Удалось залочить обычным текстовым редактором

Ilya
25.07.2018
08:30:16

Vitaly
25.07.2018
08:34:28

Shoo
25.07.2018
08:35:02
Действительно не смешно. :)

Evgeniy
25.07.2018
08:36:03
ну например я на ревью отловил каскад-делит половины development базы. Что с этим не так?
А испанца, который это написал, уволили.

Shoo
25.07.2018
08:36:24

Vitaly
25.07.2018
08:37:26

Ilya
25.07.2018
08:37:30
опять же, пример нашего воркфлоу, как только заводится МР, стартует гитлаб пайаплайн с тестами на тот модуль, который затронули в МРе. пока ревьюеры ревьюят, идут тесты. и по их завершению вдобавок к замечаниям по ревью можно увидеть результаты тестов

Vitaly
25.07.2018
08:38:18

Evgeniy
25.07.2018
08:40:51
опять же, пример нашего воркфлоу, как только заводится МР, стартует гитлаб пайаплайн с тестами на тот модуль, который затронули в МРе. пока ревьюеры ревьюят, идут тесты. и по их завершению вдобавок к замечаниям по ревью можно увидеть результаты тестов
все так и есть, но зачастую ревью кода помогает выявить проблему раньше, чем в некоторых случаях рестор базы. Хорошо, если эта база содержит в себе весь набор связей для чтобы считать ее тестовой и полной, и достаточно (наиболее допустимо мала), чтобы операции рестора были быстрые, а если нет?

Ilya
25.07.2018
08:41:04
не, ревью неизбежно, это понятно
желательно чтобы несколько человек

Shoo
25.07.2018
08:42:04
it depends
Нет, не depends. Ты или задаешься вопросом как код который ты написал/ревьюишь/тестируешь будет работать в реальных условиях, или катишь говна в прод.
И вот это вот "концептуально оно ок" не стоит ничего, если оно не работает в реальных условиях.
Я нигде не говорил, что ревью заменяет тесты. Я говорил, что валидировать на ревью синтаксис игнорируя смысловую нагрузку - задача статического анализатора, а не инженера.

Ilya
25.07.2018
08:42:08
плюс у нас включены аппрувы по ревью, должно быть не менее 2х аппруверов. А когда все аппрувы получены стартует вебхук, который запускает test&merge, который уже прогоняет вообще все тесты, а потом сам мержит)

Google

Evgeniy
25.07.2018
08:42:57

Ilya
25.07.2018
08:43:18
ну это уже многолетняя выработка воркфлоу, имхо одна из лучших, но далеко не везде подойдет
например выловить в гуевых тестах что за компонент в ревью, довольно сложно

Shoo
25.07.2018
08:43:40
Звучит довольно стандартно.

Vitaly
25.07.2018
08:44:27

Shoo
25.07.2018
08:44:51
Лол.
Выше уже комментировал.

Vitaly
25.07.2018
08:45:01
Теплое\мягкое, вот это все

Shoo
25.07.2018
08:47:47
Окей, окей. Действительно, зачем задумываться лишний раз о том, что ревьюишь.
Концептуально-то ок.