
Alexander
28.05.2017
16:35:18
Какой-то не конкретный вопрос.
ну да, вполне себе вопрос обширный. потому что пока еще только всё намечается и надо понять, с какой стороны подойти к вопросу, что может ожидать "за углом"

Aleksandr
28.05.2017
16:39:25

Alexander
28.05.2017
16:50:43
Тестирование-то какое?
вообще - системное. поскольку вместе с фронтом модифицируют и бэк, под работу с англуляром(в моём представлении), то , проверяем не только реализацию фронта, но и как его интегрировали в имеющийся бэк.
примерные представление и скоуп работ есть. останется только конкретизировать.
//на всякий случай - основной браузер -ишак 11версии.

Google

Nikita
28.05.2017
17:02:03
господи, это вообще законно?

Evgeniy
28.05.2017
17:13:59
Модификации бэка- ну отдаёшь ты модели орм в виде json.

Alexander
28.05.2017
17:15:04

Evgeniy
28.05.2017
17:16:58
Тестируешь api. Как везде. Тестируешь Фронт. Как везде :)
Все на месте станет понятно

Alexander
28.05.2017
17:18:07

Nikita
28.05.2017
17:31:46
в общем-то не вижу проблемы. это ретест фронта и бэка
есть тесты - будет хорошо
нет тестов - соболезную

Dmitry
28.05.2017
17:35:58

Alexander
28.05.2017
17:36:04

Dmitry
28.05.2017
17:36:16
берешь все тестишь и смотришь где они =)

Alexander
28.05.2017
17:36:37
а так и тесты есть, и люди, и представление)
но и ощущение, что что-то не учёл - в подарок!

Google

Nikita
28.05.2017
17:36:46

Dmitry
28.05.2017
17:36:53
какая разница даже если они есть =) все равно все проверять надо
по хорошему

Alexander
28.05.2017
17:38:05
в общем, дело пахнет фулл регрессом руками)
но не страшно.

Dmitry
28.05.2017
17:38:12
именно =)
как по мне это вполне ожидаемо в таком случае
плюс то что Никита написал, помимо регресса еще возможно и автомейшн переписывать

Alexander
28.05.2017
17:39:30
ну да, в принципе план-то такой и был.
да и вопрос-то больше о подводных камнях, но раз подводные камни выявятся в фулл регрессе - то считаем, что их и нет особо)

Nikita
28.05.2017
17:40:53
ну это фактически обычное тестирование нового функционала, который тебе хорошо знаком
главная опасность в том, чтобы не пропустить очевидных ошибок из-за "вот тут точно не сломается"

Alexander
28.05.2017
17:41:31

Nikita
28.05.2017
17:41:31
была у меня история с заменой плашечки в гуе, на всю жизнь научила)

Alexander
28.05.2017
17:41:45

Pavel
28.05.2017
17:43:10
Настало время офигительных историй.

Alexander
28.05.2017
17:43:44

Nikita
28.05.2017
17:44:49
да легко)
я катил в прод минорный релиз, а смысл изменений в нем был простой – замена картинки. то есть одна плашка чуть-чуть видоизменяется. а это был еще какой-то выходной, в который мы с чуваками вышли поработать от скуки. в общем состояние – расслабон, я посмотрел у фронта на компе, что иконка работает, похвалил какая красивая иконка. че тут тестировать, думаю) ну и нажал пушнуть в прод
потом думаю не, непорядок, надо запустить тесты все же
и тесты внезапно падают от того, что UI не грузится в принципе
оказывается, другой чувак сунул новый деплой скрипт на коммит раньше, который менял деплой и который мы просмотрели

Google

Nikita
28.05.2017
17:47:08
все это безобразие конечно откатилось быстро, и оно было вылито только на один сервак – но все равно так делать не надо

Aleksandr
28.05.2017
17:51:28


Pavel
28.05.2017
17:52:24
Расскажу и мою эпичную историю.
Однажды мы делали конкурс для студентов в виде тестирования по разным студенческим предметам. В назначенную минуту должно было открыться тестирование и челый час студенты должны были отвечать на несколько десятков вопросов.
Все это дело мы хорошо раскрутили, и на предыдущих этапах набралось порядка 5-6 тысяч участников. То есть они все должны были одновременно зайти в систему и начать тестироваться.
В вечер перед стартом фронты сделали маленькую оптимизацию - чтобы время завершения теста считалось на клиенте и на бэк посылался запрос о закрытии сессии. А студенту показывалась табличка "спасибо за прохождение".
И вот я открываю консоль с логами перед стартом, гляжу как в назначенную минуту начинают бежать запросы как ошпаренные, там в пике было 400 запросов в секунду без учета статики.
Среди запросов вдруг начинают пробегать финиширование сессий. Потом все чаще и чаще, потом вся эта фигня просто валом валит.
Нам начинают писать в личку о том что у них внезапно закрылось тестирование через несколько секунд после старта. В новостях люди пишут комментарии под первыми пятью новостями.


Nikita
28.05.2017
17:59:12
код-то я посмотрел, только не обратил внимания на предыдущий коммит – что их в репу больше одного натолкали


Pavel
28.05.2017
17:59:58
Потом количество гневных комментариев начинает уже исчисляться сотнями, мы решаем прекратить тестирование и всех кикнуть. Пользователи начинают в панике бегать по всем ссылкам сайта и писать гневные сообщения во все щели до которых только могут дотянуться. Все накапливается как снежный ком, в конце концов вся система валится в gateway timeout :D
У нас завалены все почтовые ящики сапорта, все комментарии новостей, форма обратной связи, телефон разрывается...
В итоге мы долго расследовали что же это было, и оказалось что время на фронте не учитывает часовой пояс пользователя, и все пользователи которые расположены восточнее урала и где время сдвинуто от мск на +1 и более, после старта сразу получали сигнал что время вышло и сессия закрывалась.

Pavel
28.05.2017
18:01:52
Вот такие вот пирожки ?

Nikita
28.05.2017
18:02:05
часовые пояса это очень сильная боль

Pavel
28.05.2017
18:02:12
? ?

Nikita
28.05.2017
18:02:32
2 проблемы – таймзоны и инвалидация кэша
еще был классный баг когда интерфейс сам начал кнопки нажимать
сижу я и вижу, что UI начал табы переключать сам по себе) просто берет переключается между двумя табами постоянно, с одного на другой
оказалось, что если быстро переключиться с одного элемента на другой, то уйдут 2 запроса в таблицу хранения состояний почти одновременно, и между ними начиналась гонка :)


Кирилл
29.05.2017
05:26:29
Доброе утро. Возможно, что из более 1000 человек есть те, кто пишет ат на Ruby и готов помочь.
Юзаю PageObject. Описываю сообщение об ошибке следующим образом:
label(:message_error_title2, xpath: "//*[@id='new_template']/div[2]/div[2]/*[text()='Не может быть пустым' and @class='control-label']")
Проблема в том, что на странице порядка 10 элементов, и сообщений об ошибках может быть несколько. Можно ли как-то динамически передавать в xpath значения, чтобы не плодить кучу описаний?
Чтобы в результате один раз написать
label(:message_error_title2, xpath: "//*[@id='new_template']/div[#{line}]/div[2]/*[text()='#{message}' and @class='control-label']")
А потом как-то в it'ах передавать line и message ?

Google

Evgeniy
29.05.2017
05:32:29
Можно

Shoo
29.05.2017
05:33:01
Я видимо дурак, но в упор не понимаю вопроса.

Evgeniy
29.05.2017
05:33:42
У человека например 10 инпутов с обязательным заполнением
Он обрабатывает их своим кодом как обработку исключения на каждый
Решение: наследование от одного метода Пейдж объекта, внутри которого нужно сделать софт ассерт и передавать xpath локатор как аргумент в метод

Shoo
29.05.2017
05:38:36

Evgeniy
29.05.2017
05:38:48
Ну так то да
Это ведь тестовый кейс

Admin
ERROR: S client not available

Shoo
29.05.2017
05:39:24
А дальше все в модуль и радостно юзать.

Кирилл
29.05.2017
05:40:32
О, спасибо) То, что и требовалось)

Evgeniy
29.05.2017
05:51:18
О, спасибо) То, что и требовалось)
Дело в том, что если у тебя поведение этого элемента всегда обязательное и постоянное, то лучше проверить это assert'ом непосредственно в тесте. А в других тестах - не проверять. Если в тестах, в которых ты это не проверяешь - будут падать кейсы, где ты вроде все заполнил - должно быть очевидно и так, где чинить исходя из сообщения фреймворка. Софт ассерты полезны для проверки подгрузки страницы и ее всех элементов ИЗНАЧАЛЬНО, и , чаще всего, это не лучший способ для проверки поведения required полей.
я придерживаюсь принципа, что обработка собственных исключений- нужна, когда надо решать проблемы собственного врарпера и странного поведения эл-та. Каноничнее просто стабилизировать надежность методов Пейдж объектов и давать им работать с самым что ни на есть верхним уровнем исключения, без лишних обёрток


Alexandr
29.05.2017
09:05:39
Оцените форму по 10 бальной шкале:
У меня лид говорит, что она нормальная и можно отдавать заказчику
Что-то я в это жизни стал не понимать

Dmitry
29.05.2017
09:06:40
норм прям в году так 90 себя почуствовал

Светлана
29.05.2017
09:07:09

Ольга
29.05.2017
09:07:24

Alexandr
29.05.2017
09:07:33

Светлана
29.05.2017
09:07:46
а она точно должна быть изящной? )

Google

Alexandr
29.05.2017
09:08:09
Ну конечно:)

Nick
29.05.2017
09:08:11
ЛОЛ

Igor
29.05.2017
09:08:33
Если она выполняет свои функции - то зачем в софте такого рода излишнее изящество? )

Светлана
29.05.2017
09:08:52
ну тянет человека к прекрасному, ну что поделаешь

Слойка
29.05.2017
09:09:12

Nick
29.05.2017
09:09:19
она очень плохая в плане красоты
выравнивание у каждой серкции своё
ширина полей разная

Dieva
29.05.2017
09:10:01
для банковских тем вообще норм

Igor
29.05.2017
09:10:12

Dieva
29.05.2017
09:10:23
там всё некрасиво)

Maksim
29.05.2017
09:10:28
похоже на 1с, бабушки в бухгалтерии путаться не будут

Nick
29.05.2017
09:10:40

Alexandr
29.05.2017
09:11:24
Короче крутая форма, больше нечего сказать:)

Nick
29.05.2017
09:11:26
почему только 1 поле имеет цветную иконку на дейтипикере, а на дроп-дауне - шрифт Брайля?

Yulia Stwippie
29.05.2017
09:11:54
да

Pavel
29.05.2017
09:11:55
Маленький шрифт

Yulia Stwippie
29.05.2017
09:11:59
форма некрасивая

Pavel
29.05.2017
09:12:04
Надо бы переделать в material design

Nick
29.05.2017
09:12:05
форма говно без дизайна, но если удобно и функционально - то пусть пользуются