
Richard
16.05.2017
12:43:05

Juliya
16.05.2017
12:43:21
если это TDD то наоборот)

Richard
16.05.2017
12:43:53
BDD, ты хотела сказать? )

Pavel
16.05.2017
12:44:03
Да потому что тесты по определению не зависят от имплементации проекта

Google

Shoo
16.05.2017
12:44:04

Pavel
16.05.2017
12:44:31
Его можно хоть на другом языке переписать, хоть с ООП на функциональный, хоть на брейнфаке - тесты проверяют аутпут.

Anton
16.05.2017
12:45:33
мне кажется это зависит от Уровня написания тестов: на "черный ящик" мы их пишем или на "прозрачный"

Pavel
16.05.2017
12:45:45
По какому определению?
По определению теста. Тест - это штука которая проверяет что заявленные требования правильно реализованы в ПО. При этом вообще никак не важно, как и в какой архитектуре они реализованы.

Shoo
16.05.2017
12:48:51

Yevhenii
16.05.2017
12:48:57
интересно, но пожалуй все зависит от подхода, тестирование на уровне кода или тестирование пользовательского интерфейса.

Shoo
16.05.2017
12:49:34
У вас есть сеть из 30 микросервисов или один монолит, вы считаете что это не будет влиять на архитектуру тестов?
Если да, то сориян, проблема снова в вас.

Pavel
16.05.2017
12:50:57

Shoo
16.05.2017
12:51:58

Pavel
16.05.2017
12:52:03
Когда мы говорим про PageObject - тест получает html страницу. Как, кем, когда она была сгенерена, в какой архитектуре, из каких источников данных - хоть монолитом, хоть сотней микросервисов - абсолютно не должно волновать тесты.

Shoo
16.05.2017
12:52:17
Когда мы говорим про PageObject там вообще может фронтенда не быть.

Google

Shoo
16.05.2017
12:52:41
Когда мы говорим про пейджобджект там может быть страница, которая динамически собирается из блоков на реакте, каждый из которых живет независимой жизнью.

Pavel
16.05.2017
12:52:43
Если там отдается json то ровно то же самое.

Shoo
16.05.2017
12:53:09
Вы страницы jsonами отдаете?

Pavel
16.05.2017
12:54:06
Микросервисы отдают исключительно страницы?

Shoo
16.05.2017
12:55:31
> Когда мы говорим про PageObject - тест получает html страницу

Pavel
16.05.2017
12:55:58
А если не меняется логика?

Dmitry
16.05.2017
12:58:23
А если не меняется логика?
ну например, если тесты не умеют работать адекватно с дроп даун меню, и на ангуляре тесты совсем не видит этот дропдаун
придется переписывать

Shoo
16.05.2017
12:58:31
Если не меняется логика то вы, вероятнее всего, ничего не переписали.
Если меняется бизнес-логика -> переписываются тесты.
Если меняется логика взаимодействия с сервисом -> переписываются page objectы.
Если меняются локаторы -> переписывается мап локаторов.
Всё просто и логично.

Pavel
16.05.2017
12:59:51
Это называется в программировании интерфейс, или, по-другому - "контракт".

Shoo
16.05.2017
13:01:12
> Very sad for you.
Скорее for you, если под логикой вы понимаете только бизнес логику.

Arseniy
16.05.2017
13:01:38
может срач в личку, а результаты срача сюда, если будут осмысленные?

Shoo
16.05.2017
13:01:41
Рефакторинг производительности -> тоже изменение логики приложения, сориян.

Google

Николай
16.05.2017
13:02:26
похоже на паттерн разработки тестов PageObject
да. Оно и есть. Мне не нравиться что в месте которое называется @Test есть строки типа cat = new cat
или
написано cat.run вместо run
Сколько примеров в инете не смотрел везде есть что то лишнее в том блоке который называется @Test

Pavel
16.05.2017
13:02:48

Shoo
16.05.2017
13:03:14

Николай
16.05.2017
13:03:47
чет вы злые сегодня )

Evgeniy
16.05.2017
13:04:48
рефакторингом можно назвать все то, что из 3rd party (а еще лучше - стд либа) было поменяно и ты переписал код на "получше" - заодно, например, убрав deprecated ворнинги

Pavel
16.05.2017
13:06:27
А если добавить индекс на таблицы в базу, то это тоже изменение логики, ага.

Evgeniy
16.05.2017
13:06:38
но Павел немного лукваит называя что ускорение проивзодительности -это рефакторинг. Это бизнес задача

Shoo
16.05.2017
13:06:55

Evgeniy
16.05.2017
13:07:07
например, пересчет индекса может идти пару недель
=)

Dmitry
16.05.2017
13:07:41

Richard
16.05.2017
13:08:46
не очень

Pavel
16.05.2017
13:09:11
Ну если считать любое передвижение байтов на продакшен сервере изменением логики, то конечно оно да, но другое дело что тогда надо к психотерапевту наведаться.

Evgeniy
16.05.2017
13:09:55
в общем я считаю так:
Ускорение производительности - чаще бизнес задача и под рефакторинг не подходит.
Ускорение проиизводительности *может* быть рефакторингом, если был переписан код на новый языковой стандарт, в котором есть обратная совместимость

Pavel
16.05.2017
13:10:51
Ну, а тесты то, которые при этом проверяют селекторы в сгенеренной странице, будут переписываться или нет?

Evgeniy
16.05.2017
13:14:56
эти тесты - не будут :)

Anton
16.05.2017
13:14:58

Dmitry
16.05.2017
13:16:02

Google

Dmitry
16.05.2017
13:16:34
или же при изменения фреймворка, автомейшн перестанет видеть какой-то селектор ?

Evgeniy
16.05.2017
13:18:41
цели рефакторинга - не сделать "быстрее". Цели рефакторинга - сделать поддерживаемее.

Richard
16.05.2017
13:20:06
цель рефакторинга определяет заказчик рефакторинга.
Если заказчик просит чтобы было быстрее - идёт рефакторинг для увеличения скорости. Если техлид решает, что надо чтобы было поддерживаемо или ещё что - он заказывает рефакторинг, да.

Evgeniy
16.05.2017
13:21:46
процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы

Richard
16.05.2017
13:21:49
это например.

Evgeniy
16.05.2017
13:22:03
Вы путаете терминологию
Читаем Фаулера

Admin
ERROR: S client not available

Dmitry
16.05.2017
13:22:31

Anton
16.05.2017
13:24:16
и "остальное" - получается то же должно остаться не изменным

Evgeniy
16.05.2017
13:26:01

Anton
16.05.2017
13:27:25
вывод:
рефакторинга с бизнесс смыслом не бывает

Evgeniy
16.05.2017
13:27:48
есть и другой рефакторинг - когда ты переписав а ничего с точки зрения business value не добавив - сделал код понятнее, поменял вызовы, или доказал и проверил, что можно обойтись без лишнего вызова процедуры.
Тесты показали, что твой рефакторинг не сломал business value = профит.

Alexei
16.05.2017
13:28:55

Pavel
16.05.2017
13:29:13
Употреблять термин "рефакторинг", как что-то, что заставляет измениться бизнес логику, или тесты, или его заказывает бизнес-работник - не нужно.
Это все запутывает и взрывает моск.
Далее, если мы обмазались TDD подходом и сначала написали тесты, а приложения еще нету, то архитектура приложения ну никак не может повлиять на архитектуру тестов, ведь ее не существует!

Google

Николай
16.05.2017
13:30:43

Filipp
16.05.2017
13:31:05

Alexei
16.05.2017
13:31:21
TDD это написание приложения, с помощью написания тестов.

Anton
16.05.2017
13:32:02

Pavel
16.05.2017
13:32:38
Ну тест на методы класса может быть написан, а сам класс еще нет. Это жиза вообще.

Filipp
16.05.2017
13:32:52

Pavel
16.05.2017
13:33:06
Да и написать приемочные тесты на верстку без логики тоже вполне реально.

Nikita
16.05.2017
13:33:27

Dmitry
16.05.2017
13:33:43
незнаю кто такой этот Фаулера, но видимо придеться почитать

Evgeniy
16.05.2017
13:34:38
https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D1%83%D0%BB%D0%B5%D1%80,_%D0%9C%D0%B0%D1%80%D1%82%D0%B8%D0%BD

Pavel
16.05.2017
13:34:39
это как, прости? :)
Ну так, вписываешь в тесты что посылая запрос на /abc ты ожидаешь по таким-то селекторам увидеть значения x,y,z.
А потом все это прогеры уже закодивают.

Filipp
16.05.2017
13:35:23

Dmitry
16.05.2017
13:35:25

Nikita
16.05.2017
13:35:48

Evgeniy
16.05.2017
13:35:49
"Рефакторинг" =)

Nikita
16.05.2017
13:36:06
у тебя селекторы продуманы изначально?))

Evgeniy
16.05.2017
13:36:12
у Фаулера можно читать всё - чувак пишет хорошие вещи

Pavel
16.05.2017
13:36:38
Потом эта верстка приходит к прогерам, они ее нарезают на свои блоки, шаблоны, и закодивают рендеринг значений из приложения. А QA остается только запустить тест.