Re[11]: Юнит-тестирование GUI
От: Evgeny.Panasyuk Россия  
Дата: 30.09.15 14:28
Оценка:
Здравствуйте, Mamut, Вы писали:

EP>>Ты скриншоты ручками что-ли собрался делать?

M>Тут выше предложили делать исключительно ручками

Кто? Где?

EP>>Автоматический image diff на то и автоматический что он сам соберёт все скриншоты, выявит изменившиеся, сделает diff (попиксельный, либо с подсветкой изменённой области, либо ещё какой подходит по задаче), зашлёт в dashboard и даст кнопочку approve

M>Это что-то из области фантастики уже

В CDash как раз есть такая фича, её использовали например VTK/ParaView, сейчас сходу не могу найти ссылку на public dashboard, видимо куда-то переместили. Вот, пока только видео нашёл (50:23):
Только там ЕМНИП не скриншоты, а изображения — но не суть, снять скриншоты автоматически вообще не проблема. Ради тестов я сливал с 3rd party программ куда более закрытые данные чем скриншоты
А вот тут конкретно про сайты, скриншоты, и image diff'ы с них
Re[12]: Юнит-тестирование GUI
От: Mamut Швеция http://dmitriid.com
Дата: 30.09.15 14:48
Оценка:
EP>>>Ты скриншоты ручками что-ли собрался делать?
M>>Тут выше предложили делать исключительно ручками
EP>Кто? Где?

http://rsdn.ru/forum/flame.comp/6198113.1
Автор: v6
Дата: 30.09.15



M>>Это что-то из области фантастики уже


EP>В CDash как раз есть такая фича, её использовали например VTK/ParaView, сейчас сходу не могу найти ссылку на public dashboard, видимо куда-то переместили. Вот, пока только видео нашёл (50:23):

EP>Только там ЕМНИП не скриншоты, а изображения — но не суть, снять скриншоты автоматически вообще не проблема. Ради тестов я сливал с 3rd party программ куда более закрытые данные чем скриншоты
EP>А вот тут конкретно про сайты, скриншоты, и image diff'ы с них

As the name implies, our screenshot tests (1) first capture a screenshot of a URL, then (2) compare the result with an expected image.


Выделенное. Откуда взять "expected image"?

И далее:

Getting generated screenshots to render identically on separate machines was quite a challenge. It took months to figure out how to get it right.


В итоге они выбрали PhanomJS, который использует WebKit. Если посмотреть на пункт первый в моем сообщении, с ВебКитом проблем нет. Но внезапно появились в Firefox'е.


dmitriid.comGitHubLinkedIn
Re[13]: Юнит-тестирование GUI
От: Evgeny.Panasyuk Россия  
Дата: 30.09.15 15:03
Оценка: +1
Здравствуйте, Mamut, Вы писали:

EP>>>>Ты скриншоты ручками что-ли собрался делать?

M>>>Тут выше предложили делать исключительно ручками
EP>>Кто? Где?
M>http://rsdn.ru/forum/flame.comp/6198113.1
Автор: v6
Дата: 30.09.15


Там про "смотрим вручную" и "аппрувим вручную", но не про "снимаем скриншоты вручную".
Скриншотов могут быть сотни — под разные комбинации параметров, форм и т.п. — ты что думал после каждого мини-рефакторинга нужно снимать сотни ручных скриншотов?

EP>>А вот тут конкретно про сайты, скриншоты, и image diff'ы с них

M>

M>As the name implies, our screenshot tests (1) first capture a screenshot of a URL, then (2) compare the result with an expected image.

M>Выделенное. Откуда взять "expected image"?

Expected image от другого отличается тем, что первый зааппрувили, а второй нет. Способ получения изображений желательно должен быть одинаковый — это проще (так как и там и там автоматически) и надёжней (не будет различий возникших от разных методов)

M>И далее:

M>

M>Getting generated screenshots to render identically on separate machines was quite a challenge. It took months to figure out how to get it right.


Да пофиг сколько у них что заняло, я привёл первую попавшуюся ссылку, дабы показать что это никакая не фантастика. Наверняка есть готовые утилиты — я ни вебом ни GUI не занимаюсь, поэтому сходу конкретные тулзы не посоветую.
Re[14]: Юнит-тестирование GUI
От: Mamut Швеция http://dmitriid.com
Дата: 30.09.15 15:16
Оценка:
M>>Выделенное. Откуда взять "expected image"?

EP>Expected image от другого отличается тем, что первый зааппрувили, а второй нет. Способ получения изображений желательно должен быть одинаковый — это проще (так как и там и там автоматически) и надёжней (не будет различий возникших от разных методов)


Ну то есть expected image все равно получается строго вручную. Потому что в описанной мною ситуации уже первый скриншот будет с ошибкой.

M>>И далее:

M>>

M>>Getting generated screenshots to render identically on separate machines was quite a challenge. It took months to figure out how to get it right.


EP>Да пофиг сколько у них что заняло


Нет не пофиг.

EP>, я ни вебом ни GUI не занимаюсь


А. Ну тогда твои советы идут лесом, уж извини. Хотя теперь понятно, почему ты скипнул мой комментарий про WebKit vs. Firefox


dmitriid.comGitHubLinkedIn
Re[15]: Юнит-тестирование GUI
От: Evgeny.Panasyuk Россия  
Дата: 30.09.15 15:35
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>Выделенное. Откуда взять "expected image"?

EP>>Expected image от другого отличается тем, что первый зааппрувили, а второй нет. Способ получения изображений желательно должен быть одинаковый — это проще (так как и там и там автоматически) и надёжней (не будет различий возникших от разных методов)
M>Ну то есть expected image все равно получается строго вручную. Потому что в описанной мною ситуации уже первый скриншот будет с ошибкой.

Что значит строго вручную? То что его нужно просмотреть чтобы зааппрувить? Да нужно. Точно также как и подготовить тестовые in/out вектора для любого другого теста

M>>>И далее:

M>>>

M>>>Getting generated screenshots to render identically on separate machines was quite a challenge. It took months to figure out how to get it right.

EP>>Да пофиг сколько у них что заняло
M>Нет не пофиг.

Пофиг. Даже если взять их месяцы, и допустить что в каждом случае нужно тратить эти месяцы, и нет ничего готового — то это никакая не фантастика как ты выражаешься.

EP>>, я ни вебом ни GUI не занимаюсь

M>А. Ну тогда твои советы идут лесом, уж извини.

Ты можешь ныть сколько угодно, но технологию тебе уже разжевали, дальше ищи сам.

M>Хотя теперь понятно, почему ты скипнул мой комментарий про WebKit vs. Firefox


Да причём тут WebKit vs. Firefox, бери все доступные веб-движки и делай со всех скриншоты для каждого случая.
Я кстати вспомнил что уже делал робота для одной веб-игрушки, чисто for fun — целиком на основе эмуляции работы мыши и автоматического снятия скриншотов с Firefox во время процесса, и их "частичного распознавания" (надо было найти расположение игровых клеток, и определить их содержание) — это был небольшой скрипт на Python, написанный за несколько часов — никаких проблем не было
Re[2]: Юнит-тестирование GUI
От: consign  
Дата: 01.10.15 05:36
Оценка:
Здравствуйте, Гест, Вы писали:

Г>
  • тесты «как оно выглядит» раньше были менее важны (ну, грубо говоря в период когда почти любой интерфейс это была статичная «форма», раз и навсегда сляпанная в «дизайнере форм»), теперь всё по-другому, конечно;

    Прогресс!
  • Re[16]: Юнит-тестирование GUI
    От: Mamut Швеция http://dmitriid.com
    Дата: 01.10.15 08:13
    Оценка:
    EP>>>, я ни вебом ни GUI не занимаюсь
    M>>А. Ну тогда твои советы идут лесом, уж извини.
    EP>Ты можешь ныть сколько угодно, но технологию тебе уже разжевали, дальше ищи сам.

    Это тебе кажется, что ты разжевал. Хотя то, что ты «разжевал» даже близко не является решением. По ссылке пацанам понадобилось несколько месяцев траха, чтобы смочь сделать "a couple dozen" скриншотов только на одном из доступных движков.

    Удобно, че.

    M>>Хотя теперь понятно, почему ты скипнул мой комментарий про WebKit vs. Firefox


    EP>Да причём тут WebKit vs. Firefox,


    При том, что ты «не занимаешься вебом и UI» и вообще не понимаешь, о чем говоришь. Кидаешь мне статью, в которой якобы все разжевано при том, что они в итоге снимают скриншоты только в ВебКите, потому что ни один другой способ не подошел.

    EP>бери все доступные веб-движки и делай со всех скриншоты для каждого случая.


    О да, ведь это так просто, «технология разжевана» и, главное, это будет стабильно работать, ага-ага

    EP>Я кстати вспомнил что уже делал робота для одной веб-игрушки, чисто for fun — целиком на основе эмуляции работы мыши и автоматического снятия скриншотов с Firefox


    Ты путаешь робота for-fun и тесты.


    dmitriid.comGitHubLinkedIn
    Отредактировано 01.10.2015 8:15 Mamut [ищите в других сетях] . Предыдущая версия .
    Re[17]: Юнит-тестирование GUI
    От: Evgeny.Panasyuk Россия  
    Дата: 01.10.15 13:26
    Оценка:
    Здравствуйте, Mamut, Вы писали:

    EP>>>>, я ни вебом ни GUI не занимаюсь

    M>>>А. Ну тогда твои советы идут лесом, уж извини.
    EP>>Ты можешь ныть сколько угодно, но технологию тебе уже разжевали, дальше ищи сам.
    M>Это тебе кажется, что ты разжевал.

    Не только я

    M>Хотя то, что ты «разжевал» даже близко не является решением.


    Аргументы против?

    M>По ссылке пацанам понадобилось несколько месяцев траха, чтобы смочь сделать "a couple dozen" скриншотов только на одном из доступных движков.

    M>Удобно, че.

    Ещё раз, это контраргумент твоему опрометчивому высказыванию про область фантастики. Первая попавшаяся ссылка.
    Сколько там им времени понадобилось, какая у них кривизна рук — рояли не играет.

    M>>>Хотя теперь понятно, почему ты скипнул мой комментарий про WebKit vs. Firefox

    EP>>Да причём тут WebKit vs. Firefox,
    M>При том, что ты «не занимаешься вебом и UI» и вообще не понимаешь, о чем говоришь.

    Давай конкретные аргументы в студию.

    M>Кидаешь мне статью, в которой якобы все разжевано при том, что они в итоге снимают скриншоты только в ВебКите, потому что ни один другой способ не подошел.


    Первый пример показывает что есть реальные Dashboard'ы с image diff'ами, но так как там тема немного другая (не веб) — я привёл ссылку на вариант image diff'ов с веба.
    Остальное это всё твои левые домыслы, я не говорил что в статье всё разжёвано, что это самый быстрый вариант, или что скриншоты можно снять только с WebKit, или что это всегда оправданно.

    EP>>бери все доступные веб-движки и делай со всех скриншоты для каждого случая.

    M>О да, ведь это так просто, «технология разжевана» и, главное, это будет стабильно работать, ага-ага

    Приводи конкретные аргументы против, а не это лирику.

    EP>>Я кстати вспомнил что уже делал робота для одной веб-игрушки, чисто for fun — целиком на основе эмуляции работы мыши и автоматического снятия скриншотов с Firefox

    M>Ты путаешь робота for-fun и тесты.

    Где путаю? Ты по сути ни одного контраргмуента так и не привёл.
    Re: Юнит-тестирование GUI
    От: Zenden Россия  
    Дата: 01.10.15 14:17
    Оценка: :)
    Здравствуйте, Mamut, Вы писали:

    M>Лень писать это в соседнюю ветку на 100500 страниц, поэтому понапложу сущности без необходимости


    M>Пара смешных людей рассказывают о том, как все подряд покрывается автоматическими тестами и прочей ерундой, и тесты на GUI пишутся на раз.


    M>И тут у меня как раз возник момент.


    Я считаю что автоматические тесты это лишняя трата времени.
    А как же раньше софт писали? Вообще без никаких тестов. И работало же оно!
    Re: Юнит-тестирование GUI
    От: c-smile Канада http://terrainformatica.com
    Дата: 02.10.15 02:16
    Оценка: +1
    Здравствуйте, Mamut, Вы писали:

    Проблема в том что UI никак не unit. Это финальный результат толпы тех самых units.

    Компоненты могут быть units, да.
    Re[18]: Юнит-тестирование GUI
    От: Mamut Швеция http://dmitriid.com
    Дата: 02.10.15 08:31
    Оценка:
    M>>По ссылке пацанам понадобилось несколько месяцев траха, чтобы смочь сделать "a couple dozen" скриншотов только на одном из доступных движков.
    M>>Удобно, че.

    EP>Ещё раз, это контраргумент твоему опрометчивому высказыванию про область фантастики. Первая попавшаяся ссылка.

    EP>Сколько там им времени понадобилось, какая у них кривизна рук — рояли не играет.

    Ну и зачем тебе мои аргументы, если ты их отметаешь с комментарием «я ничего не знаю, но вот тебе первая попавшаяся ссылка все объясняет!!».

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


    dmitriid.comGitHubLinkedIn
    Re[19]: Юнит-тестирование GUI
    От: Evgeny.Panasyuk Россия  
    Дата: 02.10.15 12:24
    Оценка:
    Здравствуйте, Mamut, Вы писали:

    M>>>По ссылке пацанам понадобилось несколько месяцев траха, чтобы смочь сделать "a couple dozen" скриншотов только на одном из доступных движков.

    M>>>Удобно, че.
    EP>>Ещё раз, это контраргумент твоему опрометчивому высказыванию про область фантастики. Первая попавшаяся ссылка.
    EP>>Сколько там им времени понадобилось, какая у них кривизна рук — рояли не играет.
    M>Ну и зачем тебе мои аргументы, если ты их отметаешь с комментарием «я ничего не знаю, но вот тебе первая попавшаяся ссылка все объясняет!!».

    Забавная трактовка вот этого диалога, видимо сковородка сильно горячая

    EP>>>Автоматический image diff на то и автоматический что он сам соберёт все скриншоты, выявит изменившиеся, сделает diff (попиксельный, либо с подсветкой изменённой области, либо ещё какой подходит по задаче), зашлёт в dashboard и даст кнопочку approve

    M>>Это что-то из области фантастики уже

    EP>В CDash как раз есть такая фича, её использовали например VTK/ParaView, сейчас сходу не могу найти ссылку на public dashboard, видимо куда-то переместили. Вот, пока только видео нашёл (50:23):
    EP>Только там ЕМНИП не скриншоты, а изображения — но не суть, снять скриншоты автоматически вообще не проблема. Ради тестов я сливал с 3rd party программ куда более закрытые данные чем скриншоты
    EP>А вот тут конкретно про сайты, скриншоты, и image diff'ы с них



    M>Все остальное поскипано, потому что аргументы тебя не интересуют.


    Врёшь же Прекрати передёргивать, приведи реальные аргументы. Например "у нас на сайте куча всяких анимаций, контент супер-динамичный, кнопки скачут туда-сюда и видоизменяются, поэтому скриншоты сами по себе не особо уместны".
    Re[20]: Юнит-тестирование GUI
    От: Mamut Швеция http://dmitriid.com
    Дата: 02.10.15 13:54
    Оценка:
    EP>Врёшь же Прекрати передёргивать, приведи реальные аргументы.

    Привел:
    — твои рассказы про тулзы — фантастика. Твое «разжевывание» свелось к блогпосту, в котором для получения 12 скриншотов им пришлось несколько месяцев бороться с тулзами и с веб-браузерами. Причем проблемы проистекают не из их криворукости, как тебе не хотелось бы, а из кривизны тулзов и браузеров.

    — сбор скриншотов на начальном этапе все равно вручную. При этом следующая твоя фраза нереализуема:

    Способ получения изображений желательно должен быть одинаковый — это проще (так как и там и там автоматически) и надёжней (не будет различий возникших от разных методов)


    Потому что нет никакого хорошего, быстрого, надежного единого способа получить скриншоты

    — ты, по твоему признанию не работаешь ни с вебом ни с GUI. Что делает твои фразы типа «Да причём тут WebKit vs. Firefox, бери все доступные веб-движки и делай со всех скриншоты для каждого случая.» особенно смешными:
    -- нет стандартного способа получить скриншоты со всех браузеров (если только не поднимать ферму типа browserstack.com[1] — и то, способ получения скриншотов все равно будет разным)
    -- нет стандартного способа определить, что является "expected image" для всех движков
    -- нет стандартного способа выявить разницу и проблемы рендеринга между движками (например, что один браузер рендерит шрифты немного не так, как другой) и т.п.

    ---
    [1] Так-то да, если отдавать свои данные и прочее на сторону, то кое-какие инструменты есть, типа того же browserstack'а.


    dmitriid.comGitHubLinkedIn
    Re[21]: Юнит-тестирование GUI
    От: Evgeny.Panasyuk Россия  
    Дата: 02.10.15 15:27
    Оценка:
    Здравствуйте, Mamut, Вы писали:

    EP>>Врёшь же Прекрати передёргивать, приведи реальные аргументы.

    M>Привел:
    M>- твои рассказы про тулзы — фантастика.

    Нет, не фантастика, ссылки я привёл — там и dashboard, и image diff, и скриншоты.

    M>Твое «разжевывание» свелось к блогпосту,


    Блогпост вообще не про разжёвывание, я уже несколько раз это подчеркнул, а ты до сих продолжаешь врать. Зачем? Уже надоедает

    M>- сбор скриншотов на начальном этапе все равно вручную.


    Нет, не вручную. На начальном этапе будет ручная настройка софта который снимет скриншоты. При этом вручную снимать их не нужно

    M>При этом следующая твоя фраза нереализуема:

    M>

    M>Способ получения изображений желательно должен быть одинаковый — это проще (так как и там и там автоматически) и надёжней (не будет различий возникших от разных методов)

    M>Потому что нет никакого хорошего, быстрого, надежного единого способа получить скриншоты

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

    M>- ты, по твоему признанию не работаешь ни с вебом ни с GUI. Что делает твои фразы типа «Да причём тут WebKit vs. Firefox, бери все доступные веб-движки и делай со всех скриншоты для каждого случая.» особенно смешными:

    M>-- нет стандартного способа получить скриншоты со всех браузеров

    Например через средства API OS — именно так я делал в упомянутом выше роботе. Этот способ подойдёт для любого браузера

    M>(если только не поднимать ферму типа browserstack.com[1] — и то, способ получения скриншотов все равно будет разным)


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

    M>-- нет стандартного способа определить, что является "expected image" для всех движков


    Тебе уже выше разжевали, что изображения нужно аппрувить

    M>-- нет стандартного способа выявить разницу и проблемы рендеринга между движками (например, что один браузер рендерит шрифты немного не так, как другой) и т.п.


    Если есть разница в редеринге, и она допустима, и её нельзя распознать через с какой-нибудь tolerance, то аппрувить придётся изображения каждого. О чём тебе выше и сказали:

    v6>>>Смотрим вручную, аппрувим три скриншота из трех браузеров как "эталонные", и вперед.
    M>>Что вперед? То есть мы в итоге все равно сделали ручное тестирование
    v6>Получили в довесок к ручном тестированию автоматические регрессионные тесты.
    v6>Это не так уж и мало и гораздо лучше, чем все время проверять руками или прозевать внесенный баг.


    M>---

    M>[1] Так-то да, если отдавать свои данные и прочее на сторону, то кое-какие инструменты есть, типа того же browserstack'а.

    Вот именно — "так-то да", это не фантастика, а ты сел в лужу со своим хамством
    Отредактировано 02.10.2015 15:30 Evgeny.Panasyuk . Предыдущая версия .
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.