@qa_ru

Страница 369 из 1080
D.
07.03.2017
14:28:08
вот в общем и все)

Nikita
07.03.2017
14:32:12
если крако - да, для мака есть maven. Может ошибаюсь но он идет в коробке с jdk

если стоит ждк проверь - mvn -v

D.
07.03.2017
14:33:29
ну я знаю, что у меня стоит мавен

Google
D.
07.03.2017
14:34:38
но я всегда был убежден, что мавен идет отдельно от jdk

Nikita
07.03.2017
14:37:39
я могу ошибаться. Очень очень давно все ставил. И когда потребовался мавен вместо градла - он уже был)

Dmitry
07.03.2017
17:42:32
на винде точно отдельно нужно maven ставить

вроде и на маке так же

Andrey
07.03.2017
19:13:14
Сколько у кого в проектах открытых и не закрытых багов? Так чисто статистики ради интересно. Скажем так, открытых более недели назад. Порядок хотя бы.

Nikita
07.03.2017
19:14:25
открытых неделю назад и незакрытых?)

Andrey
07.03.2017
19:17:19
открытых неделю назад и незакрытых?)
Конечно от цикла зависит.. ищу количество висящих багов за которые не берутся по разным причинам

Alexander
07.03.2017
19:18:09
он тебе версию последнюю ватащит
плохая идея, скажу я вам.

Nikita
07.03.2017
19:19:18
Конечно от цикла зависит.. ищу количество висящих багов за которые не берутся по разным причинам
у меня есть нное количество багов, которые есть уже полгода и не фиксятся

потому что нафиг не надо) проблема пользователя не аффектит, чинить дорого

итерации 2недельные)

штук 15 наберется

D.
07.03.2017
19:24:16
Google
Alexander
07.03.2017
19:25:36
Почему?
если говорим применимо к вебдрайвер 2 то можем получить: 1. новые баги самого вебдрайвера 2. несовместимость с драйвером браузера (т.е. его тоже обновлять придётся) 3. и прочую свистопляску, с которой порой некогда возиться и разбираться

потому если работает стабильно - лучше лишний раз не обновлять.

Shoo
07.03.2017
19:29:15
Ну, вообще динамические депенденси - зло.

D.
07.03.2017
19:30:04
потому если работает стабильно - лучше лишний раз не обновлять.
Так это если уже все есть и работает. А тут речь шла о первичной установке.

Alexander
07.03.2017
19:30:58
Так это если уже все есть и работает. А тут речь шла о первичной установке.
если про первичку - тогда согласен. а на постоянке - уаще не вариант.

D.
07.03.2017
19:31:11
Согласен.

Alexander
07.03.2017
19:32:22
а вот тесткомплит лишён этих недостатков
раз так - так жеж замечательно.

Slow
07.03.2017
19:33:07
ну, вот, последний 12.2 ff51 поддерживает, я просто обновил и то и другое и всё

даже скрипты переделывать не пришлось

Andriano
07.03.2017
19:45:32
Коллеги, я за советом. Как вы контролируете тест покрытие? Есть ли тулзы какие

Shoo
07.03.2017
19:47:31
Нет эффектных тулз. Смотря что надо покрывать и какими тестами. :)

Faust
07.03.2017
19:48:55
Остальное, голая аналитика

Andriano
07.03.2017
19:49:30
Есть тулзы для покрытия кода
Вот тут поподробнее

Shoo
07.03.2017
19:50:04
Andriano
07.03.2017
19:50:23
Так, подробности опустим

Pavel
07.03.2017
19:50:51
Работают как ?
А вот тут поподробнее

Есть тулзы которые норм определяют покрытие юнит-тестов, там 0%, 23%, 100%и т.д. и все это показывают удобно в виде графиков для каждой поддиректории.

Google
Shoo
07.03.2017
19:51:56
Не, я не спорю, что они отлично это показывают.

Я говорю про то, что эта оценка под собой несет.

Pavel
07.03.2017
19:52:42
Счастье и процветание

Shoo
07.03.2017
19:52:49
Все эти тулзы строятся по примерно одному принципу: граф entity внутри приложения и соотношение используемых\неиспользуемых в тестах сущностей.

Это довольно далеко от понимания "покрыто тестами".

И часто к этому не имеет никакого отношения.

Это не говоря уж о том, что багов внутри этих тулз тоже хватает. У нас, например, есть code rule, что пуллреквест не может быть замержен если покрытие тестами падает.

Pavel
07.03.2017
19:53:55
А чтобы имело отношение надо писать методы с нормальной цикломатической сложностью

Andriano
07.03.2017
19:54:12
Ну, по сути, тест покрытие это что то мифическое или можно более менее четко определить, что покрытие кейсами фичи приближено к 100%?

Shoo
07.03.2017
19:54:22
Дело не в цикломатической сложности, а в том, что это банальная проверка ссылок на entity.

А тесты - это прежде всего проверка логики.

Т.е. 100% покрытие тестами - не более, чем красивая ачивка, которая не говорит ничего о том, что код на самом деле нормально тестируется.

Pavel
07.03.2017
19:55:45
Все в этом мире не более чем красивая ачивка, в том числе и нормальное тестирование.

Shoo
07.03.2017
19:56:09
Йеп, но не всё в мире создает иллюзию защищенности и протестированности.

Andriano
07.03.2017
19:56:53
Alexander
07.03.2017
19:56:57
такая философия пошла, хоть в кабак иди и читай это там)

Shoo
07.03.2017
19:57:29
Это не говоря уж о том, что багов внутри этих тулз тоже хватает. У нас, например, есть code rule, что пуллреквест не может быть замержен если покрытие тестами падает.
Так вот, собственно, недавно дебажили почему покрытие тестами упало на пуллреквесте в 1 строчку, с банальным изменением публичности метода. Причем падало оно исключительно при мерже в девелоп, при запуске чека в рамках PR - оставалось на уровне 98.6% При попытке мержа <95%

Pavel
07.03.2017
19:58:10
метод сделали из приватного публичным?

Shoo
07.03.2017
19:58:15
Так, вот иллюзии это не хорошо. Как тогда быть?
Ну, надо понимать, что тестовое покрытие не отражает реального качества и полноты тестов.

Google
Nikita
07.03.2017
19:58:22
Shoo
07.03.2017
19:58:27
метод сделали из приватного публичным?
Наоборот. При этом все тесты прошли, как бэ.

Pavel
07.03.2017
19:58:47
Ну значит этот метод не был покрыт

Shoo
07.03.2017
19:58:56
Был.

Pavel
07.03.2017
19:59:08
Как он тогда вызвался если стал приватным?

Shoo
07.03.2017
19:59:39
В рамках контроллера, например?

Pavel
07.03.2017
20:00:12
Это не покрытие, например. Покрытие это когда тест напрямую дергает только лишь этот метод и проверяет его вывод.

Shoo
07.03.2017
20:00:37
И?

Admin
ERROR: S client not available

Pavel
07.03.2017
20:00:57
Так вот если сделать метод приватным то тест не сможет его вызвать и упадет.

Shoo
07.03.2017
20:01:16
Чем вызов метода в консоли с input -> output отличается от вызова метода в рамках контроллера с теми же условиями, если иной логики не затрагивается?

Code execution один и тот же.

Alexander
07.03.2017
20:02:01
Pavel
07.03.2017
20:02:08
приватный метод невозможно вызвать, вот что

Так что если кому-то там где-то удалось вызвать, значит либо это было внутри этого же класса (что некорректно), либо одна из черепашек не дописала тестов.

Shoo
07.03.2017
20:02:52
Он не может быть вызван извне сущности.

Pavel
07.03.2017
20:03:40
если приватный то да

А когда был публичный - то на него тест должен быть написан

Shoo
07.03.2017
20:04:22
Тест должен быть написан на любой метод, независимо от её изолированности, соряний.

Andriano
07.03.2017
20:04:38
Друзья, прошу вас, не уходите в холивар. Поставлю вопрос так, как правильнее организовывать это самое покрытие? Юниты, функциональное и тп. Как понять, что вот мы написали кейсы и фича готова к релизу (ну при условии успешного прогона кейсов конечно)

Google
Pavel
07.03.2017
20:04:55
Это нарушение контракта класса и запрещается.

Shoo
07.03.2017
20:06:30
Как связан класс контракт с тестами на приватные функции, простите?

Pavel
07.03.2017
20:07:00
Контракт - это набор всех сигнатур публичных функций. Тестировать надо только их вызовы.

А приватные - инкупсулированы внутрь и что там происходит никого не волнует.

Shoo
07.03.2017
20:07:38
Ну, если вас не волнует - круто вам. :)

Pavel
07.03.2017
20:10:45
Так чем закончилось дело об уменьшении покрытия кода? Вангую что из-за какой-то такой нарушеной логики все и случилось.

А почему это при мерже происходило - вообще для меня загадка. Если базовая ветка предварительно намержена на pull request

Pavel
07.03.2017
20:12:25
вот это интересное заявление)
Может ты хотел написать что их нужно тестировать _неявно_ ? ;)

Pavel
07.03.2017
20:13:26
Годный материал для почитать тоже сойдёт
С покрытием в функциональных тестах все сложно. Там очень быстро комбинаторный взрыв и боль.

А вот юниты - там полегче.

Shoo
07.03.2017
20:13:37
Так чем закончилось дело об уменьшении покрытия кода? Вангую что из-за какой-то такой нарушеной логики все и случилось.
Ничем не закончилось, пришлось накидать пару десятков тестов на тот кусок, который ещё не был покрыт (никак не связанный с изменениями), что бы получить обратно 4%.

Andriano
07.03.2017
20:14:26
А вот юниты - там полегче.
По юнит тестированию есть материал какой?

Nikita
07.03.2017
20:15:03
Может ты хотел написать что их нужно тестировать _неявно_ ? ;)
я наверное просто не до конца понимаю, что для вас приватное, а что публичное)

Shoo
07.03.2017
20:15:31
Там же к публичному появляются всякие неявные штуки от наследования, а-ля toString equals и прочая байда
Вероятно, однако учитывая что они нигде не инициализируются это не должно явно влиять на code coverage.

Страница 369 из 1080