|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Всем привет! Давайте представим проект, в котором есть (иерархия, где-то такая): 1) сущности (геттеры, сеттеры, доп методы) -- 2) репозитории -- 3) сервисы 4) утилиты 5) исключения -- 6) контроллеры 7) трансферобжекты -- 8) допишите что ещё может быть. Что из этого принято тестировать? Мне вот думается, что по хорошему стоит уделить внимание только контроллерам (слою), и его всячески терзать на все возможные варианты, ибо именно там можно создать ситуации, которые затронут всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 12:26 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Imperous, Вам надо посмотреть какой нибудь туториал как делается BDD Behavior Driven Development Обычно люди пишут сценарии на каждую фичу используя специалный язык огурцов Cucumber там все простенько типо Код: sql 1. 2. 3. 4. 5. 6. 7.
Вот мой кусок проекта для фермы с ветрянных генератов как выглядит в реальной жизни https://github.com/SVyatkin/ads-bdd/blob/master/src/test/resources/Cucumber/IntegrationTest/customer/WindTurbine_Test.feature За каждым огурцом стоит кусок кода в данном случае на Java. В общем посмотрите если освоите то будет совсем хорошо ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 19:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Sergunka, спасибо, посмотрю. Но не маньячество ли тестить абсолютно все? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 10:28 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ImperousНо не маньячество ли тестить абсолютно все? Если учил в детстве математику, то сам сможешь ответить. Сначала тебе нужно посчитать количество ветвлений в твоей софтине, потом возвести 2 в степень, равную количеству ветвлений, потом смотришь на полученное число и чешешь репу - а смогу ли я проверить триллион вариантов? Если репа не даст ответа, то значит ты не учил математику. Это было "по простому". По сложному гугли по фразе "покрытие тестами" и пытайся въехать, что это такое и как это вычислять. Далее вспоминай математику (это обязательно). Ну и применяй что вспомнил к имеющейся ситуации. Обычно в ситуации имеем очень много вариантов, поэтому ты должен найти способ так сократить это количество, что бы минимизировать размер неохваченного тестами кода. Это называется задача на оптимизацию. Здесь, наверное, если ты в институте не учился, тебе не разобраться. Но даже если учился, тоже очень частый случай, что клиенты не въезжают в тему. В общем - дальнейшее зависит от тебя, от твоего понимания темы, ну и от твоей настойчивости. Если сумеешь найти оптимум - сможешь на пальцах доказать Сергуньке и другим, что есть маньячество и что не есть маньячество. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 11:08 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ImperousSergunka, спасибо, посмотрю. Но не маньячество ли тестить абсолютно все?в крупных фирмах есиь штатная должность тестировщик. Некоторые с нее мечтабт перейти в програмисты). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 11:49 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123в крупных фирмах есиь штатная должность тестировщик. Некоторые с нее мечтабт перейти в програмисты). 1. Ну не только в крупных, а во всех боле менее профессионально занимающихся разработкой. 2. Ну ни должность, а чаще всего отдельный отдел. 3. Разные там люди работают. И бывшие, и будущие, и несправившиеся, и просто девушки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 12:20 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
982183, Да. Поэтому, без приказа я совсем не занимаюсь тестированием. Неинтересно) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 12:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Без обид. Возможно вы просто не умеете это делать... Это отдельный труд, требующий отдельных навыков, умения и опыта. И соответствующего складу ума или характера. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 13:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123982183, Да. Поэтому, без приказа я совсем не занимаюсь тестированием. Неинтересно) я например, на одном проекте частично занимался (занимаюсь) автоматизацией тестирования. пишу кейсы и т.п. да, на постмане и джаваскрипте. но он вполне хорош для целей апитестирования, можно достаточно быстро и клёво писать коллекции и флоу. кроме того я считаю это обязанность программиста как минимум писать тесты внутри своего же кода. юнит, интеграционные. если ты не обкладываешь тестами свой же код - это как минимум странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 13:42 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTесли ты не обкладываешь тестами свой же кода если я без ошибок пишу? )) Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день. Это и есть мои тесты. Если начальство решит что итоги по больнице плохие, то и тесты будем 30 проц.времени писать. Это флейм - кто и сколько тесты пишет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 14:01 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
А с вашим кодом работаете только вы? Или нет дополнительного оборудования или источников данных И запускается он только на одной конфигурации... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 14:10 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ImperousВсем привет! Давайте представим проект, в котором есть (иерархия, где-то такая): 1) сущности (геттеры, сеттеры, доп методы) -- 2) репозитории -- 3) сервисы 4) утилиты 5) исключения -- 6) контроллеры 7) трансферобжекты -- 8) допишите что ещё может быть. Что из этого принято тестировать? Мне вот думается, что по хорошему стоит уделить внимание только контроллерам (слою), и его всячески терзать на все возможные варианты, ибо именно там можно создать ситуации, которые затронут всё. Несколько мыслей. 1) Тестировать геттеры и сущности не надо. 2) Тестировать надо то место в коде, где есть бизнес-логика. Тоесть, к примеру есть контроллер или процессор который что-то делает в режиме черного ящика. Или серого. Тоесть если у него есть некий вход и некий детерминированный выход, то надо покрывать тестами именно это. 3) В идеале у вас количество тестов должно быть равно количеству бизнес-кейсов. Вот просто можно брать user-story из JIRA и буквально обзывать тестовые методы так-же как и были названы все юзер-стори. 4) Конвертеры и функции и трансфер обжекты - сам бог велел тестировать тем более, что у них нет обычно состояния и они идеально тестабельны. 5) Код который плохо тестируется имеет смысл улучшить. Например, если какой-то ДАО содержит код доступа к БД + бизнес-логику лучше разделить на отдельно ДАО и отдельно бизнес-процессор, и протестить процессор как чистую функцию. 6) Старайтесь испльзовать меньше Mockito. Признак идеально тестабельного кода - это как-раз отсутствие необходимости в моках. Обычно сторонники Мокито боятся вносить изменения в основной код в направлении улучшения тестабельности, но при этом тратят сутки и недели времени на тонкую и настройку верификаторов и шпионов которые должны замокать какой-то сложный объект. 7) Периодически запускайте jacoco плагин и смотрите отчот о покрытии. Это будет набор таких html-ек где зеленым цветом покрашен покрытый тестами код и красным цветом код, который еще не протестировать. Красны - это ваша цель. Разумеется без параноидальности. Геттеры и сеттеры не надо а только то что имеет логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 15:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
982183А с вашим кодом работаете только вы? Или нет дополнительного оборудования или источников данных И запускается он только на одной конфигурации... И по ходу одним человеком и только для себя )) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 15:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTесли ты не обкладываешь тестами свой же кода если я без ошибок пишу? )) Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день. Это и есть мои тесты. Если начальство решит что итоги по больнице плохие, то и тесты будем 30 проц.времени писать. Это флейм - кто и сколько тесты пишет. кек, тесты то не только для этого. ну или у тебя приложенька совсем уже простая. всю радость тестов ты познаешь когда что то надо отрефакторить или когда ты пишешь фичу для сервиса (сов) которые чтоб просто в куче поднять у тебя уйдет минут 10-ть. и как ты там что 1500 раз запускать и прогонять вручную собираешься? да у тебя борода быстрее отрастёт до пола чем ты закончишь. а если у тебя флоу какой-нибудь запутанный? а если тебе надо написать так чтоб и остальное не сломать? я канеш понимаю что солид и всякое такое давайте делать системы такие чтоб модифицировать поведение надо было не переписыванием а дописыванием. но фига. тебе надо и добавлять и поправлять и всякое такое и быть уверенным что ты регрессии не накидал. протыкивать всё руками ты можешь себе позволить только на уж очень простых системах. основная задача тестов - это зафиксировать поведение кода. вторая - собссно убедиться что твой код делает то что хочешь ты. ну и третья - ускорить процесс разработки. да, карл. ускорить. кто говорит что 30% времени на тесты это много - ну просто не сталкивался с хоть чуть-чуть сложными системами. в которых тесты как раз экономят время. их пользу можно понять тогда когда они у тебя были, а потом их резко не стало. ну и да, я за рефакторинг кода никогда не возьмусь если он не обложен тестами. - это четвертая прелесть тестов. качественный и достаточно безболезненный рефак. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 18:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123в крупных фирмах есиь штатная должность тестировщик. За более чем сорок лет в разработке работал только в двух тимах где тесты писали вся команда и тесты писались или накрайняк обсуждались до того как начать разработку. В обоих случаях писался софтерный продукт. Первый раз в с 1988 года по 1990 год в знаменитой лаборатории Староса к тому времени Филлип Георгевич был покойным... увы. И последние 5 лет при разработке облачной платформы www.predix.io получается через тридцать лет. За заслуги меня даже на доску почета там воткнули в назидание потомкам На самом деле если Jira написана на Cucumber и acceptance criteria прописаны внятно, то тут даже деваться некуда приходится первым писать тест после чего уже программируешь фичу. Хотя из 18 человек на разработке сервиса так поступало треть разработчиков все остальные по старинке городили огород даже не разобравшись в треобованиях в Jira У нас было два тестеровщика которые только проверяли правильно ли разработчик понял задание и корректно ли отработали тесты. Так же стиль и правила по тестам. Понятно если кто сильно тупил, то учили походу как писать с тестами. Инженер по тестированию в таких командах часто получает выше среднего программиста. Работа довольно нудная и поэтому хорошо оплачиваемая. Фактически здесь в Долине это часть DevOps и не один CI/CD не шевельнется без test coverage servers: SonarCube, Coverity, Jacoco etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 20:27 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ImperousSergunka, спасибо, посмотрю. Но не маньячество ли тестить абсолютно все? На самом деле у Вас должен быть test coverage выше 75% - хорошо 85% и идеально выше 90%. В нормальной конторе ниже 75% у вас продукт не выпустят в релиз т.е. грубо говоря команда останется без премии обычно премия это от 15% до 25% от годового оклада т.е. есть за что побороться. Я как то помнится писал, что программист это практикующий шизофреник. Высокое покрытие тестами это часть нашей маниакальной работы этого не надо стеснятся P.S. К слову сказать у меня была серия разговоров с нашим легал департаментом вплоть до коллективных доносов на меня когда я расрыл участки тестирования продукта в компании. Потом это дело замяли так как вроде я не брал реальный код, а просто написал свои модификации для демо программ... в общем отстали сказали, что пользы больше чем вреда ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 20:35 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTи как ты там что 1500 раз запускать и прогонять вручную собираешься? да у тебя борода быстрее отрастёт до пола чем ты закончишь. а если у тебя флоу какой-нибудь запутанный? а если тебе надо написать так чтоб и остальное не сломать? я канеш понимаю что солидне)) не солид Есть прикладной код и програмист, а есть системный код и программист. Мне нравится прикладной. Например пишем, метод дайМнеСписокДолжников(год). Вот пока его пишу, я 1500 раз запускаю этод метод и смотрю список должников))). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 08:29 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaНа самом деле у Вас должен быть test coverage выше 75% - хорошо 85% и идеально выше 90%.вы не будете отрицать что Методология разработки ПО у разных компаний разная. Я так понимаю, что данные 75% - это компания с XXX разработчиками на проект. Если не изветсен масштаб компании, типы проектов, бюджеты, то и сложно советовать 1 процент или 75. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 08:36 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTи как ты там что 1500 раз запускать и прогонять вручную собираешься? да у тебя борода быстрее отрастёт до пола чем ты закончишь. а если у тебя флоу какой-нибудь запутанный? а если тебе надо написать так чтоб и остальное не сломать? я канеш понимаю что солидне)) не солид Есть прикладной код и програмист, а есть системный код и программист. Мне нравится прикладной. Например пишем, метод дайМнеСписокДолжников(год). Вот пока его пишу, я 1500 раз запускаю этод метод и смотрю список должников))). Ну как ты его 1500 раз запускаешь? Целиком вместе со всем приложением? Или моками обложился? Если первое, ну я рад что ты себе это можешь позволить. Иногда бывает так что у тебя приложение стартует несколько минут (или ещё больше) и вот у тебя 5 минут помноженное на 1500... Ну ты понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 09:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTИногда бывает так что у тебя приложение стартует несколько минутда. Это проблема. Причем единственная кому нужны тесты)) Было бы интересно в эту сторону поговорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 09:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Вообще, если стартует приложение несколько минут, то я бы вообще не программировал))). Это как художник не может отойти от картины на пару шагов. Нонсенс! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 09:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Ничего странного в "нескольких минутах" не вижу. Надо и обновления проверить, и справочники синхронизировать, и в БД проверить ряд вещей. И только потом пускать пользователя до работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:08 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Вообще, если стартует приложение несколько минут, то я бы вообще не программировал))). Это как художник не может отойти от картины на пару шагов. Нонсенс! несколько минут это еще по доброму. может быть и 10 минут и 20. у тебя может быть или типа монолит или просто мешок микросервисов которые требуют лютые гиги чтоб всё кругом запустить енд ту енд. и тут вот ты со своим подходом и сядешь. это просто НЕРЕАЛЬНО при каждой замене пересобирать всю эту халабуду. так же, не всегда тебе на горячую можно пересобрать модуль там или класс. с тестами же ты обложил нужный набор сервисов моками, подсунул им нужный правильный контекст и отлаживаешься на них. как только всё сложилось - запускаешь 1 (единственный) раз всю шарагу целиком, прогоняешь еще раз все тесты, и если ок - выливаешься. если чот поломалось - тесты сразу показывают где и что у тебя поломалось. идешь туда и разбираешься. и еще раз.. вспоминаем какой-нибудь более-менее всеобъемлющий рефакторинг. и без тестов. ты тут пошатаешь - там сломается. и узнаешь об этом ты только на проде. я всё же за то что тесты должны быть и должны писаться самим программистом (я не про тесткейсы для м-ку-а) и мнимая потеря времени по факту оборачивается в профит. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
982183Ничего странного в "нескольких минутах" не вижу. Надо и обновления проверить, и справочники синхронизировать, и в БД проверить ряд вещей. И только потом пускать пользователя до работы.токарь утром на работу приходит. Это у него 10 мин. подготовка раб места. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Я конкретно написал if... else и нажал run в меню. Какие 10 мин? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:39 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTили типа монолитмонолит без модульности SOA сейчас только в сказках где детей пугают. Микросервисы для того и придумали что грузим частями. Итого откуда 10 мин? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:50 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTНЕРЕАЛЬНОприведи реальный пример с работы когда НЕ для интеграционных, а ДЛЯ модульных unit тестов нужно писать вслепую так как запуск 10 мин. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaT, Я конкретно написал if... else и нажал run в меню. Какие 10 мин? а... ты еще и через ран :) прикинь ты нажал ран и у тебя это барахло поднимается ну пусть даже 1-2 минуты. и ты вот 1500 раз делаешь по 2 минуты? а? а когда поднимается тебе надо совершить какой-то многоступенчатый акт надругательства над твоим бэком чтоб прогнать флоу? а? и ты вот это всё сам ручками делаешь 1500 раз. ага. ну.. кому как удобно. мне например, не удобно. я обкладываю код тестами, когда он готов я жму ран и смотрю если всё зелененькое - то го ту некст челленж. ничего не прокликиваю ничего не проигрываю. просто одной кнопкой я делаю ВСЁ. ну почти. вот щас сижу на скалапроекте который писал не я. а чел который так же тесты презирает. я ему а где тесты? а он да че я всегда проекты с нуля поднимал нет времени. я ну и ты типа вот это всё вот прокликиваешь? он да че у меня есть курлы готовые я их по очереди и дергаю. я оу ну окей.. и первым делом обложил всё апи кейсами на хотя бы постмане. там тоже кликать дофига. но там хотя б можно кнопку нажать и проверить всё и сразу. чуть позже я обложу всё и юнитами и интеграшками. мне просто так удобнее. и я считаю что писать код от тестов - это правильно. а чела спасло то что это скала плей сбт и оно тупо на лету всё пересобирает прям как на пыхе и джаваскрипте пишешь. и даже если тебе надо целиком переподнять всё - оно переподнимается секунд за 30. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:56 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTили типа монолитмонолит без модульности SOA сейчас только в сказках где детей пугают. Микросервисы для того и придумали что грузим частями. Итого откуда 10 мин? вот у тебя инфраструктура где с десяток микросервисов - ты их реально все поднятыми держишь? или запускаешь один и ему-что то там скармливаешь моками? (я надеюсь хоть так). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 10:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Вот микросервисы уже имя ругательное в сети. Расскажи про них. Если ты пишешь микросервис А, остальные у тебя не запущены? А как у заказчика? Райзе? Фатальная ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 11:06 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Код: java 1. 2.
Что тестами покрывать, если это все не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 11:09 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Сегодня ты должен потратить на тесты 2 часа. Дай пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 11:10 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Микросервисы лучше в топике не упоминать. Там в методах не более 3-5 строк должно быть. Что тестировать? И их придумали не для проблем в разработка. Пока видны только проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 11:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaT, Сегодня ты должен потратить на тесты 2 часа. Дай пример. я написал новый функционал в приложении, он состоит из 3х дтошек, одного сервисного класса, пары утилок и репозитория. я буду писать тесты которые тестируют сервисный класс, все его методы это как минимум. я буду писать тесты которые тестируют все методы репозитория. в идеале это будет набор юнит тестов с моками всего и вся работающих в рамках одного класса. а потом интеграционные тесты которые ограничено поднимут контекст - для репозитория это будет тестовая база, где я буду с разными выгрузками данных баловаться. для сервиса это будет мок репозитория. для контроллера я так же замокаю сервис и буду тестировать чисто апи где буду смотреть что приходит в джейсоне. а потом напишу интеграционный тест который будет выверять всю цепочку от контроллера до тестовой базы и обратно. вот этим я займусь следующие два часа. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 12:48 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
...причем, я могу СНАЧАЛА написать тесты, а потом уже написать код который будет под эти тесты подпадать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 12:56 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTPetro123andreykaT, Сегодня ты должен потратить на тесты 2 часа. Дай пример. я написал новый функционал в приложении, он состоит из 3х дтошек, одного сервисного класса, пары утилок и репозитория. я буду писать тесты которые тестируют сервисный класс, все его методы это как минимум. я буду писать тесты которые тестируют все методы репозитория. в идеале это будет набор юнит тестов с моками всего и вся работающих в рамках одного класса. а потом интеграционные тесты которые ограничено поднимут контекст - для репозитория это будет тестовая база, где я буду с разными выгрузками данных баловаться. для сервиса это будет мок репозитория. для контроллера я так же замокаю сервис и буду тестировать чисто апи где буду смотреть что приходит в джейсоне. а потом напишу интеграционный тест который будет выверять всю цепочку от контроллера до тестовой базы и обратно. вот этим я займусь следующие два часа. а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы. зато куча юнит-тестов... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:05 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Ту кучу что ты описал ты будешь делать неделю. А функционал ты описал на день работы. ... И как ты будешь писать, если у тебя в меню run выполняется 10 мин.? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Ты на работе? Ну и описал бы рабочий день. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Мы в топике обо всех тестах или как? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Выше я уже писал, что тесты это флейм Кто пишет юнит тесты? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaT, Ту кучу что ты описал ты будешь делать неделю. А функционал ты описал на день работы. ... И как ты будешь писать, если у тебя в меню run выполняется 10 мин.? очень просто - буду писать на тестах. тесты в основном, стартуют на порядок быстрее, а юнит тесты так вообще моментально. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 13:52 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
love_bachandreykaTпропущено... я написал новый функционал в приложении, он состоит из 3х дтошек, одного сервисного класса, пары утилок и репозитория. я буду писать тесты которые тестируют сервисный класс, все его методы это как минимум. я буду писать тесты которые тестируют все методы репозитория. в идеале это будет набор юнит тестов с моками всего и вся работающих в рамках одного класса. а потом интеграционные тесты которые ограничено поднимут контекст - для репозитория это будет тестовая база, где я буду с разными выгрузками данных баловаться. для сервиса это будет мок репозитория. для контроллера я так же замокаю сервис и буду тестировать чисто апи где буду смотреть что приходит в джейсоне. а потом напишу интеграционный тест который будет выверять всю цепочку от контроллера до тестовой базы и обратно. вот этим я займусь следующие два часа. а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы. зато куча юнит-тестов... конечно упадет. оно обязано упасть. если оно не упадет ты что то неправильно сделала. да. упадет. а ты откроешь и все тесты поправишь. а может оно вообще упадет там где не должно падать? и ты это сразу узнаешь почешешь репу и пофиксишь. это кстати отличный пример тестов и того зачем они нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:01 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Микросервисы лучше в топике не упоминать. Там в методах не более 3-5 строк должно быть. Что тестировать? И их придумали не для проблем в разработка. Пока видны только проблемы. Со стороны диалектики или терминологии. Принято считать что микросервисы возвращяют ресурсы. В этом (на минуточку) есть сильное отличие от веб-сервисов где действительно инкапсулируется логика. Следуя ресурсной диалектике, тестирование "правильного" микросервиса - безсмысленно по своей сути. Что тестировать? Коллекции? Репозитарии? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:03 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTPetro123andreykaT, Ту кучу что ты описал ты будешь делать неделю. А функционал ты описал на день работы. ... И как ты будешь писать, если у тебя в меню run выполняется 10 мин.? очень просто - буду писать на тестах. тесты в основном, стартуют на порядок быстрее, а юнит тесты так вообще моментально.я же сказал. Работа больше в три раза. 2. Покажи что значит писать на тестах. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:12 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, Да. И я том же)). Зря тут всплыло про микросервисы. Кто ляпнул - пусть и покажет их живьём. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonPetro123Микросервисы лучше в топике не упоминать. Там в методах не более 3-5 строк должно быть. Что тестировать? И их придумали не для проблем в разработка. Пока видны только проблемы. Со стороны диалектики или терминологии. Принято считать что микросервисы возвращяют ресурсы. В этом (на минуточку) есть сильное отличие от веб-сервисов где действительно инкапсулируется логика. Следуя ресурсной диалектике, тестирование "правильного" микросервиса - безсмысленно по своей сути. Что тестировать? Коллекции? Репозитарии? нет. С каких пор это и кем принято, что микросервисы отдают статику из баз или откуда-то еще без обработки? Суровое заявлениЕ, оторвание от реальности. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:26 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверин, Ну, они же не толстые. Как REST. В этом их суть. Оффф. Все таки скатились к их обсуждению. Спецы по ним, дайте хоть примеры то)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:29 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Озверин, Ну, они же не толстые. Как REST. В этом их суть. Оффф. Все таки скатились к их обсуждению. Спецы по ним, дайте хоть примеры то)))) что значит толстые ? Считается, что микросервис выполняет какую либо выделенную бизнес функцию или бизнес сценарий. Тестирование ничем не отличается(а чаще - проще) от обычной программы. Проблемы возникают только с интеграцинным тестированием, версионностью. Ну это уже костыли. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:35 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Я полностью согласен что обсуждение микросервисов здесь - offtop. Давайте кто-то поднимет это обсуждение отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:38 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
В свое время вдохновлялся что, как часто и зачем тестировать - этой статьей https://martinfowler.com/bliki/TestPyramid.html Ну и хабром отсюда - https://habr.com/ru/post/169381/ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:41 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинчто значит толстыезначит микро функции)))) количество строк 3-5. Не больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:44 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTlove_bachпропущено... а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы. зато куча юнит-тестов... конечно упадет. оно обязано упасть. если оно не упадет ты что то неправильно сделала. да. упадет. а ты откроешь и все тесты поправишь. а может оно вообще упадет там где не должно падать? и ты это сразу узнаешь почешешь репу и пофиксишь. это кстати отличный пример тестов и того зачем они нужны. это отличный пример оверхеда и как делать не надо для той задачи, которую ты привел ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:46 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Озверинчто значит толстыезначит микро функции)))) количество строк 3-5. Не больше. нет никаких микрофункций. Кол-во строк на метод или класс определяется принципами типа solid, kiss и так далее. Причем тут микросервисы? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 14:54 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озвериннет никаких микрофункций.и микросервисов нет.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 15:10 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинPetro123пропущено... значит микро функции)))) количество строк 3-5. Не больше. нет никаких микрофункций. Кол-во строк на метод или класс определяется принципами типа solid, kiss и так далее. Причем тут микросервисы? Он имеет в виду рекомендацию толи Фаулера толи Боба - делать функции маленькими и делать их как можно меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 15:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинPetro123пропущено... значит микро функции)))) количество строк 3-5. Не больше. нет никаких микрофункций. Кол-во строк на метод или класс определяется принципами типа solid, kiss и так далее. Причем тут микросервисы? Я - "малолитражка это маленькая машина"... Ты - "нет таких маленькихмашин. Размер определяется ТЗ, дизайном, ценой,... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 15:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, Вот у микросервисов это основа. И чтобы все помнили и не путали с обычным сервисом в имя добавили. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 15:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
love_bachandreykaTпропущено... конечно упадет. оно обязано упасть. если оно не упадет ты что то неправильно сделала. да. упадет. а ты откроешь и все тесты поправишь. а может оно вообще упадет там где не должно падать? и ты это сразу узнаешь почешешь репу и пофиксишь. это кстати отличный пример тестов и того зачем они нужны. это отличный пример оверхеда и как делать не надо для той задачи, которую ты привел обоснуй ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 16:36 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123mayton, Вот у микросервисов это основа. И чтобы все помнили и не путали с обычным сервисом в имя добавили. хватит про 3-5 строк кода микросервиса и основу) Пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 16:39 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинPetro123mayton, Вот у микросервисов это основа. И чтобы все помнили и не путали с обычным сервисом в имя добавили. хватит про 3-5 строк кода микросервиса и основу) Пожалуйста. 3-5 строк это канеш огонь. может он имел ввиду 3-5 строк на метод. это хорошая практика. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 16:40 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинВ свое время вдохновлялся что, как часто и зачем тестировать - этой статьей https://martinfowler.com/bliki/TestPyramid.html Ну и хабром отсюда - https://habr.com/ru/post/169381/ первая статья прям царь-статья. я тоже ею вдохновлялся. )) ну почти. у меня чуть иная пропорция между юнит и сервис. но в целом похоже ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 16:54 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверин, Я тут год наблюдаю мантры про микросервисы которые никто не видел). Не я начал). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 16:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTобоснуйэто ты расскажи как писать код без рабочих сервисов, контейнеров и с запуском 10 мин в ide. А должно 15-30 сек. И тестирование не понадобится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTобоснуйэто ты расскажи как писать код без рабочих сервисов, контейнеров и с запуском 10 мин в ide. А должно 15-30 сек. И тестирование не понадобится. даже 15-30 сек - тестирование понадобится. или ты пишешь приложение "телефонная книга". впрочем, не вижу смысла переубеждать тебя. я так понял, это твоя принципиальная позиция. честно сочувствую тем к кому попадет код после тебя и кто будет вынужден его поддерживать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:09 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Озверин, Я тут год наблюдаю мантры про микросервисы которые никто не видел). Не я начал). Озверин вполне достойное определение мс озвучил. ты же толком даже не сказал что ты вкладываешь в это понятие. ну кроме того что это что то где 3-5 строчек. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Подобно j2ee и микросервысы требуют определения. Рискну предположить что на сайте https://microservices.io/ описано вполне себе приличное описание свойств этого явления. https://microservices.io/ What are microservices? Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are Highly maintainable and testable Loosely coupled Independently deployable Organized around business capabilities. The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack. Кто согласен с таким определением? И у кого есть что добавить? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день. Это и есть мои тесты. В конторах типа гос.больниц плевать на юзверей, поэтому там можно. Но если ставится цель не уронить сайт конторы после обновления, то "1500 раз за день" как раз обязательно приведёт к падению и потере миллионов баксов из-за простоя (ну если контора большая, понятно). Вопрос в цене ошибки. Если цена никакая, как в гос.конторах, где на всех тупо плюют, тогда можно "1500 раз за день", а если цена побольше - приходится тесты писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:41 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Микросервисы это buzzword. Поиск дай в гугле. Тоже определение). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:42 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
на мой взгляд тут недостаточно информации о том как они должны взаимодействовать между собой. может они в одном контексте одной жвм запускаются, может они друг с другом через рпк общаются ну или еще 3 оставшихся шаблона. может еще как. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonКто согласен с таким определением? И у кого есть что добавить? Я бы сказал, что это не последнее модное веяние. Так что пусть себе будет таким. Суть ведь в нахождении пользы от всех этих слов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555Petro123Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день. Это и есть мои тесты. В конторах типа гос.больниц плевать на юзверей, поэтому там можно. Но если ставится цель не уронить сайт конторы после обновления, то "1500 раз за день" как раз обязательно приведёт к падению и потере миллионов баксов из-за простоя (ну если контора большая, понятно). Вопрос в цене ошибки. Если цена никакая, как в гос.конторах, где на всех тупо плюют, тогда можно "1500 раз за день", а если цена побольше - приходится тесты писать. ...причем не только детские юнит и интеграционные но и енд ту енд и юай (если он есть) и всякие там нагрузочные. и и и и и и и. и никуда от этого не уйти в более или менее системе с высоким функционалом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555, Согласен сабж привязать к параметрам проекта, количеству прогеров и... Чтобы не покрывать все подряд тестами для тестов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonКто согласен с таким определением? И у кого есть что добавить?их никто не писал кроме 1-2 мемберов тут за прошедших 3 года. Все пишут обычные сервисы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:50 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTсочувствую тем к кому попадет код после тебяBlazkowicz тоже afaik был не большой любитель покрытия тестами) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 17:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTпричем не только детские юнит и интеграционные но и енд ту енд и юай (если он есть) и всякие там нагрузочные. и и и и и и и. и никуда от этого не уйти в более или менее системе с высоким функционалом.как можно писать микросервисы, если у тебя докеров, контейнеров, виртуалок нет и проект стартует 10мин? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:02 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123maytonКто согласен с таким определением? И у кого есть что добавить?их никто не писал кроме 1-2 мемберов тут за прошедших 3 года. Все пишут обычные сервисы. Отлично. Уже есть консенсус. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, Да. Главное не афишировать имен))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Blazkowicz тоже afaik был не большой любитель покрытия тестами) никто не любитель - тесты писать скучно. просто между позициями "фапать на процент покрытия" и "не тестировать вовсе" есть промежуточные варианты ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTпричем не только детские юнит и интеграционные но и енд ту енд и юай (если он есть) и всякие там нагрузочные. и и и и и и и. и никуда от этого не уйти в более или менее системе с высоким функционалом.как можно писать микросервисы, если у тебя докеров, контейнеров, виртуалок нет и проект стартует 10мин? интересно, если у тебя мешок докеров контейнеров и прочего барахла с виртуалками, чо у тебя это всё тоже 15 секунд стартует? не ну клевый комп у тебя. завидую. или проект- записная книжка. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTсочувствую тем к кому попадет код после тебяBlazkowicz тоже afaik был не большой любитель покрытия тестами) почитай книжку тдд. ну так просто о том КАК люди пишут и КАК можно писать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123mayton, Да. Главное не афишировать имен))) Майтон дал определение. оно весьма размытое. то что ты под ним подразумеваешь что то своё и высокопарно и с предыханием вещаешь типа "только единицы поняли (дзен) что такое микросервисы". ну ну. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
chpashaPetro123Blazkowicz тоже afaik был не большой любитель покрытия тестами) никто не любитель - тесты писать скучно. просто между позициями "фапать на процент покрытия" и "не тестировать вовсе" есть промежуточные варианты именно. есть граждане которые геттеры и сеттеры обкладывают тестами. это как бы такая же крайность как и у тех кто их не пишет вовсе. я вот вправду, когда был маленький и юный тоже не понимал ну зачем же эти тесты нужны я же 1500 раз запускаю приложение 1500 раз всё прокликиваю по одному и тому же сценарию у меня всё хорошо. тесты придумали дураки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 18:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Ну не я же ляпнул что тесты нужны так как невозможно писать код. 10 минут стартует. Говори конкретнее. Я в соседней теме про дайМнеСписокКниг очень конкретно показал что знал.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 19:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTпочитай книжку тдд. ну так просто о том КАК люди пишут и КАК можно писать Зачем книжку? Sergunka показал пример. Хороший пример. Blazkowicz профи несомненный и я ему верю. Ты ничего не показал как ты тестируешь. И кстати, я выше говорил, что тема флейм и золотой пули тут нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 19:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTмешок докеров контейнеров и прочего барахла с виртуалками, чо у тебя это всё тоже 15 секунд стартует?дык оно утром стартует с компом и до вечера не выключается. У тебя как? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 19:21 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
chpashaPetro123Blazkowicz тоже afaik был не большой любитель покрытия тестами) никто не любитель - тесты писать скучно. просто между позициями "фапать на процент покрытия" и "не тестировать вовсе" есть промежуточные варианты да! Я тоже не максималист и люблю промежуточные))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 19:22 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123дайМнеСписокКнигя тебе на это написал вариант работы, вот скажи что там проверять/тестировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 20:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTlove_bachпропущено... а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы. зато куча юнит-тестов... конечно упадет. оно обязано упасть. если оно не упадет ты что то неправильно сделала. да. упадет. а ты откроешь и все тесты поправишь. а может оно вообще упадет там где не должно падать? и ты это сразу узнаешь почешешь репу и пофиксишь. это кстати отличный пример тестов и того зачем они нужны. вот я и привел пример, так сказать на стыках. поэтому смысл тратить время на тучу юнит-тестов, если основные проблемы выявляются основными интеграционными, коих стопитсот писать не надо? если есть сложный алгоритм, с кучей ветвлений, то тестить его основные и граничные сценарии. а тестировать репо и всякие маппинги - это когда больше нечем заняться ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2019, 20:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
вадя, В твоем варианте процедурном тестов нет. Они в ООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 06:56 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123вадя, В твоем варианте процедурном тестов нет. Они в ООП. т.е. создаем себе проблемы, чтоб потом их решеть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 07:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
вадяPetro123вадя, В твоем варианте процедурном тестов нет. Они в ООП. т.е. создаем себе проблемы, чтоб потом их решеть?если ООП для тебя проблемы то ты безработный. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 07:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123если ООП для тебя проблемы то ты безработный.для меня нет такой проблемы, просто когда можно сделать проще - я выбираю простой вариант, а городить что-то чтоб потом решать ещё и проблему созданную этим нагороженным - это из разряда мозахизма. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 08:03 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
вадя, Как только ты скажешь, что ООП или коллекции это прогладка и Г., я сразу говорю что это аргумент безработного и двоечника. А не здорового и богатого). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 10:11 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Как только ты скажешь, что ООП или коллекции это прогладка и Г.,я такого не говорил и не скажу. просто не надо городить это ООП везде, где надо и не надо, особенно там , где без него можно намного проще обойтись. я на твоём вопросе про библиотеку это показал. функциональное, процедурное программирование - пофиг, как оно называется, но когда данные из базы заносят в объекты, а потом из этх объектов вставляют ещё куда - когда можно сразу из результсета вставит в нужное место - зачем лишнее звено из объекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 10:33 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
вадя, Я не собираюсь доказывать и обсуждать ценность ООП. Это клиника. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 10:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Я не собираюсь доказывать и обсуждать ценность ООП.продолжай совать везде... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 10:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
вадяPetro123Я не собираюсь доказывать и обсуждать ценность ООП.продолжай совать везде...совет безработного? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 11:00 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123совет безработного?что ты переходишь на личности , не владея информацией? других аргументов нет? в том же варианте с библиотекой - где твои варианты по привязыванию твоего ООП? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 11:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
вадядругих аргументов нет?как передать список в метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 11:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123как передать список в метод?оправдать нафига этот метод. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 11:29 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
вадяPetro123как передать список в метод?оправдать нафига этот метод.))))) LOL И ты еще обижаешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 11:36 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123))))) LOL И ты еще обижаешься.всё понятно - оправдания нет.... и сказать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 11:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
везде, где я я работал, тестеры тестировали бизнес процессы, т.е. вводят данные и нажимают кнопочки им нах не надо уметь писать скрипты для тестирования сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем и вообще, логирование важней тестирования, один хрен, тесты не гарантируют отсутствие багов, а логи как минимум прояснят ситуацию ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 13:05 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинак, Ну дак уже было выше. Если цена ошибки высока, тогда тестирование. Иначе логирование типа "упс... Приехали...". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 13:08 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинаквезде, где я я работал, тестеры тестировали бизнес процессы, т.е. вводят данные и нажимают кнопочки им нах не надо уметь писать скрипты для тестирования сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем и вообще, логирование важней тестирования, один хрен, тесты не гарантируют отсутствие багов, а логи как минимум прояснят ситуацию будет у тебя лететь 3 гига логов в день. ага. афигеть.. тесты пишут те кому заняться нечем. ты чтоль пм из пенсионного фонда? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 13:39 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинаквезде, где я я работал, тестеры тестировали бизнес процессы, т.е. вводят данные и нажимают кнопочки им нах не надо уметь писать скрипты для тестирования сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем и вообще, логирование важней тестирования, один хрен, тесты не гарантируют отсутствие багов, а логи как минимум прояснят ситуацию Ну ты даёшь чувак! Ты вынырнул из 90х? Щас уже так не тестят. Современные конторы (я имею в виду от 1000 чел и выше) берут тестеров-автоматизаторов. Мануальщики щас уже не в почете. Слава богу тулзы для UI тестирования уже написаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 14:22 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonСовременные конторы (я имею в виду от 1000 чел и выше) Незабудь, что наши мемберы тут, в ветке java, не из этих контор). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 14:26 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
(разводя руками) Что мне остаётся сказать? Техническая отсталось - это про айтишников. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 14:34 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonказинаквезде, где я я работал, тестеры тестировали бизнес процессы, т.е. вводят данные и нажимают кнопочки им нах не надо уметь писать скрипты для тестирования сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем и вообще, логирование важней тестирования, один хрен, тесты не гарантируют отсутствие багов, а логи как минимум прояснят ситуацию Ну ты даёшь чувак! Ты вынырнул из 90х? Щас уже так не тестят. Современные конторы (я имею в виду от 1000 чел и выше) берут тестеров-автоматизаторов. Мануальщики щас уже не в почете. Слава богу тулзы для UI тестирования уже написаны. у тебя каша в голове ручное функциональное тестирование никуда не делось и не денется, для того чтобы проверить, что, к примеру новый тариф нормально применяется, нужно не только транзакцию провести, но и посмотреть как она по счетам прошла, и как это отобразилось на формах приложения, это не просто тестер, это бизнес аналитег, или бизнес юзер то что ты называешь ui тестами - это по сути интеграционный тест, который покажет, работает ли вообще приложение, с точки зрения пользователя а писать скрипты для тестирования отдельных методов - маразм ну кому делать нефиг, пусть пишут зы про нагрузочное не говорим, хотя оно также и делается, record and replay действий в браузере ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 15:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Рад что мир настолько разнообразен. Давай закончим на этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 15:27 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonРад что мир настолько разнообразен. Давай закончим на этом.да ладно чувак, я только разогнался и настроился на срач по моему опыту, юнит тестинг годится для ооп, а ооп очень годится для библиотек компонентов, во времена дельфи, а потом дотнета, помню как много было разнообразных компонентов и как удобно ими было пользоваться имхо, для библиотек, юнит тестинг уместен но епть, везде нужно бизнес задачи решать, а не библиотеки для программистов писать все сводится к обычным crud, нужно просто получить данные с формы, валидировать, выполнить бизнес логику и положить в бд вокруг этого наворачивают, согласно догмам фаулера, кучу лэйеров, и тестить эти километры оберток, по отдельности, просто нет смысла, ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 17:30 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
соглашусь. смысла в юниттестах не особо много в таких приложениях. интеграционные больше уместны. потому вот в той пирмидке которую все знают я бы честно поменял их позиции мместами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 17:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTсмысла в юниттестах не особо много в такихты тоже развернулся на 180 гр.?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 19:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакно епть, везде нужно бизнес задачи решать, а не библиотеки для программистов писатьпросто веб подмял десктоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 19:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonРад что мир настолько разнообразен. Давай закончим на этом.да ладно чувак, я только разогнался и настроился на срач по моему опыту, юнит тестинг годится для ооп, а ооп очень годится для библиотек компонентов, во времена дельфи, а потом дотнета, помню как много было разнообразных компонентов и как удобно ими было пользоваться имхо, для библиотек, юнит тестинг уместен но епть, везде нужно бизнес задачи решать, а не библиотеки для программистов писать все сводится к обычным crud, нужно просто получить данные с формы, валидировать, выполнить бизнес логику и положить в бд вокруг этого наворачивают, согласно догмам фаулера, кучу лэйеров, и тестить эти километры оберток, по отдельности, просто нет смысла, Последние 5 приложений что мы создавали вообще не имели пользовательского UI. И уверяю вас это были самые что ни на есть бизнес-задачи. Но мой вопрос по прежнему звучит. Что вы будете тестировать REST-сервисе ? Желательно на примерах. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 19:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTсмысла в юниттестах не особо много в такихты тоже развернулся на 180 гр.?)) нет. я и раньше говорил что в той пирамиде всё верно но вот пропорции юнит и сервис тесто я бы чуть поменял. если у тебя в сервисе взять данные из базы, отрендерить дто в зависимости от А Б В которые тоже берутся откуда то - то там интеграционные тесты с ограниченным контекстом и частью замоканных бинов самое то. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2019, 20:47 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЧто вы будете тестировать REST-сервисе ? только сам сервис повторюсь: тестируем бизнес задачу, а не все методы, которые он внутри вызывает, по отдельности ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 05:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTPetro123пропущено... ты тоже развернулся на 180 гр.?)) нет. я и раньше говорил что в той пирамиде всё верно но вот пропорции юнит и сервис тесто я бы чуть поменял. если у тебя в сервисе взять данные из базы, отрендерить дто в зависимости от А Б В которые тоже берутся откуда то - то там интеграционные тесты с ограниченным контекстом и частью замоканных бинов самое то. Вот ты 5 страниц боролся за тесты и писал что без них невозможно работать. Однако оказалось что это не юнит тесты. И не раскрыл слово отрендерить дто. Чем выше уровень тестов, тем меньше это дело программиста. Дак пример покажешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 07:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинактестируем бизнес задачу,Имя, сестра, имя!)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 07:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123казинактестируем бизнес задачу,Имя, сестра, имя!)) например, банковский сервис перевода денег с карты на карту как его тестировать? либо форму слепить, либо скриптик наваять, писать тесты для проверки методов классов person,account,transaction и т.д. можно, но нафига? это ж двойная работа эдак времени на перекуры и на чаепития совсем не останется ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 08:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинаккак его тестировать? либо форму слепить, либо скриптик наваять,ну и я также. Тут говорят, запуск у ниж 10мин.идет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 08:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTпропущено... нет. я и раньше говорил что в той пирамиде всё верно но вот пропорции юнит и сервис тесто я бы чуть поменял. если у тебя в сервисе взять данные из базы, отрендерить дто в зависимости от А Б В которые тоже берутся откуда то - то там интеграционные тесты с ограниченным контекстом и частью замоканных бинов самое то. Вот ты 5 страниц боролся за тесты и писал что без них невозможно работать. Однако оказалось что это не юнит тесты. И не раскрыл слово отрендерить дто. Чем выше уровень тестов, тем меньше это дело программиста. Дак пример покажешь? я не пойму что тебе показать портянку кода и портянку теста? еще раз. юнит тест - это когда ты тестируешь (формально) функционал одного метода и только его и всё остальное там замокано. интеграционный тест - это когда ты тестируешь взаимодействие нескольих слоев \ сервисов между собой. я сказал что в юнит тестах иногда действительно смысла мало потому что надо тестировать именно взаимодействие,а не присваивание данных через геттеры сеттеры. еще они полезны при отлаживании каких-нибудь утилитарных вещей. остальное интеграционные. и то и другое и должен и будет писать программист. потому что только ОН знает что и как должно получиться и что и как должно работать. это его компетенция. у остальных ее тупо может не хватить всякие аввтоматизации с тестами типа юай тесты апи тесты покрывающие флоу и т.д. и т.п. - разумеется это должен делать специально обученный человек. МКуА - аналогично. но выше описанные два - программист. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 10:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123казинаккак его тестировать? либо форму слепить, либо скриптик наваять,ну и я также. Тут говорят, запуск у ниж 10мин.идет. бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 10:33 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTPetro123пропущено... ну и я также. Тут говорят, запуск у ниж 10мин.идет. бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится. Вот почему я тебя не понимаю, так это потому что ты не про себя пишешь. Я в студии андроида писал код. Запуск 20 сек при хорошей оперативке и ssd диске. Да. Требователен до этого дела и будет тормозить без этого. И когда я сказал что 1500 раз делаю run когда пишу, ты упирал что это НЕВОЗМОЖНО. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 10:49 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTно выше описанные два - программист.все кроме тебя показали хотя бы один (с DSL) Ты топил за покрытие кода тестами. Если покрытие 80 проц, то пару часов в день ты их пишешь. Я не пишу, поэтому и просил от тебя пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 10:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTPetro123пропущено... ну и я также. Тут говорят, запуск у ниж 10мин.идет. бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится. Я несколько раз обращал свой взор в Андроид. Не для денег. А так. Для себя. Написать пару приложений. Типа там.. нажал на кнопочку - и включил полив воды на даче. По сабжу. На чем там пишут native? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:00 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTпропущено... бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится. Вот почему я тебя не понимаю, так это потому что ты не про себя пишешь. Я в студии андроида писал код. Запуск 20 сек при хорошей оперативке и ssd диске. Да. Требователен до этого дела и будет тормозить без этого. И когда я сказал что 1500 раз делаю run когда пишу, ты упирал что это НЕВОЗМОЖНО. я пишу про себя. 8-10 минут это монолит на спринге с которым мне приходилось работать почти два года. если у тебя приложение стартует 10 секунд ну я за тебя рад. я вот уже давно на пет-проектах не сижу к сожалению, а было бы весело получать бабло за ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:09 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonПо сабжу. На чем там пишут native?студия гугла и java. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTя пишу про себя. 8-10 минут это монолит на спрингену дак подробнее на абзац можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123maytonПо сабжу. На чем там пишут native?студия гугла и java. Студия генерит native? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonСтудия генерит native?ты по русски говори. Java в ведре это родной ЯП. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 11:59 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, Пару лет назад Kotlin там не котировался и использовался 0.5 проц. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 12:03 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123maytonСтудия генерит native?ты по русски говори. Java в ведре это родной ЯП. Ты точно уверен? А почему существует NDK? И почему виртуальные машинки Dalvik/ART выделены в отдельный класс в стеке? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 12:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакбанковский сервис перевода денег с карты на карту как его тестировать? либо форму слепить, либо скриптик наваять, писать тесты для проверки методов классов person,account,transaction и т.д. можно, но нафига? это ж двойная работа эдак времени на перекуры и на чаепития совсем не останется Перекуры, конечно, святое, но! Ты уверен, что все возможные кейсы по переводу денег сумел нарисовать? А если в каком-то не нарисованном дёргается дополнительный, таки не протестированный метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:12 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonPetro123пропущено... ты по русски говори. Java в ведре это родной ЯП. Ты точно уверен? А почему существует NDK? На сях пишут натив. IDE какая нравится. Можно в эклипсине. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonТы точно уверен?ты вопрос задай развернуто и по русски. Натив от контекста зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonPetro123пропущено... ты по русски говори. Java в ведре это родной ЯП. Ты точно уверен? А почему существует NDK? И почему виртуальные машинки Dalvik/ART выделены в отдельный класс в стеке? Я говорил о ЯП на котором пишется подавляющее количество ПО. Это обозначает родной ЯП). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:24 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123andreykaTно выше описанные два - программист.все кроме тебя показали хотя бы один (с DSL) Ты топил за покрытие кода тестами. Если покрытие 80 проц, то пару часов в день ты их пишешь. Я не пишу, поэтому и просил от тебя пример. ты тоже показал? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTты тоже показал?в теме трехзвенки да. А тут я тестирую запуская 1500 раз при написании кода. По кругу идем? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:35 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555казинакбанковский сервис перевода денег с карты на карту как его тестировать? либо форму слепить, либо скриптик наваять, писать тесты для проверки методов классов person,account,transaction и т.д. можно, но нафига? это ж двойная работа эдак времени на перекуры и на чаепития совсем не останется Перекуры, конечно, святое, но! Ты уверен, что все возможные кейсы по переводу денег сумел нарисовать? А если в каком-то не нарисованном дёргается дополнительный, таки не протестированный метод? по нормальному: сначала будет пожелание заказчика, потом, в каком то виде, бизнес аналитик слепит спеку программерам ну а потом тестеры проверят, согласно спеке а откуда взялся "дополнительный, таки не протестированный метод" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:10 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинаксначала будет пожелание заказчика, потом, в каком то виде, бизнес аналитик слепит спеку программерам ну а потом тестеры проверят, согласно спекевот. Я ленивый программист и тоже хочу и делаю так)). Ошибок обычно мало). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123maytonпропущено... Ты точно уверен? А почему существует NDK? И почему виртуальные машинки Dalvik/ART выделены в отдельный класс в стеке? Я говорил о ЯП на котором пишется подавляющее количество ПО. Это обозначает родной ЯП). Я про родной понял. С этим нет вопросов. Я как раз спросил про язык и среду на котором пишут дровишки и всё системное. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:24 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЯ как раз спросил про язык и среду на котором пишут дровишки и всё системное.у меня андроид телефон и планшет. Поэтому не представляю термин драйвера в андроиде. Да. Умельцы меняют прошивку. Да там есть уже установленное ПО которое хачат. Но данное направление мне вообще не интересно. И пользы не вижу. Как то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:51 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
андроид это линукс со всеми вытекающими. соответственно "дровишки" вероятнее всего пишут там же и так же как для какой-нибудь бубунты или дебиана ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:27 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
chpasha"дровишки" вероятнее всего пишут "дровишки" пишутся для своего оборудования. Представить свое оборудование впаянное например внутрь Самсунга - достаточно тяжело ))) Нет... существуют конечно хакеры, умельцы топора и паяльника, которые и такое могу.... но мало их кол-во Т.ч. присоединяюсь к мнению Petro123 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:38 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Проехали дровишки. Это я к слову сказал. Вот такой вопрос. К примеру я хочу написать приложение под андроид на сях которое будет обрабатывать картинку со встроенной камеры. С какой стороны мне к этой задаче подойти? Достаточно ли будет Kotlin/SDK? Или нужно будет NDK? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonя хочу написать приложение под андроид на сях мне кажется это уже попахивает легкой степенью раздвоения личности или андроид и Java или native телефон и тогда уж си AFAIK p.s. под андроид не писал, не читал, но осуждаю ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:54 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevmaytonя хочу написать приложение под андроид на сях мне кажется это уже попахивает легкой степенью раздвоения личности или андроид и Java или native телефон и тогда уж си Почему или-или? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:57 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonбудет обрабатывать картинку как обрабатывать? всякие матричны трансформации можно и так, если нужно эффективно и малозатратно - есть например RenderScript . Но можно и на нативе. Но не кнопки, наверняка проще вызывать нужный функционал из нативной либы через JNI ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonобрабатывать картинку со встроенной камерыа чем java там не устроит? Неужели тормозами))? Счас крестится буду. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:03 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123maytonобрабатывать картинку со встроенной камерыа чем java там не устроит? Неужели тормозами))? Счас крестится буду. ХЗ. Еще не тестил. Хто тут андроедо-дев? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
chpashamaytonбудет обрабатывать картинку как обрабатывать? всякие матричны трансформации можно и так, если нужно эффективно и малозатратно - есть например RenderScript . Но можно и на нативе. Но не кнопки, наверняка проще вызывать нужный функционал из нативной либы через JNI О. Другое дело. Вот за этот линк большой спасиб. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:06 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, На 4pda форум иди. У на крепостничество отменили. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonLeonid Kudryavtsevпропущено... мне кажется это уже попахивает легкой степенью раздвоения личности или андроид и Java или native телефон и тогда уж си Почему или-или? https://developer.android.com/guide/platform или мы пишем на __стандартном__ Java API или опускаемся на уровень ниже и тогда нужно тестировать на конкретных моделях телефонов / OS. Может устройство на ARM процессорах (а их тоже много разных), может на Intel, может вообще на чем-то другом. Совместимость на уровне Java API обязан обеспечить производитель, а на уровни C - врят ли. Android-x86, Android-IA, BlueStacks etc.... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:10 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevmaytonпропущено... Почему или-или? https://developer.android.com/guide/platform или мы пишем на __стандартном__ Java API или опускаемся на уровень ниже и тогда нужно тестировать на конкретных моделях телефонов / OS. Может устройство на ARM процессорах (а их тоже много разных), может на Intel, может вообще на чем-то другом. Совместимость на уровне Java API обязан обеспечить производитель, а на уровни C - врят ли. Android-x86, Android-IA, BlueStacks etc.... Леонид вы меня обижаете чесслово. Откуда такое желание разложить все по разным коробочкам? А что я не могу быть Kotlin/C++ разработчиком? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, +1 Причем совместимость с API автоматическая через профиль и манифест одной строкой. А вот нативное Г....)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, Просто под С++ все меньше задач и они как раз облизываются на java и шарп). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:30 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Ладно давайте тут закончим. Ато бедного автора неуважаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:34 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЛеонид вы меня обижаете чесслово. Откуда такое желание разложить все по разным коробочкам? А что я не могу быть Kotlin/C++ разработчиком? Вы то можите, но для андроида стандартно/рекомендованно все же Java или Java-native (JVM) языки. Это как писать скрипты для MS Word на Java. Можно? Конечно можно! Берем JACOB и пишем.... и огребаем кучу багов Jacob и Excel'а (в Excel - куча мало-стандартных методов, описанных в type library через одно место, например https://www.sql.ru/forum/1309975/ordcom-invoke-s-null-parametrom?hl=excel ; в Jacob - то же не мало багов, начиная от очистки памяти и заканчивая русским языком). Или берем VBA, читаем документацию и более-менее что-то кодируем без велосипедов, без кувалды и без русcкой матери. Можно ли заменять цилиндры в двигателе через выхлопную трубу? Известный анекдот уверяет, что тоже можно. Но нужно ли этим заниматься? В редких случаях - приходится. Но обычно, можно обойтись и без этого. IMHO & AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:48 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevНо нужно ли этим заниматься? В редких случаях - приходится. Но обычно, можно обойтись и без этого обычно да можно, но когда нельзя, то вполне себе пишут на native ну или используют нативные либы через JNI. некоторые вещи на jvm-языке эффективно не реализовать, хотя бы потому что приложения сильно ограничены по расходу памяти. Например сканирование qr-кодов, распознавание текста, редактирование изображений почти всегда (или всегда) - это нативные либы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 18:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123Если покрытие 80 проц, то пару часов в день ты их пишешь. Я не пишу, поэтому и просил от тебя пример. Давайте опять про то как должно быть. Открываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели 1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера 2) тут же расписан твой тест кейс на Cucumber 3) Acceptance criteria Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена. Вот из моего примера - задача сделать подпись на данные турбины если изменения сделал чел без авторизации, то подпись не прошла Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 19:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaОткрываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели 1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера 2) тут же расписан твой тест кейс на Cucumber 3) Acceptance criteria Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена. ... skipped по-моему, у вас как раз очень хороший пример тестов, которые по факту ничего не тестируютсовершенно бесполезны, зато поднимают ЧСВ продакт-оунера и составителя тестов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 20:21 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловSergunkaОткрываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели 1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера 2) тут же расписан твой тест кейс на Cucumber 3) Acceptance criteria Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена. ... skipped по-моему, у вас как раз очень хороший пример тестов, которые по факту ничего не тестируютсовершенно бесполезны, зато поднимают ЧСВ продакт-оунера и составителя тестов. Приведите свой пример с интересом сравним. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 20:28 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaПриведите свой пример с интересом сравним.Вы там вместе с Petro123 сидите чтоли? чуть что, так сразу пример подавай. Я вот могу рассказать почему ваши тесты плохие. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 20:35 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловSergunkaПриведите свой пример с интересом сравним.Вы там вместе с Petro123 сидите чтоли? чуть что, так сразу пример подавай. Я вот могу рассказать почему ваши тесты плохие. Расскажите, не надо стеснятся Но обычно правила хорошего тона требуют после высказывания предложить тот подход который оппонент считает правильным. У меня под рукой несколько тысяч тестов - просто я показываю те, которые были написаны в плане ответов на конторском форуме когда люди задавали вопросы и несколько тупили в понимании о чем речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 20:47 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaРасскажите, не надо стеснятся Тут народ уже 7 страниц спорит о том, что тесты вроде как хорошая штука, вот только они должны быть по делу, а не просто для увеличения покрытия, потому что последняя метрика в действительности мало о чемвообще ни о чем не говорит, потом вы приходите весь в белом и говорите: эй, пацаки, тут есть подход fucking around driven development - там уже все продумано за вас, есть аж специальный DSL, нужно только реализовывать то что в жире написали и все будет хорошо. Ну давайте посмотрим на ваш cucumber... Сценарий: Код: sql 1. 2. 3. 4. 5.
"Реализация": Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Ну, во-первых, никакого DSL какбы и нет - ну позволяет оно каким-то образом параметризовывать (у вас зачистку тестовых данных перед выполнением сценария не увидел, но будем считать что оно может иметь место) тесты через регулярные выражения (буэээ) и какие-то простенькие списки pojo (что если перед тестом нужно мегабайт сильно связных данных в базу пролить?) и на этом все, зато разработчик этих "сценариев" начинает чувствовать себя не обезьяной, а чем-то большим во-вторых, помимо того, что нужно писать сами тесты, добавляется еще обязанность писать всю эту обвязку к cucumber, при этом очевидно, что все будущие потребности "сценариев" с первого раза не покрыть, поэтому эту лапшу придется постоянно переписывать (есть мнение, что если придется тестировать граничные случаи, то cucumber будет только мешаться) в-третьих, "корректность" реализации теста отдается на откуп непонятно кому: вот у вас в сценарии написано что должен прийти список из трех стран, а вы проверяете только вхождение одного набора в другой, т.е. если в вашем тесте сервис вернет больше стран или дубли, то тест все равно будет успешным - ну и зачем такой тест нужен? В целом, подход, который вы пропагандируете, хорош только тем, что он снимает ответственность с разработчика: вот какие сценарии мне написали, такие приложение и проходит, однако к правильной работе приложения это не имеет никакого отношения - все то же самое что и с метрикой покрытия. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 05:51 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинака откуда взялся "дополнительный, таки не протестированный метод" ? От прошлых подвигов, например. Тебе надо понять одно - программирование не заканчивается на одном единственном кейсе. И не начинается с одного единственного кейса. Это процесс. Он долгий. Кейсов много. И они наслаиваются. И когда кто-то поступает по твоему, то всегда получает косяки из-за наслоений, потому что проверяет только то, что ему кто-то написал в данном кейсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:01 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonДостаточно ли будет Kotlin/SDK? Или нужно будет NDK? Нужно NDK. Вообще, сначала лучше получить опыт разработки под линуха. Тогда всё остальное будет просто. А если сразу с Java на ведёрный NDK - будешь много думать и мало понимать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:02 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555казинака откуда взялся "дополнительный, таки не протестированный метод" ? От прошлых подвигов, например. Тебе надо понять одно - программирование не заканчивается на одном единственном кейсе. И не начинается с одного единственного кейса. Это процесс. Он долгий. Кейсов много. И они наслаиваются. И когда кто-то поступает по твоему, то всегда получает косяки из-за наслоений, потому что проверяет только то, что ему кто-то написал в данном кейсе. Regression Test ? Если кто-то поступил по своему и это сломало "наложения прежних времен", то сразу должно быть видно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555maytonДостаточно ли будет Kotlin/SDK? Или нужно будет NDK? Нужно NDK. Вообще, сначала лучше получить опыт разработки под линуха. Тогда всё остальное будет просто. А если сразу с Java на ведёрный NDK - будешь много думать и мало понимать. В какой части например? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:48 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevRegression Test ? Если кто-то поступил по своему и это сломало "наложения прежних времен", то сразу должно быть видно.Вы про что вообще? Регрессионное тестирование - оно всегда ручное, тут же автоматизацию обсуждают. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловРегрессионное тестирование - оно всегда ручное ????? Сколько не видель регрессионных тестов, вот они-то всегда автоматизированы. Это же офигеть, после КАЖДОЙ сборки регрессионное тестирование руками делать. Или у нас разные понятия о термине "регрессионное тестирование" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:21 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevИли у нас разные понятия о термине "регрессионное тестирование"Не знаю какие там у вас понятия, но в этом топике обсуждается наполнение каталога src/test - там нет регрессионных тестов: все что там есть запускается разработчиком или CI, регрессионное тестирование отдается полностью на откуп QA - это соседний форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:42 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфиловно в этом топике обсуждается наполнение каталога src/testзачем так узко? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:08 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123зачем так узко? дело не в узко, а в том, что я тогда вообще не понимаю, что у людей лежит в src/test ))) Для меня, src/test в первую очередь "проверка того, что не нарушилась работоспособность работающей ранее функциональности, если её код мог быть затронут при исправлении некоторых дефектов в другой функциональности" ( C ) wiki ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:30 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
тут некоторые 1500 раз свой код запускают поэтому им эти твои проверки ни разу не нужны. да и вообще тесты это потеря времени. ты о чем воще. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:49 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaTтут некоторые 1500 раз свой код запускают поэтому им эти твои проверки ни разу не нужны. да и вообще тесты это потеря времени. ты о чем воще. Я с трудом себе представляю как можно после крупного рефакторинга по "щелчку пальцев" определить что ничего не сломалось. Мне кажется - только автоматизация. Кто там 1500 раз делает? Покажите мне этого человека. И что он это делает каждый день? Или по изменению? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
andreykaT, Ты проснулся. Поздравляю. Если такие как ты говорят что тестируют, то пусть расскажут как. Где твой интеграционный? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonКто там 1500 раз делает?я делаю))). Но я готов покаятся, если будет автоматизация. Никто не показал. Один пример выше был, там dsl и огурцы учить надо). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123maytonКто там 1500 раз делает?я делаю))). Но я готов покаятся, если будет автоматизация. Никто не показал. Один пример выше был, там dsl и огурцы учить надо). Дай бох. Я надеюсь что про 1500 раз ты пошутил. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, if на пять веток напишу и 5 раз запускаю. Раз в 5 минут примерно запускаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonнадеюсь что про 1500 раз ты пошутил.надеюсь про то что запуск 10 мин. Тут тоже шутят? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:20 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123maytonнадеюсь что про 1500 раз ты пошутил.надеюсь про то что запуск 10 мин. Тут тоже шутят? Смотря что. Биржевая система греет кеши примерно 20 минут. Для поднятия в стеке Jenkins. Но это для end-to-end. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:29 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonНо это для end-to-end.вот и я говорю. Все про крайности. Я про 1500 запусков. Другой про 10мин и он пишет по памяти-тестам с черной повязкой. Третий с огурцами) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:49 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555казинака откуда взялся "дополнительный, таки не протестированный метод" ? От прошлых подвигов, например. Тебе надо понять одно - программирование не заканчивается на одном единственном кейсе. И не начинается с одного единственного кейса. Это процесс. Он долгий. Кейсов много. И они наслаиваются. И когда кто-то поступает по твоему, то всегда получает косяки из-за наслоений, потому что проверяет только то, что ему кто-то написал в данном кейсе. это в ипанутых системах они наслаиваются патамушта там поклоняются фаулеру и пишут километры оберток (лейеров), то бишь универсальных классов, которые должны использоваться ВЕЗДЕ а в норм системах, парэкзампль, изменение в логике начисления процентов не сломает заведение договоров патамушто норм система реализована модульно, и в случае выхода из строя одного модуля, другие не ломаются ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 18:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловSergunkaРасскажите, не надо стеснятся Тут народ уже 7 страниц спорит о том, что тесты вроде как хорошая штука, вот только они должны быть по делу, а не просто для увеличения покрытия, потому что последняя метрика в действительности мало о чемвообще ни о чем не говорит, потом вы приходите весь в белом и говорите: эй, пацаки, тут есть подход fucking around driven development - там уже все продумано за вас, есть аж специальный DSL, нужно только реализовывать то что в жире написали и все будет хорошо. Ну давайте посмотрим на ваш cucumber... Сценарий: Код: sql 1. 2. 3. 4. 5.
"Реализация": Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Ну, во-первых, никакого DSL какбы и нет - ну позволяет оно каким-то образом параметризовывать (у вас зачистку тестовых данных перед выполнением сценария не увидел, но будем считать что оно может иметь место) тесты через регулярные выражения (буэээ) и какие-то простенькие списки pojo (что если перед тестом нужно мегабайт сильно связных данных в базу пролить?) и на этом все, зато разработчик этих "сценариев" начинает чувствовать себя не обезьяной, а чем-то большим во-вторых, помимо того, что нужно писать сами тесты, добавляется еще обязанность писать всю эту обвязку к cucumber, при этом очевидно, что все будущие потребности "сценариев" с первого раза не покрыть, поэтому эту лапшу придется постоянно переписывать (есть мнение, что если придется тестировать граничные случаи, то cucumber будет только мешаться) в-третьих, "корректность" реализации теста отдается на откуп непонятно кому: вот у вас в сценарии написано что должен прийти список из трех стран, а вы проверяете только вхождение одного набора в другой, т.е. если в вашем тесте сервис вернет больше стран или дубли, то тест все равно будет успешным - ну и зачем такой тест нужен? В целом, подход, который вы пропагандируете, хорош только тем, что он снимает ответственность с разработчика: вот какие сценарии мне написали, такие приложение и проходит, однако к правильной работе приложения это не имеет никакого отношения - все то же самое что и с метрикой покрытия. Извините, Вы специально вырвали из контекста сам тест? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
https://github.com/SVyatkin/ads-bdd/blob/master/src/test/resources/Cucumber/IntegrationTest/customer/CountryCities_Test.feature Я тестирую то, что написано в ценарии не более того Код: sql 1. 2. 3.
Вам перевести с английского на русский? Ваши притензии из разряда зачем было Генри Форду устраивать конвейр? Это же столько дополнительного оборудования? Пусть работяги бегают вокруг машины и гайки крутят Я беспорно благодарен Вашему стремлению разобраться с вопросом для Вас лично, что такое тетстирование и все такое... мне лично приятно, что Вы прочитали мой код и сделали отличные выводы. Но поймите этот код я опубликовал несколько для других целей кроме того как поделится как у нас в конторе дело обстоит хотелось бы услышать как это дело обстоит в других конторах. Моему коду уже без малого лет пять неужели никто так особо и не продвинулся из уважаемой публики?! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 18:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123 Один пример выше был, там dsl и огурцы учить надо). Из моего опыта это занмает пару сессий т.е. часа два/три, чтоб вменяемый разработчик стал писать огурцами. Самому сидеть разбираться видимо займет пару тройку дней, но тоже не смертельно. Просто когда над проектом работают две\три комманды по человек пять другого варианта я просто не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 18:39 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaИзвините, Вы специально вырвали из контекста сам тест?Так вы чтоли не поняли что ваши тесты неправильные? Давайте еще раз: Код: java 1. 2. 3. 4. 5. 6. 7.
Ожидание сценария: должен вернуться определенный список стран Реализация теста: в возвращенном списке стран присутствуют ожидаемые т.е. если вот в этом сценарии: Код: java 1. 2. 3. 4.
Сервис вернет еще и Мексику, то тест все равно пройдет - такие тесты не нужны, никому, совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 18:51 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловSergunkaИзвините, Вы специально вырвали из контекста сам тест?Так вы чтоли не поняли что ваши тесты неправильные? Давайте еще раз: Код: java 1. 2. 3. 4. 5. 6. 7.
Ожидание сценария: должен вернуться определенный список стран Реализация теста: в возвращенном списке стран присутствуют ожидаемые т.е. если вот в этом сценарии: Код: java 1. 2. 3. 4.
Сервис вернет еще и Мексику, то тест все равно пройдет - такие тесты не нужны, никому, совсем. Вы реально еще и программировать не умеете "на сухую". Ну проверьте, что вам вернет Assert.isTrue(set.containsAll(set1)); containsAll(Collection<?> c) Returns true if this set contains all of the elements of the specified collection. если в set1 будет еще и Мексика то ассеt выкинет ошибку На самом деле будет логическая ошибка если вернется только одна страна USA или Canada. Ну, так спасибо, конечно, поржал ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 19:47 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaВы реально еще и программировать не умеете "на сухую". Ну проверьте, что вам вернет Assert.isTrue(set.containsAll(set1)); containsAll(Collection<?> c) Returns true if this set contains all of the elements of the specified collection. если в set1 будет еще и Мексика то ассеt выкинет ошибку На самом деле будет логическая ошибка если вернется только одна страна USA или Canada. Ну, так спасибо, конечно, поржал Вот зачем вы что-то пишете про Генри Форда, если сами не в состоянии сравнить два сраных списка? Очередная попытка: Код: java 1. 2. 3. 4. 5. 6. 7.
List<String> countries - то что пишло из сценария, т.е. [USA, Canada], превращается в set1 (new HashSet<String>(countries)) this.countries - то что пришло из сервиса: Код: java 1. 2. 3. 4.
превращается в set, теперь вопрос на засыпку: что вернет [USA, Canada, Mexico].containsAll([USA, Canada])? Вы можете продолжать дальше ржать сколько угодно, однако мнение о себе вы уже составили, ровно как и о General Electric. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 19:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловSergunkaВы реально еще и программировать не умеете "на сухую". Ну проверьте, что вам вернет Assert.isTrue(set.containsAll(set1)); containsAll(Collection<?> c) Returns true if this set contains all of the elements of the specified collection. если в set1 будет еще и Мексика то ассеt выкинет ошибку На самом деле будет логическая ошибка если вернется только одна страна USA или Canada. Ну, так спасибо, конечно, поржал Вот зачем вы что-то пишете про Генри Форда, если сами не в состоянии сравнить два сраных списка? Очередная попытка: Код: java 1. 2. 3. 4. 5. 6. 7.
List<String> countries - то что пишло из сценария, т.е. [USA, Canada], превращается в set1 (new HashSet<String>(countries)) this.countries - то что пришло из сервиса: Код: java 1. 2. 3. 4.
превращается в set, теперь вопрос на засыпку: что вернет [USA, Canada, Mexico].containsAll([USA, Canada])? Вы можете продолжать дальше ржать сколько угодно, однако мнение о себе вы уже составили, ровно как и о General Electric. Я Вас вроде как поблагодарил за проделанную работу Меня всегда умиляют люди которые так долго что-то пытаются доказать когда фикс очевидный и занимает одну строку. Тем более Вы смотрите не на тот метод который возращает по имени города страны Код: sql 1. 2. 3. 4.
Ну, надо подфиксить метод типо так, чтоб было тождественное равенство Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
По понятным причинам Вы не удосужились показать как у вас пишут тесты. Очень жаль надеялся увидеть, что-то исключительно героическое ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 20:46 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaНу, надо подфиксить метод типо так, чтоб было тождественное равенство Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Вы еще день будете осознавать, что сравнение наборов - это не то же самое что сравнение списков. SergunkaПо понятным причинам Вы не удосужились показать как у вас пишут тесты. Очень жаль надеялся увидеть, что-то исключительно героическое Демонстрирую мастер-класс на примере того как должен был выглядеть ваш сценарий: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
выхлоп: Код: plaintext 1. 2. 3. 4.
заметьте, что: - никаких преобразований списков одних сущностей в наборы других - точное соответствие поставленным целям - текст сообщения об ошибке говорит сам за себя, а не какая-то пустота в случае Assert.true() ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 21:33 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловSergunkaНу, надо подфиксить метод типо так, чтоб было тождественное равенство Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Вы еще день будете осознавать, что сравнение наборов - это не то же самое что сравнение списков. SergunkaПо понятным причинам Вы не удосужились показать как у вас пишут тесты. Очень жаль надеялся увидеть, что-то исключительно героическое Демонстрирую мастер-класс на примере того как должен был выглядеть ваш сценарий: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
выхлоп: Код: plaintext 1. 2. 3. 4.
заметьте, что: - никаких преобразований списков одних сущностей в наборы других - точное соответствие поставленным целям - текст сообщения об ошибке говорит сам за себя, а не какая-то пустота в случае Assert.true() Иными словами Вам удалось освоить JUnit test... поздравляю нормальный результат... есть куда рости ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 22:08 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Sergunka, Мне ваши тесты нравятся. Про себя unit test-ы мне всегда нравились и когда есть время пишу с удовольствием. Появление всяких mock-ов, я видимо так и не осилил. Я не понимаю зачем тестировать контроллеры, когда в них вся реализация сервисов подменена. На мой взгляд это тестирование тестового кода. И целосообразность подмены вижу только чтобы тестировать отказы (выбрасывая Exception). Недавно открыл для себя test containers. Поэтому новый модуль который пишу постараюсь покрыть приемочными тестами на (TestContainers + Selenium). Ну и возможно BDD, но тут еще посмотрим. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 23:23 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
vas0Sergunka, Мне ваши тесты нравятся. Про себя unit test-ы мне всегда нравились и когда есть время пишу с удовольствием. Появление всяких mock-ов, я видимо так и не осилил. Я не понимаю зачем тестировать контроллеры, когда в них вся реализация сервисов подменена. На мой взгляд это тестирование тестового кода. И целосообразность подмены вижу только чтобы тестировать отказы (выбрасывая Exception). Недавно открыл для себя test containers. Поэтому новый модуль который пишу постараюсь покрыть приемочными тестами на (TestContainers + Selenium). Ну и возможно BDD, но тут еще посмотрим. Моки нужны чтобы подменять сложные источники данных которые в фазе модульного тестинга недоступны (базы данных и внешние веб-сервисы). Во всех остальных случаях внедрение моков в тест нужно очень сильно обосновывать т.к. здесь может быть скрыта немалая часть архитектурных ошибок и упущений. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 23:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
vas0Недавно открыл для себя test containers. Поэтому новый модуль который пишу постараюсь покрыть приемочными тестами на (TestContainers + Selenium). Ну и возможно BDD, но тут еще посмотрим. У меня друг тестировщик недавно перешел на карате для тестирования Rest API https://github.com/intuit/karate Говорит, что очень просто и крепко сделанный продукт опять же с огурцами Может кому подойдет походу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 23:50 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, За свой опыт не видел ни один проект, в котором мне использование моков бы понравилось. При взгляде на который бы сказал "Да классно сделано". Тот код который я видел обычно называют код с душком. Мок на моке сидит и моком погоняет. И непонятно что там вообще тестируется. При этом подготовка моков это целые "портянки кода". Еще один недостаток в том что любое изменение очень сильно бьет по всем тестам. На мой взгляд лучше время на приемочные тесты тратить они более высокоуровневые и меньше подвержены внутренним изменениям. Ну и покрыв основные сценарии, получаешь хорошие регрессионные тесты. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 23:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
vas0mayton, За свой опыт не видел ни один проект, в котором мне использование моков бы понравилось. При взгляде на который бы сказал "Да классно сделано". Тот код который я видел обычно называют код с душком. Мок на моке сидит и моком погоняет. И непонятно что там вообще тестируется. При этом подготовка моков это целые "портянки кода". Еще один недостаток в том что любое изменение очень сильно бьет по всем тестам. На мой взгляд лучше время на приемочные тесты тратить они более высокоуровневые и меньше подвержены внутренним изменениям. Ну и покрыв основные сценарии, получаешь хорошие регрессионные тесты. Можешь показать эти "портянки кода" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 00:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, ну это примерно вот такие вещи Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 00:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Мда.. Тесты не должны базироваться на таких сложных моках. В противном случае надо тестировать и сами моки. И зачем там цикл? Непонятно. Можно было на 1-й итерации прогнать все кейсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 01:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaИными словами Вам удалось освоить JUnit test... поздравляю нормальный результат... есть куда рости Нет там JUnit никакого, просто показано как правильно реализовывать проверки, едем дальше: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Смотрим что такое Customer: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
ой. Получается, что в сценарии вас просят работать с именем, а вы вместо этого работаете с assetId и при этом все "зеленое", более того, контракт на заполненность имени нигде не форсируется и не проверяется, зато тесты зеленые, ревью делать не нужно - можно сразу в прод засылать. Еще один плохой момент в реализации ваших тестов: если разработчику понадобится переименовать поля pojo, то тестовые сценарии не развалятся - геттеры и сеттеры переименует IDE, а вот в cucumber как торчали "customer with name" так останутся торчать. В целом, подход что вы описываете, а именно: SergunkaДавайте опять про то как должно быть. Открываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели 1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера 2) тут же расписан твой тест кейс на Cucumber 3) Acceptance criteria Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена. Вообще никакого отношения к разработке не имеет: существует какое-то преклонение перед BDD, в процессе этого преклонения создаются какие-то артефакты, но толку от них нет никакого просто потому что сам по себе процесс дырявый. И беда не в том, что BDD плохой (хотя этот DSL нужно поддерживать, что печально), а в том что вы неправильно его применяете: тесты должны разрабатываться (или хотябы рецензироваться) людьми, которые этим профессионально занимаются, подход типа "вот сделай фичу и сам покрой его тестами" много где имеет место быть, но в целом он неправильный (ваши корявые реализации тому подтверждение) зелень в тестах - это не повод принять изменения от разработчика в основную ветку, это лишь повод сделать-таки ревью коду (и особо тщательное ревью тестам, если они поменялись или появились новые) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 06:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevдело не в узко, а в том, что я тогда вообще не понимаю, что у людей лежит в src/test ))) Для меня, src/test в первую очередь "проверка того, что не нарушилась работоспособность работающей ранее функциональности, если её код мог быть затронут при исправлении некоторых дефектов в другой функциональности" ( C ) wikiНу давайте поразмыслим вместе. То что лежит в src/test относится к так называемому white box testing, т.е. в абсолютном большинстве это или юнит-тесты, или интеграционные, которые в свою очередь реализуют разработчики (ну или люди, обладающие скилом разработчика). Вот вам нравится цитировать википедию, а там в той же статье написано:wikiIn the corporate world, regression testing has traditionally been performed by a software quality assurance team after the development team has completed work. However, defects found at this stage are the most costly to fix. This problem is being addressed by the rise of unit testing. Although developers have always written test cases as part of the development cycle, these test cases have generally been either functional tests or unit tests that verify only intended outcomes. Developer testing compels a developer to focus on unit testing and to include both positive and negative test cases.И вот в разрезе юнит-тестов (т.е. там где мы тестируем небольшие участки кода), я как-то слабо себе представляю наличие регрессий: - то, что было до изменений покрыто тестами, то либо продолжит работать, либо развалится, однако самого процесса регрессионного тестирования здесь нет - мы просто всегда запускаем тесты, которые у нас есть (здесь можно как-то с ну очень большой натяжкой утверждать, что "ну вот мы же запускаем все тесты подряд, т.е. полностью тестируем систему, а это и есть регрессионное тестирование", но самого процесса здесь нет: запустить все юнит-тесты - это функция CI, а не процесс) - то что тестами покрыто не было, имеет все шансы развалиться, однако не факт что оно и до этого работало правильно, ну т.е. оно про то что юнит-тесты нужно писать, а не про то что в разрезе юнит-тестов существует процесс регрессионного тестирования Т.е. получается так, что там где мы действительно можем (и должны) проверить наличие (или отсутствие) регрессий - это либо интеграционные тесты, либо "ручное тестирование" (т.е. то что делает команда QA, руками они это делают или нет - не суть важно) и здесь начинаются "приколы", которые мало зависят от разработчика, а именно: - мы можем хоть как-то надеяться, что конечный разработчик сделает интеграционные тесты для своих модулей, однако, ожидать что он также сделает интеграционные тесты для модулей/сервисов, о которых он даже не знает, несколько наивно: во-первых, в большинстве случаев он просто о них не знает, во-вторых, развертывание чужеродных сред и их тестирование - это не его задача, все что мы может здесь сделать - это полноценно (предоставить спецификацию, входные/выходные данные, подготовить среду и пр.) поставить задачу подготовить интеграционные тесты, если же задачи нет, то и рассчитывать на положительный выхлоп здесь не следует. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 07:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
авторRegression Testing is defined as a type of software testing to confirm that a recent program or code change has not adversely affected existing features. Regression Testing is nothing but a full or partial selection of already executed test cases which are re-executed to ensure existing functionalities work fine На самом деле регрессия нужна исключительно для рефакторинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 08:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonМда.. Тесты не должны базироваться на таких сложных моках. В противном случае надо тестировать и сами моки. И зачем там цикл? Непонятно. Можно было на 1-й итерации прогнать все кейсы? Честно говоря даже не хочется разбираться что там человек имел ввиду и что именно он тестирует. Просто пример как можно засунуть в сервис моков, сначала "героически" их подготавливая, а потом также "героически" проверяя как они отрабатывают вызывая кучу verify. На мой взгляд это куча тестового кода, который непонятно что тестирует. И этот код достаточно сложно поддерживать, небольшие изменения в сервисе приводят к тому что мок тесты слетают. Я уверен что mock можно использовать и с пользой, но я редко такое видел. Если тесты приносят хоть кому то пользу они имеют право на жизнь. Все модели неверны, но некоторые полезны. (С) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
На мой взгляд тесты должны описывать то, как работать с системой разработчику. И одновременно тестировать бизнес кейсы там, где не требуется поднимать окружение. Я умных слов про тесты не знаю, но когда я захожу в новый проект, я первым делом иду в тесты посмотреть, как вызывать тот или иной метод, для чего и почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:49 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинИ одновременно тестировать бизнес кейсы там, где не требуется поднимать окружение. На мой взгляд раньше поднимать окружение было проблемой. Отсюда и появление всех этих Mock-ов. С такими технологиями как docker подготовка тестовой среды перестает быть проблемой. Запускаешь подготовленный контейнер и тестируешь. Конечно по времени выполнения это долго, но тут реальные приемочные тесты, а не тестирование коней в вакууме. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 10:05 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
В одной итерации. Код: java 1. 2. 3. 4. 5. 6. 7.
Беря во внимание что это еще не тест а просто инициализация мока. Тем не менее. Я-бы правила мока расписал тоже по классической схеме Given/When/Then. Заменил бы магические ссылки на контекст просто константами. Например. Зачем мы берем из контекста какой-то грёбаный емейл? Кейсы пишутся явно. Например. Код: java 1.
Для меня самого есть хорошее правило. Я тесты должен читать как плоский английский текст. Хороший вариант - использовать ассерты с текстовыми комментариями. Хороший вариант - юзать Хамкрест. Еще хороший вариант писать методы на Spock/Groovy. Но здесь сложно судить т.к мы всё равно не видим теста. А автор показал только инициализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 10:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
vas0технологиями как docker подготовка тестовой среды перестает быть проблемой.вооот. Эта тема Ещё интереснее чем REST тестирование) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 10:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
+1 Тему докера в тестировании я-бы поднял отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 11:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonВ какой части например? Что в какой части? Как под линух на сях писать что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevRegression Test ? Если кто-то поступил по своему и это сломало "наложения прежних времен", то сразу должно быть видно. Может и в новом кейсе неучёт старых особенностей проявиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:26 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакэто в ипанутых системах они наслаиваются патамушта там поклоняются фаулеру и пишут километры оберток (лейеров), то бишь универсальных классов, которые должны использоваться ВЕЗДЕ а в норм системах, парэкзампль, изменение в логике начисления процентов не сломает заведение договоров патамушто норм система реализована модульно, и в случае выхода из строя одного модуля, другие не ломаются Логика начисления процентов сложная. Вот тебе тривиальный пример: Проценты зависят от грейда клиента. Ты протестил грейды когда-то давно и потом мгновенно забыл о них. Затем тебе дали кейс с начислением бонусов. Ты протестил бонусы и опять мгновенно забыл. Но. Ты никогда даже не мог подумать, что грейды влияют на дополнительные проверки клиента. И ты просто задал в своём кейсе "правильный" грейд, который тупо подошёл и не вызвал проблем. И вот в бою начисляют бонусы вип-клиенту (это такой пальцатый перец с подвязками, который из тебя потом котлету сделает). Ну и грейд перца вызвал непродуманную тобой цепочку действий. И всё. Ты попал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaНа самом деле регрессия нужна исключительно для рефакторинга. Причиной изменения софта в большинстве случаев является желание заказчика. Как бы азбука. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакэто в ипанутых системах они наслаиваются патамушта там поклоняются фаулеру и пишут километры оберток (лейеров), то бишь универсальных классов, которые должны использоваться ВЕЗДЕ аж чето удивился, оказывается Фаулер выступал за суперклассы, а не против. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:52 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555SergunkaНа самом деле регрессия нужна исключительно для рефакторинга. Причиной изменения софта в большинстве случаев является желание заказчика. Как бы азбука. Не всегда если смотреть с точки зрения сопровождения легаси кода и баг фиксинга, то да никто не будет трогать код если заказчик не просит внести изменения. Поверьте есть места где занимаются разработкой с нуля, там рефакторинг практически происходит ежедневно, так как разработчики думают о маентабилити этого кода в будущем. В США прижился лозунг авторAlways code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 17:44 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555maytonВ какой части например? Что в какой части? Как под линух на сях писать что-ли? Да. Да. Скажи что ты хотел сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Sergunka так как разработчики думают о маентабилити этого кода в будущем. В США прижился лозунг авторAlways code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом а в это время другие, более разумные, продают продукты или услуги, а не код ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! и насколько он мэйнтенабле работает правильно? значит норм вот когда глючит, тогда проблема зы есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакSergunka так как разработчики думают о маентабилити этого кода в будущем. В США прижился лозунг пропущено... имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом а в это время другие, более разумные, продают продукты или услуги, а не код ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! и насколько он мэйнтенабле работает правильно? значит норм вот когда глючит, тогда проблема зы есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал... У тебя - странный профиль. Оракл + Работа. Есть опыт разработки Java? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Sergunkaо маентабилити дружище, соберись, невозможно подобное читать ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:27 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonказинакпропущено... имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом а в это время другие, более разумные, продают продукты или услуги, а не код ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! и насколько он мэйнтенабле работает правильно? значит норм вот когда глючит, тогда проблема зы есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал... У тебя - странный профиль. Оракл + Работа. Есть опыт разработки Java? бгг напоминает диалог паниковского с шурой балагановым: "а ты кто такой?" зы но есличо, писал на jsp, и даже на такой куйне как Visual J++ как одмин ставил и тюнил вебложик, wildfly, glfssfish как то присел за java ee 7, jsf, ejb, jpa, был вариант проект сделать, потом отвалился и слава богу, если честно жава у меня только отвращение вызывает но тут же топик про тестирование а не про жабу, пусть даже и в разделе жабы или я ошипся? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:40 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Я просто поинтересовался. Ты написал такую вещь ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! И я сильно удивился. Это противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком... Профиль - хорошая штука. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:57 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЭто противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком.... ну а я посмотрел твой профиль и понял, что, хоть ты и зарегился тут в 2004 году, самостоятельно мыслить ты еще не научился ну какие нах подтвержденные практики??? тут блин раз в пару лет, полностью опровергают то что раньше в ранг догмы возводили к примеру раньше считали что css надо отдельно держать и они должны быть для всех страниц но в реакте styled components наоборот для кажд компонента отдельный inline css или, том кайт считал что бизнес логику надо в базе делать, а фейсбук сказал, что никакой функциональности в базе, никаких джойнов или форин кей кто прав? наверно майтон ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 19:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинактом кайт считалтом кайт иноверец был. Базист). Он с противоположного от java лагеря. А то что всё течет и все меняется это ты прав конечно) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 19:22 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonТесты не должны базироваться на таких сложных моках. В противном случае надо тестировать и сами моки круг замкнулся :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 19:51 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
chpashaSergunkaо маентабилити дружище, соберись, невозможно подобное читать Ага блин... чего это я Maintainable code is code that exhibits high cohesion and low coupling. Cohesion is a measure of how related, readable and understandable code is. ... Maintainability is itself a measure of the ease to modify code, higher maintainability means less time to make a change. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 19:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonЭто противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком.... ну а я посмотрел твой профиль и понял, что, хоть ты и зарегился тут в 2004 году, самостоятельно мыслить ты еще не научился ну какие нах подтвержденные практики??? тут блин раз в пару лет, полностью опровергают то что раньше в ранг догмы возводили к примеру раньше считали что css надо отдельно держать и они должны быть для всех страниц но в реакте styled components наоборот для кажд компонента отдельный inline css или, том кайт считал что бизнес логику надо в базе делать, а фейсбук сказал, что никакой функциональности в базе, никаких джойнов или форин кей кто прав? наверно майтон Они оба правы. И кайт. И создатели фейсбук. Вот такой вот парадокс. Ты согласен? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 21:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaПоверьте есть места где занимаются разработкой с нуля, там рефакторинг практически происходит ежедневно, так как разработчики думают о маентабилити этого кода в будущем. Ежедневный рефакторинг - явный признак отсутствия архитектора. Когда архитектурой занимается непонятно кто, софт выходит "как всегда". Поддержка такого софта обеспечивает рабочие места миллионам даунов, поэтому агрессивные психопаты будут убивать лишь того, кто делает софт не обеспечивающий миллионы рабочих мест для агрессивных психопатов. В общем - хорошо, что вы там для сейлов пишете, а не для контроллеров, управляющих движками. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2019, 11:51 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonказинакпропущено... ну а я посмотрел твой профиль и понял, что, хоть ты и зарегился тут в 2004 году, самостоятельно мыслить ты еще не научился ну какие нах подтвержденные практики??? тут блин раз в пару лет, полностью опровергают то что раньше в ранг догмы возводили к примеру раньше считали что css надо отдельно держать и они должны быть для всех страниц но в реакте styled components наоборот для кажд компонента отдельный inline css или, том кайт считал что бизнес логику надо в базе делать, а фейсбук сказал, что никакой функциональности в базе, никаких джойнов или форин кей кто прав? наверно майтон Они оба правы. И кайт. И создатели фейсбук. Вот такой вот парадокс. Ты согласен? говорю же: самостоятельно мыслить не умеешь только авторитетов поддерживаешь... причем всех... даже если они противоположные мнения отстаивают ярко выраженный конформист ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2019, 13:11 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonпропущено... Они оба правы. И кайт. И создатели фейсбук. Вот такой вот парадокс. Ты согласен? говорю же: самостоятельно мыслить не умеешь только авторитетов поддерживаешь... причем всех... даже если они противоположные мнения отстаивают ярко выраженный конформист Так что. Можно фейсбук на Оракле построить? Не спеши с ответом. Подумай. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2019, 14:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинак, ты чего развоевался? Причем на пустом месте. Кайта на сегодня цитируют только в узкой среде ДБА и ветки форума Оракле. Это не значит что он плохой или хороший. Мысль по сабжу то твоя какая? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2019, 14:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555SergunkaПоверьте есть места где занимаются разработкой с нуля, там рефакторинг практически происходит ежедневно, так как разработчики думают о маентабилити этого кода в будущем. Ежедневный рефакторинг - явный признак отсутствия архитектора. Когда архитектурой занимается непонятно кто, софт выходит "как всегда". Это основа экстремального программирования где считается если тесты прошли значит ничего плохого не произошло. Понятно, что архитектурный рефакторинг согласовывается между командами, но когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2019, 18:27 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Petro123казинак, ты чего развоевался? Причем на пустом месте. Кайта на сегодня цитируют только в узкой среде ДБА и ветки форума Оракле. Это не значит что он плохой или хороший. Мысль по сабжу то твоя какая? )) Да ладно так вообще всех распугаем... ты его еще пример теста привести попроси ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2019, 18:29 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Sergunkaно когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию. Обычно свой метод пишется при наличии желания со стороны заказчика. Но некоторые мне тут пытались доказать, что они рефакторят код и это им даёт изменения каждый день, без желания заказчика. И да, зная программистов, я уверен - никто у вас там не рефакторит просто так. Только когда жаренный петух клюнет. Но если (не по моим словам) рефакторят каждый день, значит постоянно в ситуации пожара. Прекрасная работа! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2019, 13:10 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555Sergunkaно когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию. Обычно свой метод пишется при наличии желания со стороны заказчика. Но некоторые мне тут пытались доказать, что они рефакторят код и это им даёт изменения каждый день, без желания заказчика. И да, зная программистов, я уверен - никто у вас там не рефакторит просто так. Только когда жаренный петух клюнет. Но если (не по моим словам) рефакторят каждый день, значит постоянно в ситуации пожара. Прекрасная работа! Я же Вам объяснил я пишу продукт в команде с нуля. Когда продукт выйдет в продакшин тогда согласен это будет отдельный разговор с заказчиком если это Java EE application. Но это не мой случай когда пишется сервис там пользователей десятки тысяч физически не с кем согласовывать. Product Owner решает будет фича или нет и там уже дальше как я сказал. Вы путаете суппорт легаси кода для Enterprise apps с разработкой сервисов там разные подходы собственно говоря спасибо так как это многое объясняет в этом топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2019, 20:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555Sergunkaно когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию. Обычно свой метод пишется при наличии желания со стороны заказчика. Но некоторые мне тут пытались доказать, что они рефакторят код и это им даёт изменения каждый день, без желания заказчика. И да, зная программистов, я уверен - никто у вас там не рефакторит просто так. Только когда жаренный петух клюнет. Но если (не по моим словам) рефакторят каждый день, значит постоянно в ситуации пожара. Прекрасная работа! Рефакторинг - это просто правила хорошего тона в обществе. Это как не плевать на пол и не кидать бумажки. Разумеется заказчик за это не платит. Это чисто - ответственность самой команды перед будущими бизнес-вызовами. Тут вобщем если вы никогда не делаете Р. то никто вас не обвинит явно. Просто накопление технического долга будет идти по экспоненте и рано или поздно вы почувствуете что такое не платить по счетам. Вобщем-то термин technical dept очень хорошо отражает ситуацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2019, 21:21 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonРефакторинг - это просто правила хорошего тона в обществе. Если люди пишут с нуля и каждый день рефакторят - что-то не так в консерватории. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 12:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555maytonРефакторинг - это просто правила хорошего тона в обществе. Если люди пишут с нуля и каждый день рефакторят - что-то не так в консерватории. Я не говорил что рефакторят каждый день. Собственно сама задача рефакторинга не имеет оценочного business-value. Собственно это минимизация рисков усложнения при будущих CR. Если вы работаете по другой модели (может гос-контора, может авиа-космос) - то прошу вас! Расскажите как вы там работаете? Как проектируете? Как вы пишете код? Сколько времени вы его пишете? Вобщем... как устроен у вас полный цикл? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 13:39 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЯ не говорил что рефакторят каждый день. Собственно сама задача рефакторинга не имеет оценочного business-value. Собственно это минимизация рисков усложнения при будущих CR.У вашего же Фалера написано когда нужно делать рефакторинг: - когда не производится ревью коданепонятно как работает код - когда нет архитетекторавнезапно возникают новые требования ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 14:03 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Будет вам... Он такой-же наш как и ваш... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 16:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonБудет вам... Он такой-же наш как и ваш...Вы можете написать когда нужно делать рефакторинг? А то мнения расходятся - вот второй сумасшедший Мартин пишет что рефакторингом нужно заниматься после каждого мочеиспускания (перевод неточный - старался смысл наиболее полно передать):Uncle Bob MartinThe word “refactoring” should never appear in a schedule. Refactoring is not a story or a backlog item. Refactoring is not a scheduled task. Refactoring is immediate and continuous. It’s like washing your hands in the bathroom. You always do it.И эту концепцию я вообще понять не могу: сидишь себе спокойно, пилишь фичурефакторишь, тут тебе в багтрекинт прилетает мега-срочная бага с одной из семи сред, со всякими стректрейсами, шагами воспроизведения и пр. - начинаешь смотреть в код, а в коде нихрена таких классов и методов нет - уже все отрефакторили ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 20:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonБудет вам... Он такой-же наш как и ваш...Вы можете написать когда нужно делать рефакторинг? А то мнения расходятся - вот второй сумасшедший Мартин пишет что рефакторингом нужно заниматься после каждого мочеиспускания (перевод неточный - старался смысл наиболее полно передать):Uncle Bob MartinThe word “refactoring” should never appear in a schedule. Refactoring is not a story or a backlog item. Refactoring is not a scheduled task. Refactoring is immediate and continuous. It’s like washing your hands in the bathroom. You always do it.И эту концепцию я вообще понять не могу: сидишь себе спокойно, пилишь фичурефакторишь, тут тебе в багтрекинт прилетает мега-срочная бага с одной из семи сред, со всякими стректрейсами, шагами воспроизведения и пр. - начинаешь смотреть в код, а в коде нихрена таких классов и методов нет - уже все отрефакторили В нашей команде вопрос о рефакторинге может поставить любой разработчик. Решаем и оцениваем командой. Обычно 99% мы заинтересованы в быстрой поддержке кода поэтому в большинстве случаев все согласны с необходимостью. Резкого неприятия или каких-то особо резких выступлений "против" не было. Заводить или не заводить стори в бэклоге - решаем ситуативно. Обычно (99%) рефакторинг связан с текущей разработкой и проводится и тестируется в скоупе задач спринта. Положительный поинт - перед рефакторингом обычно смотрим code-coverage. И если где-то есть непокрытие - фиксим. И только после этого рефакторим. Когда рефакторинг не делается. - во времая code-freeze, когда фиксится только баг. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 20:33 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, вы же на вопрос не ответили... давайте в вашем сообщении заменим слово "рефакторинг" фразой "вызвать шлюх", при этом связность текста не потеряется:maytonВ нашей команде вопрос о вызове шлюх может поставить любой разработчик. Решаем и оцениваем командой. Обычно 99% мы заинтересованы в быстрой поддержке кода поэтому в большинстве случаев все согласны с необходимостью. Резкого неприятия или каких-то особо резких выступлений "против" не было. Заводить или не заводить стори в бэклоге - решаем ситуативно. Обычно (99%) вызов шлюх связан с текущей разработкой и проводится и тестируется в скоупе задач спринта. Положительный поинт - перед вызовом шлюх обычно смотрим code-coverage. И если где-то есть непокрытие - фиксим. И только после этого вызываем. Когда шлюхи не вызываются. - во время code-freeze, когда фиксится только баг.что в свою очередь несколько намекает на то, что написанное к рефакторингу отношение имеет постольку-поскольку. Метрика у вас есть какая-то или нет? Процесс есть или нет? Как можно поставить вопрос о рефакторинге и что-то там согласовать, если для того чтобы что-то согласовывать нужен более-менее рабочий прототип того что в итоге получится - а это, считай, добрая половина работы? Вот вы пишите про некий техдолг, который имеет свойство накапливаться и т.п., накапливается он только по двум причинам: - кто-то лажает с code review - никакие рефакторинги здесь уже не помогут - поджимают сроки - здесь вообще нет никаких препятствий прямо с code review завести CR на переделку фичи - оно сразу будет учтено где нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 20:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов- кто-то лажает с code review - никакие рефакторинги здесь уже не помогут - поджимают сроки - здесь вообще нет никаких препятствий прямо с code review завести CR на переделку фичи - оно сразу будет учтено где нужно По поводу кого-то. Вы-же понимаете что программный продукт - это плод коллективной разработки. И блеймить кого-то или наказывать - не стоит такая задача. Code-review обычно делает обычный человек. И он тоже может быть уставшим. Озабоченным своей работой и так далее. Выделенной позиции или должности на это нету. По поводу лажает . В лучших традициях процесса - замечания по code-review носят не директивный а рекомендательный характер. Я взял это на вооружение и всегда пишу начиная с : "What about... ", "Is it possible to...". Вобщем это обычный сухой технический диалог. Я не скажу - чувак - ты облажался . Я скажу - в этом коде есть проблема . И ее надо как-то решать. Нельзя в команде говорить что кто-то лажает. Кто-то лажает - это поинт чтобы забить встречу в переговоке 1+1 и обсуждать личность человека и его карьеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2019, 21:09 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
mayton, чет жесть какая-то, вот вы утверждаете: "Рефакторинг - это просто правила хорошего тона в обществе. Это как не плевать на пол и не кидать бумажки", если рефакторинг такой полезный, то должны существовать какие-то критерии, определяющие когда его нужно делать, и способ оценки этой "полезности", про полезность я вас пока не спрашиваю: вы пишите, что с "продажей" рефакторинга заказчику возникают проблемы, а в таком случае, вы это мне точно не сможете продать, я пока спрашиваю о том, когда нужно делать рефакторинг (мнение же идолов разнятся: один пишет что нужно 10 раз в день делать, второй, что когда в проекте появляются некие "непреодолимые препятствия" - при этом предпосылки обоих мне совершенно понятны: книжек из одной страницы с единственной фразой "дебилы, наймите себе наконец-то архитектора и делайте ревью кода" много не продашь, поэтому приходится лить воду как только можно, ну а потом, естественно, продавать консалтинг дятлам, которые не в состоянии прочесть и понять прочитанное). Причем что самое удивительное, что куда более разумную и логичную идею "лучше не пропускать плохой код, чем потом рефакторить", которая в буквальном смысле соответствует вашему "это как не плевать на пол и не кидать бумажки", вы полностью отвергаете - где здесь логика? Вот давайте вернемся к злополучному коду от маэстро BDD: Код: java 1. 2. 3. 4. 5. 6. 7.
как по мне, так здесь очевидно, что такой код пропускать нельзя, для этого даже не нужно смотреть что он на самом деле делает - у него просто отвратительная конвенция наименования, т.е. взгляд ревьювера здесь должен цепляться не за "Assert.isTrue(set.containsAll(set1))", а за "set" и "set1" - просто пишем что код плохой, без всяких объяснений и идем дальше - для ревьювера это дело пары секунд, даже вникать не нужно в то что происходит в коде, как только автор кода заменит эти "set" и "set1" на "returned" и "expected", то сразу же будет видна ошибка "Assert.isTrue(returned.containsAll(expected))" - это еще пара секунд без прикладывания каких-либо умственных усилий. Теперь давайте представим, что ваши замечания к коду несут рекомендательный характер, что это значит? Означает это следующее: после того как вы спалили плохую конвенцию "set" и "set1", вам нужно двигаться дальше и пытаться понять что именно там происходит, в конкретном примере все довольно просто (хотя некоторые индивидуумы уже здесь не справляются), однако если код более-менее сложный, то вам придется как минимум выписать его себе и уже смотреть в IDE (погуглите почему, к примеру, Торвальдс постоянно обоссывает плюсы - основной пойт в том, что невозможно понять изменения основываясь на одном лишь дифе файлов, та же беда с жавой) - получается так, что там где можно было просто взять и потратить на ревью кода 10 секунд, мы будем тратить полчаса, а потом еще и рефакторить - это глупость. Дополнительный вопрос : сколько стоит поправить плохую naming convention, с учетом что у нас бывает рефлексия, сериализация, БД, внешние системы и т.д.? Едем дальше, вот мое видение на то, как тот же тест должен выглядеть: Код: java 1. 2.
Я искренне надеюсь, что не нужно объяснять почему один код лучше другого, то вот же проблема: если у вас "рефакторинг" продуктового кода вызывает некие проблемы с обоснованием необходимости, то что тогда будет происходить с кодом тестов? Я так понимаю что для поклонников [TB]DD такое вообще невообразимо: как же так, мы тестовые сценарии ставим во главу разработки, а они оказывается полная хрень. Эпикриз: техдолг возникает не сам по себе, а потому что это кто-то допускает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 07:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, не могу не согласиться со всем выше изложенным, но у проектов: а) бывают сжатые сроки б) ошибки допускают все, причем включая архитекторов в) на всех хороших специалистов не напасешься г) есть стартапы, где "команды" толком нет Всякие TDD и подобные - это быстрый старт в условиях фриланса и\или удаленки, когда business value выкатывают каждую неделю, тыркают кнопочки и продолжают. Да, в таких условиях(а,б,в и прочие - нужные несколько подчеркнуть) ценностью является сам продукт, а технический долг оставляют на потом, если взлетит. И да, очень часто, бывает критично важно выпустить продукт, чтобы им начали пользоваться, а потом уже решать проблемы по мере их поступления. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 08:38 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверин, я несколько не понимаю какую мысль вы хотите донести, ну, т.е. я понимаю, что бывают сроки и пр., но как это сказывается на разработчиках? Срыв сроков - это в первую очередь вина руководителя проекта и выше по иерархии, но никак не разработчика: руководство бонусы получает, а разработчик сидит на фиксированной ставке, вот пусть руководство за сроки, техдолг и пр. отвечает. Зачем вы стартапы в пример приводите - вообще непонятно, абсолютное большинство стартапов состоит из долбоебовлюдей, задача которых состоит в освоении денег инвестора, чуть более чем полностью. Вы в скольких стартапах участвовали? одной руки хватит чтобы пересчитать? Поймите простую вещь: то что пишут в книжках, оно априори рассчитано на текущую конъюнктуру - иначе книжку не продать, другими словами эти книжки рассчитаны на команды, в которых бОльшая часть разработчиков - люди, с несколько более смуглым оттенком кожи чем ваш, и в таких командах рубить говнокод на корню довольно плохая затея, потому что завтра вам попадется негр-трансвестит, который будет утверждать, что его код зарубили только из-за его мировоззрения (тесты-то все зеленые!), в следствие чего одни понятия (код изначально должен быть хорошим) заменяются другими (весь код плохой, поэтому нужно его постоянно рефакторить) - это неправильно, рекомендую вам купить любую такую книжку, потом сжечь, обоссать и выкинуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:21 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, я пишу о том, что не бывает проектов(а если они и есть, я ни разу их не видел), где не было б технического долга вовсе. А раз таких проектов нет, то ценность совета: просто все сделайте правильно и рефакторинг не нужен будет - падает на порядок ниже советов вроде: как писать код, чтобы его потом можно было б отрефакторить в сжатые сроки. Другими словами, от "рефакторить" никуда не деться, а значит: [Андрей Панфиловкнижек из одной страницы с единственной фразой "дебилы, наймите себе наконец-то архитектора и делайте ревью кода" много не продашь[/quote] работает, ну мягко говоря, даже не в 10% случаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:36 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, я пишу о том, что не бывает проектов(а если они и есть, я ни разу их не видел), где не было б технического долга вовсе. А раз таких проектов нет, то ценность совета: просто все сделайте правильно и рефакторинг не нужен будет - падает на порядок ниже советов вроде: как писать код, чтобы его потом можно было б отрефакторить в сжатые сроки. Другими словами, от "рефакторить" никуда не деться, а значит: Андрей Панфилов книжек из одной страницы с единственной фразой "дебилы, наймите себе наконец-то архитектора и делайте ревью кода" много не продашь работает, ну мягко говоря, даже не в 10% случаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловЕдем дальше, вот мое видение на то, как тот же тест должен выглядеть: Код: java 1. 2.
Функциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет и не уменшает понимания к коду теста. Хотя за использования Хамкрест я делаю плюсик. Я-бы оставил тест как есть в первом варианте. При прочих равных условиях если стоит вопрос менять или не менять тест я выбираю - не менять. Тест - это закон. Закон по которому должен работать код. И надо иметь очень много освнований чтоб менять сам тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:51 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинАндрей Панфилов, я пишу о том, что не бывает проектов(а если они и есть, я ни разу их не видел), где не было б технического долга вовсе. А раз таких проектов нет, то ценность совета: просто все сделайте правильно и рефакторинг не нужен будет - падает на порядок ниже советов вроде: как писать код, чтобы его потом можно было б отрефакторить в сжатые сроки.Мы говорим о разных вещах, я изначально спрашивал: как определить когда нужно проводить рефакторинг, единственный ответ, который я получил звучал так: ну вот у нас тут члены команды на сходке предлагают что-то отрефакторить, а мы потом думаем нужно это или нет - для меня это звучит несколько дико, по следующими причинам: - складывается впечатление что у продукта нет владельца, потому что предложения о переделке исходит от кого-то "со стороны" - точно также складывается впечатление, что члены команды вместо того чтобы закрывать текущие CR только и занимаются тем, что выискивают чтобы такого отрефакторить по моему мнению: - рефакторинг может потребоваться в случаях: -- мы закрываем баги производительности или внедряем фичу, которую до этого вообще никак не предвидели -- нужно сделать срочно-пресрочно: сразу на ревью заводим задачу на рефакторинг - в остальных случаях, когда мы рефакторим код, который был закоммичен совсем недавно - это дикость ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 11:06 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonАндрей ПанфиловЕдем дальше, вот мое видение на то, как тот же тест должен выглядеть: Код: java 1. 2.
Функциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет и не уменшает понимания к коду теста. Хотя за использования Хамкрест я делаю плюсик. Я-бы оставил тест как есть в первом варианте. При прочих равных условиях если стоит вопрос менять или не менять тест я выбираю - не менять. Тест - это закон. Закон по которому должен работать код. И надо иметь очень много оснований чтоб менять сам тест.Есть большая разница в поведении теста: в одном случае он просто пишет "ничего не работает", а потом вы идете и начинаете при помощи отладчика выяснять что же на самом деле ему не понравилось, во втором случае он пишет что именно пошло не так - т.е. какие данные ожидались и какие пришли (у нас например тесты на селениуме идут 3 часа, там и видосики записываются, и сетевой трафик, и скриншоты делаются - исправления можно сделать особо не вникая в код). В целом же я с вами согласен в том плане, что переписывать такие тесты - дурная затея, их проще в таком виде не пропускать вообще - опять же, тесты должны писать профессионалы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 11:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 11:29 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Лет 5 назад один архитектор предложил мне подход к разработке. Вы берете текст user story. И копи-пастите его в код. Исходник у вас - окрашивается в красный цвет. Но не беда. Вы хладнокровно. Потихоньку выделяете в нем verbs, делаете методы. Делаете основное ветвление (99% юзер стори базируется на веточках или кейсах типа если пришел платеж такой-то то делаем тото и т.д). Далее вы рефакторите его по правилам Java, сохраняя максимально семантику английского текста. Здесь в помошь будет шаблон Builder. И далее в какой-то момент - вуаля. У вас - работающий код который имеет очень точное отображение на бизнес-стори. Реально. Здесь - главное не скатиться в технократию и не делать в if (...) цепочку предикатов. Надо сохранить английский текст. В этом есть принципиальная разница например в сравнении с С++ разработкой где принято сокращать переменные до безсмыслиц со знаком подчеркивания или не дай бох венгерских нотаций. Я попробовал эту методику и предлагаю вам всем. Попробуйте когда зайдет новая user story, воплотить этот подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 11:41 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфиловрекомендую вам купить любую такую книжку, потом сжечь, обоссать и выкинуть. Всё же не стоит так категорично подходить к объективным свойствам мироздания. Люди неидеальны. Это факт. Отсюда много следствий. Само по себе переименование переменных поможет лишь в каких-то процентах, а все остальные проценты надо закрывать другими методами. Другие методы во многом упираются во всё тот же миропорядок, когда люди не только неидеальны, но и постоянно меняются, плюс постоянно меняется ветер в голове начальства, а помимо ветра их "технический долг" тоже имеет свойство не рассасываться до момента ухода в глубокий минус. В целом надо искать какой-то компромисс между "как надо" и "что реально есть". Хотя я поддерживаю идею бить по рукам на форумах за неумелые предложения, но, например, так же бить по рукам в коллективе разработчиков - ведёт к текучке кадров и застою оставшихся в привычных для них нишах. И это, естественно, дополняется застоем сверху. Ведь почему надо освоить бюджет инвестора? Да потому, что инвестор верит, что его деньги здесь будут расти. Не кто-то его заставляет всё отдать, а он сам, по глупости или в надежде на чудо или ещё как-то необоснованно, всё отдаёт. И когда вот так отдают, ну как могут с такой неэффективностью сочетаться реально эффективно организующие процесс разработчики? Любой сопляк заявит перед инвестором "да можно в 100 раз круче сделать!!!" и инвестор поверит, потому что хочет верить. А опытные приведут лишь технические аргументы против, чего инвестор понимать не обучен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonФункциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет и не уменшает понимания к коду теста. Он сокращает код до двух строчек, что улучшает читаемость, а значит и понимание кода. Хотя можно и без функционального стиля в две строчки уложить. Но вероятно, что строчки будут длиннее. А вообще однозначно лучше напрячь разработчиков на хотя бы понимание функционального стиля, что бы прочитать чужое могли, ну и может иногда своё сократить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:28 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЛет 5 назад один архитектор предложил мне подход к разработке. Там, где простым является текстовое описание, столь же простой является и программная реализация. Но если за некоторым словом "сделать" скрываются бездны смыслов, то такое описание нельзя назвать простым, оно просто неполное, и тогда никакая программная реализация "в буквальном смысле" не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:35 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonВы берете текст user story. И копи-пастите его в код. Исходник у вас - окрашивается в красный цвет. Но не беда. Вы хладнокровно. Потихоньку выделяете в нем verbs, делаете методы. Делаете основное ветвление (99% юзер стори базируется на веточках или кейсах типа если пришел платеж такой-то то делаем тото и т.д). Далее вы рефакторите его по правилам Java, сохраняя максимально семантику английского текста. Здесь в помошь будет шаблон Builder. И далее в какой-то момент - вуаля. У вас - работающий код который имеет очень точное отображение на бизнес-стори. Реально. Здесь - главное не скатиться в технократию и не делать в if (...) цепочку предикатов. Надо сохранить английский текст.Теперь давайте спустимся с небес на землю... вот то что пишут адепты TDD: Three Laws of TDD1. You must write a failing test before you write any production code. 2. You must not write more of a test than is sufficient to fail, or fail to compile. 3. You must not write more production code than is sufficient to make the currently failing test pass. внимание вопрос: я думаю ни у кого нет сомнений, что тест должен тестировать работу некого API, соответственно без существования предмета тестирования, т.е. API, тест будет не то что падать, он даже компилироваться не будет, как разрешить ситуацию в этом случае? получается что API-таки нужно сделать раньше теста, но как же тогда быть с "You must write a failing test before you write any production code"? или нужно положить болт на все удобства и гонять тесты через рефлексию? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:47 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфиловвнимание вопрос: я думаю ни у кого нет сомнений, что тест должен тестировать работу некого API, соответственно без существования предмета тестирования, т.е. API, тест будет не то что падать, он даже компилироваться не будет, как разрешить ситуацию в этом случае? получается что API-таки нужно сделать раньше теста, но как же тогда быть с "You must write a failing test before you write any production code"? или нужно положить болт на все удобства и гонять тесты через рефлексию? есть третий, промежуточный или вариация на тему. Одна вариация: пишется тест и он не компилируется. Потом добавляется интерфейс и методы(которые не компилируются), а потом все это обрастает логикой(имплементацией). Другая вариация: есть некое ядро разрабов-архитекторов, которые создают "скелет" приложения исключительно из интерфейсов, а имплементацию уже спускают на tdd отдел. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555maytonФункциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет и не уменшает понимания к коду теста. Он сокращает код до двух строчек, что улучшает читаемость, а значит и понимание кода. Хотя можно и без функционального стиля в две строчки уложить. Но вероятно, что строчки будут длиннее. А вообще однозначно лучше напрячь разработчиков на хотя бы понимание функционального стиля, что бы прочитать чужое могли, ну и может иногда своё сократить. Здесь - самый лучший кейс - голосование внутри команды. Если команда решит что ФП стиль в данном случае лучше то я не буду спорить. Моё мнение. Хороший тест - неизменяемый тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:57 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555maytonЛет 5 назад один архитектор предложил мне подход к разработке. Там, где простым является текстовое описание, столь же простой является и программная реализация. Но если за некоторым словом "сделать" скрываются бездны смыслов, то такое описание нельзя назвать простым, оно просто неполное, и тогда никакая программная реализация "в буквальном смысле" не поможет. Приведите пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonВы берете текст user story. И копи-пастите его в код. Исходник у вас - окрашивается в красный цвет. Но не беда. Вы хладнокровно. Потихоньку выделяете в нем verbs, делаете методы. Делаете основное ветвление (99% юзер стори базируется на веточках или кейсах типа если пришел платеж такой-то то делаем тото и т.д). Далее вы рефакторите его по правилам Java, сохраняя максимально семантику английского текста. Здесь в помошь будет шаблон Builder. И далее в какой-то момент - вуаля. У вас - работающий код который имеет очень точное отображение на бизнес-стори. Реально. Здесь - главное не скатиться в технократию и не делать в if (...) цепочку предикатов. Надо сохранить английский текст.Теперь давайте спустимся с небес на землю... вот то что пишут адепты TDD: Three Laws of TDD1. You must write a failing test before you write any production code. 2. You must not write more of a test than is sufficient to fail, or fail to compile. 3. You must not write more production code than is sufficient to make the currently failing test pass. внимание вопрос: я думаю ни у кого нет сомнений, что тест должен тестировать работу некого API, соответственно без существования предмета тестирования, т.е. API, тест будет не то что падать, он даже компилироваться не будет, как разрешить ситуацию в этом случае? получается что API-таки нужно сделать раньше теста, но как же тогда быть с "You must write a failing test before you write any production code"? или нужно положить болт на все удобства и гонять тесты через рефлексию? Я прошу прощения. Я описывал методику не для написания тестов. А для написания основной бизнес-логики. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 13:00 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинОдна вариация: пишется тест и он не компилируется. Потом добавляется интерфейс и методы(которые не компилируются), а потом все это обрастает логикой(имплементацией). Другая вариация: есть некое ядро разрабов-архитекторов, которые создают "скелет" приложения исключительно из интерфейсов, а имплементацию уже спускают на tdd отдел.Первый вариант мало к чему приводитбудет означать что мы еще несколько недель будем эту нетленку рефакторить, второй выглядит более разумно (ну если у нас к описанию сценариев, API и пр. есть еще всякие разные ER- и UML-диаграммы), однако получается так, что на нашей галере есть гребцы, которых заставляют писать код используя "несколько неочевидный" подход, а есть белые надсмотрщики, которые работают совсем не по TDD ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 13:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonalex55555Он сокращает код до двух строчек, что улучшает читаемость, а значит и понимание кода. Хотя можно и без функционального стиля в две строчки уложить. Но вероятно, что строчки будут длиннее. А вообще однозначно лучше напрячь разработчиков на хотя бы понимание функционального стиля, что бы прочитать чужое могли, ну и может иногда своё сократить. Здесь - самый лучший кейс - голосование внутри команды. Если команда решит что ФП стиль в данном случае лучше то я не буду спорить. голосованием решения принимаете? обычно, на одного синьора всегда несколько падаванов, некомпетентость всегда победит, количеством или вас два с половиной человека в команде? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 13:27 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonпропущено... Здесь - самый лучший кейс - голосование внутри команды. Если команда решит что ФП стиль в данном случае лучше то я не буду спорить. голосованием решения принимаете? обычно, на одного синьора всегда несколько падаванов, некомпетентость всегда победит, количеством или вас два с половиной человека в команде? А все синьоры? Мне показалось что ты слегонца потралливаешь. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 13:44 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonказинакпропущено... голосованием решения принимаете? обычно, на одного синьора всегда несколько падаванов, некомпетентость всегда победит, количеством или вас два с половиной человека в команде? А все синьоры? Мне показалось что ты слегонца потралливаешь. Не? нет непонятно как можно в технических вопросах голосовать обычно, кто грамотней к тому и прислушаются ну или по принципу: я начальник - ты дурак ... хотя... в каждом домике свои гомики, нравится голосовать, голосуйте ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 13:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonпропущено... А все синьоры? Мне показалось что ты слегонца потралливаешь. Не? нет непонятно как можно в технических вопросах голосовать обычно, кто грамотней к тому и прислушаются ну или по принципу: я начальник - ты дурак ... хотя... в каждом домике свои гомики, нравится голосовать, голосуйте Твой вариант какой? Главный синьор всё решил? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:02 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonГлавный синьор всё решил? склонен согласится. можно обсудить, но решение должен принять один, самый самый, какой уж есть. голосование ничего не даст - все кругом со своим мнением, причем чем больше стаж, тем больше гонор. представь, что у тебя в команде 10 вадь и два тебя. представил? вздрогнул? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:11 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
chpashamaytonГлавный синьор всё решил? склонен согласится. можно обсудить, но решение должен принять один, самый самый, какой уж есть. голосование ничего не даст - все кругом со своим мнением, причем чем больше стаж, тем больше гонор. представь, что у тебя в команде 10 вадь и два тебя. представил? вздрогнул? неуютно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинОдна вариация: пишется тест и он не компилируется. Потом добавляется интерфейс и методы(которые не компилируются), а потом все это обрастает логикой(имплементацией). Другая вариация: есть некое ядро разрабов-архитекторов, которые создают "скелет" приложения исключительно из интерфейсов, а имплементацию уже спускают на tdd отдел.Первый вариант мало к чему приводитбудет означать что мы еще несколько недель будем эту нетленку рефакторить, второй выглядит более разумно (ну если у нас к описанию сценариев, API и пр. есть еще всякие разные ER- и UML-диаграммы), однако получается так, что на нашей галере есть гребцы, которых заставляют писать код используя "несколько неочевидный" подход, а есть белые надсмотрщики, которые работают совсем не по TDD второй вариант - уже давно стандарт, т.к. к текучке гребцов привыкли все, а белых господ на переправе не меняют. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonказинакпропущено... нет непонятно как можно в технических вопросах голосовать обычно, кто грамотней к тому и прислушаются ну или по принципу: я начальник - ты дурак ... хотя... в каждом домике свои гомики, нравится голосовать, голосуйте Твой вариант какой? Главный синьор всё решил? везде так хз чо у вас за проект такой, что вы там собираетесь и голосуете по всем проблемам ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинвторой вариант - уже давно стандарт, т.к. к текучке гребцов привыкли все, а белых господ на переправе не меняют.Прекрасно, исходя всего лишь из первого постулата TDD мы смогли определить его целевую аудиторию ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:38 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonпропущено... Твой вариант какой? Главный синьор всё решил? везде так хз чо у вас за проект такой, что вы там собираетесь и голосуете по всем проблемам Рад что у вас есть главный архитектор. Но я надеюсь что вы его не дёргаете по пустякам. В противном случае я ему очень сочувствую. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:40 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonказинакпропущено... везде так хз чо у вас за проект такой, что вы там собираетесь и голосуете по всем проблемам Рад что у вас есть главный архитектор. Но я надеюсь что вы его не дёргаете по пустякам. В противном случае я ему очень сочувствую.само слово "архитектор" - это как пук в лужу за ним ничего не стоит только пузырьки и недолгая вонь... архитектором себя может назвать кто угодно програмер - архитектор программного обеспечения сисадмин - технический архитектор, аналитег - функциональный архитектор если для вас ето слово имеет магический смысл, то сочувствую... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 17:35 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Если смотреть не в вымышленный мир, а реальный. Выделенная роль архитектора, может проекту вообще ничего не дать. Не раз встречал архитекторов, которые разучились код писать. Процессы ревью кода зачастую формальность, которая не дает высокого качества кода. Тут нужно уметь критиковать и нужно уметь воспринимать критику. Мне нравится тезис. Проекты живут до тех пор пока код не деградирует настолько, что проект легче переписать чем поддерживать. Особенно проблемы начинаются, когда технический долг перерастает в техническую ипотеку. Код деградирует всегда, приходят новые люди, которые не разобравшись в моделях созданных прошлыми сотрудниками, начинают рядом строить свои модели. Для себя я стараюсь пользоваться правилом. После моего коммита код должен находиться в лучшем состоянии, чем он был в начале работы. Поэтому рефакторинг это естественная и ежедневная задача, которой я занимаюсь. Попытка отрефакторить код мне помогает восстанавливать модели, которые были созданы другими. Помогает лучше понять почему было сделано именно так, а не иначе. Опять же когда идет фаза сдачи релиза и код заморожен, иногда приходится рукожопить и костылить. Но такова селяви (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 19:36 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonпропущено... Рад что у вас есть главный архитектор. Но я надеюсь что вы его не дёргаете по пустякам. В противном случае я ему очень сочувствую.само слово "архитектор" - это как пук в лужу за ним ничего не стоит только пузырьки и недолгая вонь... архитектором себя может назвать кто угодно програмер - архитектор программного обеспечения сисадмин - технический архитектор, аналитег - функциональный архитектор если для вас ето слово имеет магический смысл, то сочувствую... Да кто-же ты? В какой эпохе ты живешь? Зайди в LinkedIn! Там есть вакансии и должности с названием Software Architect! Зайди прочти-жеж! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 19:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинАндрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо.Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 09:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинАндрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо.Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг? Добавлю что самие жёсткие рефакторинги мы проводили просто после того как прилетали дополнительные BR от заказчика. Яркий пример - Биржевая система состоит из трех уровней. Балансировщик нагрузки. Процессинг. И связи с торговыми площадками. Изначально новый функционал мы внедрили в уровень связей с площадками. Но когда поняли что нужен доступ к справочникам - потребовался перенос части логики в уровень процессинга. Перено повлёк за собой изменение кода + рефакторинг. Такой был дизайн. Иногда просто переделать код без рефакторинга невозможно. Комплексити высок. Вообще лично для меня 80% активности разработки - это борьба со сложностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 10:06 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonДобавлю что самие жёсткие рефакторинги мы проводили просто после того как прилетали дополнительные BR от заказчика. Яркий пример - Биржевая система состоит из трех уровней. Балансировщик нагрузки. Процессинг. И связи с торговыми площадками. Изначально новый функционал мы внедрили в уровень связей с площадками. Но когда поняли что нужен доступ к справочникам - потребовался перенос части логики в уровень процессинга. Перено повлёк за собой изменение кода + рефакторинг. Такой был дизайн. Иногда просто переделать код без рефакторинга невозможно. Комплексити высок. Вообще лично для меня 80% активности разработки - это борьба со сложностью.Я вас тоже не понимаю. Вы, конечно, не особо любитель выкладывать код, но давайте, покажите что там да как было и стало, мы посмотрим (по пути обоссым архитектора ) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 10:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Я вас умоляю... Я нарушу кучу соглашений. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 11:12 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЯ вас умоляю... Я нарушу кучу соглашений.Ну а как мы тогда узнаем, действительно там рефакторинг нужен или просто у вас команда про IoC не в курсе? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 11:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonЯ вас умоляю... Я нарушу кучу соглашений.Ну а как мы тогда узнаем, действительно там рефакторинг нужен или просто у вас команда про IoC не в курсе? Каким образом IoC избавляет от рефакторинга? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 11:47 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonКаким образом IoC избавляет от рефакторинга?Я даже слов не могу подобрать чтобы ответить. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 11:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Тоесть... тема исчерпана. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 11:56 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonТоесть... тема исчерпана.Для себя можете считать что исчерпана, поскольку вы "включили индуса". Объясняю: - ваш код ничего не стоит, просто потому что он никому не нужен - умение набросать простенький код, указывающий на проблему - это тоже своего рода показатель зрелости разработчика (у индюков в большинстве случаев дела обстоят примерно так: они вендору описать проблему нормально не могут, потому что весь код показывать не хотят, а набросать тестовый сценарий не в состоянии, в итоге у вендора такие обращения висят либо годами, либо проактивно закрываются, а код индусов обрастает костылями, а потом начинается рефакторинг и все что вы проповедуете ), время на это несоизмеримо мало в сравнении с тем, сколько вы здесь просиживаете постя бессмысленные комментарии ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 12:26 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Это капец какой-то. Яже тебе намекнул на NDA. Что ты хотел увидеть? Что мы неправильно разбили софт на компоненты? Да мы и не делали этого. Ибо не знали что ТАК БУДТЕТ. Да дорогой мой друг. Мы наперед не знали какие будут дополнения к BR. И я конечно же внутренне тебе завидую и восхищаюсь что у тебя таких ситуаций не бывает. У тебя всё всегда правильно задизайнено. Дай бох. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 12:36 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЭто капец какой-то. Яже тебе намекнул на NDA. Что ты хотел увидеть? Что мы неправильно разбили софт на компоненты? Да мы и не делали этого. Ибо не знали что ТАК БУДТЕТ. Да дорогой мой друг. Мы наперед не знали какие будут дополнения к BR.Ну почему вы считаете что я намеков не понимаю? я прекрасно понял что набросать пару строк кода вы не в состоянии, здесь все понятно. Дальше, например, Sergunka пишет в защиту рефакторинга: SergunkaMaintainable code is code that exhibits high cohesion and low coupling. Cohesion is a measure of how related, readable and understandable code is. ... Maintainability is itself a measure of the ease to modify code, higher maintainability means less time to make a change.Не знаю как насчет "high cohesion", но "low coupling" - это непосредственная фича IoC/DI, и после этого вы меня спрашиваете какое отношение IoC имеет к ненужности рефакторинга? самому не стыдно? maytonИ я конечно же внутренне тебе завидую и восхищаюсь что у тебя таких ситуаций не бывает. У тебя всё всегда правильно задизайнено. Дай бох.Работа разработчика заключается первым делом в применении мозга, а не в бездумном кодинге, в следствие чего мне, к примеру, не свойственно принимать все безумные идеи на веру. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 12:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonПриведите пример. Заказчик: авторА вот здесь сделайте кнопочку, что бы она отправляла все данные в налоговую. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:00 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакнекомпетентость всегда победит Можно выстраивать многоуровневую систему. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:01 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакесли для вас ето слово имеет магический смысл, то сочувствую... Ну понятно, для тебя только твои мысли умные. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:02 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonКаким образом IoC избавляет от рефакторинга?Я даже слов не могу подобрать чтобы ответить. Вообще было бы хорошо, если слова сумели бы подобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:05 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555Вообще было бы хорошо, если слова сумели бы подобраться.зачем? из прочитанного я понял, что народ IoC использует просто потому что так модно (когда-то давно было модно apache-commons пихать во все щели), а то на самом деле какие возможности он предоставляет никому не интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:08 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловНе знаю как насчет "high cohesion", но "low coupling" - это непосредственная фича IoC/DI, и после этого вы меня спрашиваете какое отношение IoC имеет к ненужности рефакторинга? Любую фичу можно применить ограниченно. Например вставить IoC в одном уровне, что всё равно не позволит задействовать этот принцип из другого, банально библиотеки разные, возможно даже проекты разделены. Архитектура же пытается минимизировать подобные издержки в будущем, но поскольку будущее весьма расплывчато, нередко можно промахнуться. Опыт позволяет учитывать больше, но и он не идеал. И уж тем более если мы будем концентрироваться на "качестве кода", а не архитектуре (то есть станем обсуждать простейшие паттерны вместо общих архитектурных решений), то мы и получим "качественный" уровень, а вот сумма уровней будет некачественной. IoC это уровень не самый высокий, где-то средний между проектом и классом. Важнее, безусловно, проект. Класс - на самом последнем месте. Но концентрироваться любят на качестве кода именно в классах. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфиловзачем? Ну да, уровень читателе не всегда высокий, но как-то коротко сформулировать возражение - это правильная практика. А уход от формулировки "по делу" обычно означает либо игнор оппонента, либо отсутствие умения кратко сформулировать. Вы ведь не игнорируете Майтона? Способны кратко сформулировать? Значит в вашем случае вариант номер три - лень. Нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:19 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555Любую фичу можно применить ограниченно. Например вставить IoC в одном уровне, что всё равно не позволит задействовать этот принцип из другого, банально библиотеки разные, возможно даже проекты разделены...Вы тезис о том, что IoC снижает потребности в рефакторинге хотите дополнить или оспорить? alex55555Ну да, уровень читателе не всегда высокий, но как-то коротко сформулировать возражение - это правильная практика. А уход от формулировки "по делу" обычно означает либо игнор оппонента, либо отсутствие умения кратко сформулировать. Вы ведь не игнорируете Майтона? Способны кратко сформулировать? Значит в вашем случае вариант номер три - лень. Нет?Я в первую очередь пытаюсь получитьстроить свое мнение на каких-то более-менее измеримых вещах, т.е.: - рефакторинг нужно делать тогда, когда команда проголосовала - это изменить нельзя (читайте про шлюх ) - а у нас вот в проекте под NDA (наверное делаем его для NSA) постоянно происходит особо жесткий рефакторинг - это тоже измерить нельзя когда мы не можем что-либо измерить вместо нормального диалога получается спор, подобный тому, как спорят дети в песочнице: а у меня папа боксер, попробуй что-то возразить. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 13:36 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловВы тезис о том, что IoC снижает потребности в рефакторинге хотите дополнить или оспорить? Если непосредственно о данном паттерне, то иногда он просто мешает. Для его эффективной работы нужно сочетание таких факторов, как простота вызывающей стороны, качество её реализации, качество её документирования, качество обучения пользователей (программистов, "оборачиваемых" предлагаемой средой), качество коммуникаций как в отдельных командах (среда/обработчики событий), так и между ними. В общем рефакторингом здесь можно заниматься, но если не решены выше показанные проблемы, то весь рефакторинг уйдёт в свисток. Андрей ПанфиловЯ в первую очередь пытаюсь получитьстроить свое мнение на каких-то более-менее измеримых вещах Вот китайцы тоже умеют измерять. Они давно этому научились. Считают по головам - этот кодит? Хорошо. А этот? Этот думает. Так он лентяй! Все кодят, а он, понимаете ли, думает (бездельничает)! В итоге китайское качество нам всем хорошо известно. На разработку влияют много факторов. Можно править измеримые "по простому", но тогда опять пар движется больше в направлении свистка. И можно работать со сложной системой, что-то измеряя, и что-то просто направляя примерно в сторону хорошего результата. В первом случае измерения скатываются в аджайл-скачки и китайский подход "некогда думать, прыгать надо". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 11:51 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинАндрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо.Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг? а я решительно не понимаю вас, потому что вы пишите вещи как-будто и правильные, но и одновременно как-будто живете на поляне с единорогами. Все знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг. У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 11:57 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 12:15 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов,Вы тезис о том, что IoC снижает потребности в рефакторинге хотите дополнить или оспорить? Давайте посмотрим, как нам помогает ioc в проектах. До ioc код выглядит вот так: Код: java 1. 2. 3.
После возмущений отдела тестирования код выглядит так: Код: java 1. 2. 3. 4. 5. 6. 7.
Код: java 1. 2. 3. 4.
После код ревью и проверки на чек стайл код выгляди так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Внимание, вопрос!? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 12:29 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинАндрей Панфиловпропущено... Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг? а я решительно не понимаю вас, потому что вы пишите вещи как-будто и правильные, но и одновременно как-будто живете на поляне с единорогами. Все знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг. У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает? Я-бы просто добавил что нет единой точки зрения на рефакторинг даже среди двух синьоров. Да и нельзя обсуждать сферический рефакторинг. Это всегда - в контексте задачи и будущих возможных изменений. И как можно вообще "со слов" сделать суждение о качестве кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 12:40 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверин После код ревью и проверки на чек стайл код выгляди так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Прямо в таком виде и прошел ревью? Вроде по канону так должно быть: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
ОзверинВнимание, вопрос!?Не знаю в чем у вас вопрос, идея была показать мощь DI на одном классе? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 12:56 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, моя идея, как di, ioc и сила слова помогут в данном случае что-либо отрефакторить, если из конструктора этого класса надо все равно убрать интерфейс класса b? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 13:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Как же быть проектам без DI? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
забыл никКак же быть проектам без DI? да нито от di не отказывается. Просто тут мнение вдруг появилось, что если есть di, то рефакторинг настолько прост становится, что можно с закрытыми глазами делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:33 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинзабыл никКак же быть проектам без DI? да нито от di не отказывается. Просто тут мнение вдруг появилось, что если есть di, то рефакторинг настолько прост становится, что можно с закрытыми глазами делать. Да я понимаю, то риторический вопрос был) По иронии судьбы на текущем проекте начали с рефакторинга - убрали DI :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинмоя идея, как di, ioc и сила слова помогут в данном случае что-либо отрефакторить, если из конструктора этого класса надо все равно убрать интерфейс класса b?Если вам принципиально не нравится наличие конструктора в жава коде (хотя проблемы нет), можете оломбочить проект и писать @RequiredArgsConstuctor, пойнт же в том, что без DI при добавлении новой зависимости в класс придется еще и ответную часть переделывать, а не просто в одном классе добавить еще одно поле и возможно поменять конструктор. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:39 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинВсе знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг. У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево). Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 14:59 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
забыл никКак же быть проектам без DI?код писать более аккуратно и функциональность наперед продумывать, а не как в TDD: пишем только то что требует тестовый сценарий, а потом постоянно рефакторим. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:01 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинВсе знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг. У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево). Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи. так где тот самый проект, который живет без рефакторинга? По вашим словам, надо всего лишь а) нанять грамотного архитектора б) хороших специалистов в) просто заставить людей перестать ошибаться Где? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:07 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинмоя идея, как di, ioc и сила слова помогут в данном случае что-либо отрефакторить, если из конструктора этого класса надо все равно убрать интерфейс класса b?Если вам принципиально не нравится наличие конструктора в жава коде (хотя проблемы нет), можете оломбочить проект и писать @RequiredArgsConstuctor, пойнт же в том, что без DI при добавлении новой зависимости в класс придется еще и ответную часть переделывать, а не просто в одном классе добавить еще одно поле и возможно поменять конструктор. мне принципиально непонятна связь наличия ioc и di с тем, что рефакторинг необходим? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:09 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинВсе знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг. У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево). Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи. насчет спринга, в котором нет "ничего ломающего" при рефакторинге..я конечно, не могу просмотреть все эти коммиты, но такое ощущение, что вы последние 5-7 лет не со спрингом работаете, а где то опять же на поляне с единорогами. Смореть надо на "критикал" баги. Их там много. Если смотреть так - сквозь пальцы на коммты с рефакторингом(даже если условиться, что сюда они вошли все), то даже в этом списке достаточно вещей с перемещением классов, изменением логики, созданием новых классов, а значит значительным изменением логики. Почему же это не рефакторинг-рефакторинг? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:21 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинАндрей Панфиловпропущено... Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево). Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи. так где тот самый проект, который живет без рефакторинга? По вашим словам, надо всего лишь а) нанять грамотного архитектора б) хороших специалистов в) просто заставить людей перестать ошибаться Где? +1 Мда.. Звучит как хорошая мечта. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 15:45 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
имхо спор идет о следствиях юнит тесты и рефакторинг - это следствие того, что ооп стали пихать везде ООП оч уместно в разработке библиотек UI компонентов по опыту, дельфи, дотнет, реакт - это классные библиотеки UI компонентов а в бд или бэкенде в вебе ООП нахер не надо в бд - реляционные операции а в бэкенде - request-response, т.е. последовательная логика, и реализация в императивном стиле как раз к месту имхо, ООП в базе или в бэкенде - это как на лыжах по асфальту: "можно, но зачем?" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 18:05 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
В бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO. Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите. Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП вообще? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 18:11 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonВ бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO. Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите. Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП вообще? бгг я когда-то сам так писал JSP и JDBC - и никаких орм никогда не видел смысла в том, чтобы вытащить данные селектом в resulteset, а потом, отфильтровать одну запись и сделать из результата класс для active record а потом создать коллекцию, в которую запихать несколько active records нахера? если в резалтсете и так набор записей ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 18:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonВ бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO. Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите. Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП вообще? бгг я когда-то сам так писал JSP и JDBC - и никаких орм никогда не видел смысла в том, чтобы вытащить данные селектом в resulteset, а потом, отфильтровать одну запись и сделать из результата класс для active record а потом создать коллекцию, в которую запихать несколько active records нахера? если в резалтсете и так набор записей Наиболее красивую интеграцию мира ООП и баз данных я видел в InterSystems Cache. Там всё было - native. Я даже готовился на разраба этой системы в двухтысячных. Но вакансия cгорела. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 18:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакmaytonВ бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO. Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите. Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП вообще? бгг я когда-то сам так писал JSP и JDBC - и никаких орм никогда не видел смысла в том, чтобы вытащить данные селектом в resulteset, а потом, отфильтровать одну запись и сделать из результата класс для active record а потом создать коллекцию, в которую запихать несколько active records нахера? если в резалтсете и так набор записей вам это с вадей обсудить. На вопрос - очень простой ответ - читаемость. Другой вопрос, что ооп в яве пошло немноог по иному пути и мне больше заходит ddd в плане к подходу именования и сущностей, объединения свойств и так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 08:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинмне принципиально непонятна связь наличия ioc и di с тем, что рефакторинг необходим?Ну мне тоже непонятна необходимость рефакторинга при наличии IoC/DI - кода меньше, зависимости через весь стэк таскать не нужно, просто делаем точечные изменения там где нужно и все. Озвериннасчет спринга, в котором нет "ничего ломающего" при рефакторинге..я конечно, не могу просмотреть все эти коммиты, но такое ощущение, что вы последние 5-7 лет не со спрингом работаете, а где то опять же на поляне с единорогами. Смореть надо на "критикал" баги. Их там много. Если смотреть так - сквозь пальцы на коммты с рефакторингом(даже если условиться, что сюда они вошли все), то даже в этом списке достаточно вещей с перемещением классов, изменением логики, созданием новых классов, а значит значительным изменением логики. Почему же это не рефакторинг-рефакторинг?Чет не то, вы просили промер проекта где не рефакторят каждый раз после похода в уборную - я вам его привел, вы же начинаете привередничать в духе, а вот смотрите: там баги в проекте, да еще за полтора года аж целый класс из одного модуля в другой перенесли. Для продуктовой разработки рефакторинг не свойственен, более того, более другим языкам рефакторинг тоже не свойственен, вы же обчитались туалетного чтива и несете гнилую идею в массы, а в вашем чтиве прямым текстом написано про целевую аудиторию: разработчик - дурак и с первого раза код написать не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 09:41 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, а сколько тысяч строк в вашем проекте? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 10:39 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, я просил проект, где нет рефакторинга, вы показали пример, где он есть. По-моему, это у вас разногласия с вашими единорогами...У вас какая-то сортирная тематика пошла: то обоссать архитектора, то в туалет сходить за рефакторингом. Все, что от вас требуется, это признать, что в мире фактически нет проектов более или менее крупных, которые обходятся без рефакторинга ... Ну если вы такоие знаете, я тут подожду, чтобы вы привели пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 10:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинДо ioc код выглядит вот так: ... После код ревью и проверки на чек стайл код выгляди так: Это не IoC. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 10:54 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555ОзверинДо ioc код выглядит вот так: ... После код ревью и проверки на чек стайл код выгляди так: Это не IoC. срочно расскажите, что это. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 10:56 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
какое интересное перевоплощение из тестирования в рефакторинг ))) из серии что было раньше "рефакторинг" или "тестирование"? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 10:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonа сколько тысяч строк в вашем проекте?Вы опять с индусскими метриками? Вот простой пример: mayton Код: java 1. 2. 3. 4. 5. 6.
Ваше решение неправильное просто потому что вы условие не прочли - условные переходы использовать нельзя. Подсказка как сравнить число с 0: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Идите рефакторите ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 10:59 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, да. Насчет условий я проглядел. Ну что-ж. Тернарный оператор сойдет. Я почему спросил про метрики. Обычно (как правило) коплексность проекта растет от количества строк. И от количества участников команды. Я не знаю что там у вас за проект. Возможно действительно у вас всё лазурно и радужно. Но чьорт возьми чем вы заняты? Может у вас вообще бэклог пустой. И проект уже давно не развивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 11:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonНасчет условий я проглядел. Ну что-ж. Тернарный оператор сойдет. не сойдет, еще одно невнимательное чтение. maytonОбычно (как правило) коплексность проекта растет от количества строк.Индусы рассказали? Будете против Дейкстры топить? Ew DijkstraIn this respect a program is like a poem: you cannot write a poem without writing it. Yet people talk about programming as if it were a production process and measure "programmer productivity" in terms of "number of lines of code produced". In so doing they book that number on the wrong side of the ledger: We should always refer to "the number of lines of code spent" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 11:17 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonНасчет условий я проглядел. Ну что-ж. Тернарный оператор сойдет. не сойдет, еще одно невнимательное чтение. Мне на минуточку показалось что у вас что-то личное. Я вас чем-то обидел? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 11:23 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonНасчет условий я проглядел. Ну что-ж. Тернарный оператор сойдет. не сойдет, еще одно невнимательное чтение. maytonОбычно (как правило) коплексность проекта растет от количества строк.Индусы рассказали? Будете против Дейкстры топить? Хорошо. Существует положительная корреляция между сложностью проекта и количеством строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 11:24 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинв мире фактически нет проектов более или менее крупных, которые обходятся без рефакторинга ... епть, я в каком-то параллельном мире живу где я работал нигде этой херней не маялись и в банке иностранном и в проектах на гос структуры и коммерческие конторы а там и базы в много тб, и кол-во юзеров несколько тыщ одновременно в онлайне не было там никакого рефакторинга ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 11:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакОзверинв мире фактически нет проектов более или менее крупных, которые обходятся без рефакторинга ... епть, я в каком-то параллельном мире живу где я работал нигде этой херней не маялись и в банке иностранном и в проектах на гос структуры и коммерческие конторы а там и базы в много тб, и кол-во юзеров несколько тыщ одновременно в онлайне не было там никакого рефакторинга рефакторинга нет в 2х типах больших проектов: - заброшенных - там, где всем плевать на то, что происходит внутри проекта. Такие проекты рано или поздно переписываются с нуля. Регулярно такое встречаю. Ваша тема как бе говорит о том, что вы либо тогда были не в себе, либо сейчас: https://www.sql.ru/forum/922687/proektirovanie-chto-eto-dlya-vas?hl= ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:03 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonМне на минуточку показалось что у вас что-то личное. Я вас чем-то обидел?Отнюдь, однако, как оппонент в данном вопросе вы себя дескредитировали: вы сначала рассказываете что рефакторинг в разработке это само собой разумеющееся, а потом демонстрируете собственную невнимательность, ну т.е., вы рефакторите просто потому что изначально делаете не то что нужно, а мои розовые единороги исповедуют некие другие принципы в разработке. maytonХорошо. Существует положительная корреляция между сложностью проекта и количеством строк.На ваших проектах может и существует, на своих как-то не углядел, даже более того, вы по какой-то причине топите за сложность проекта, а не за его качество, что несколько странно: качество проекта никак с количеством строк не коррелирует, а рефакторинг, проповедуемый вами, по всем канонам должен количество строк уменьшать, где логика в вашем вопросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:03 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей Панфилова рефакторинг, проповедуемый вами, по всем канонам должен количество строк уменьшать, где логика в вашем вопросе? можем вы говорите о каком-то не таком рефакторинге? Как кол-во строк не влият на сложность проекта так и рефакторинг не должен прямо влиять на кол-во строк. Откуда вы это вообще взяли? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:11 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинрефакторинга нет в 2х типах больших проектов: - заброшенных - там, где всем плевать на то, что происходит внутри проекта. Такие проекты рано или поздно переписываются с нуля. Регулярно такое встречаю. вранье или ты просто мало видел в банке на коболе на мейнфреймах система работала, с лохматых 80-х всем она нужна и никто ее не переписывает ОзверинВаша тема как бе говорит о том, что вы либо тогда были не в себе, либо сейчас: https://www.sql.ru/forum/922687/proektirovanie-chto-eto-dlya-vas?hl= некрофил детектед? сколько времени то прошло? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакОзверинрефакторинга нет в 2х типах больших проектов: - заброшенных - там, где всем плевать на то, что происходит внутри проекта. Такие проекты рано или поздно переписываются с нуля. Регулярно такое встречаю. вранье или ты просто мало видел в банке на коболе на мейнфреймах система работала, с лохматых 80-х всем она нужна и никто ее не переписывает ОзверинВаша тема как бе говорит о том, что вы либо тогда были не в себе, либо сейчас: https://www.sql.ru/forum/922687/proektirovanie-chto-eto-dlya-vas?hl= некрофил детектед? сколько времени то прошло? то есть - заброшенный проект?:) ОК! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинказинакпропущено... вранье или ты просто мало видел в банке на коболе на мейнфреймах система работала, с лохматых 80-х всем она нужна и никто ее не переписывает пропущено... некрофил детектед? сколько времени то прошло? то есть - заброшенный проект?:) ОК! читать умеешь? казинакв банке на коболе на мейнфреймах система работала, с лохматых 80-х всем она нужна и никто ее не переписывает ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакОзверинпропущено... то есть - заброшенный проект?:) ОК! читать умеешь? казинакв банке на коболе на мейнфреймах система работала, с лохматых 80-х всем она нужна и никто ее не переписывает проект развивается? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:34 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинможем вы говорите о каком-то не таком рефакторинге?Судя по тому как вы накинулись на перемещенный класс в спринге - так и есть Озверин Как кол-во строк не влият на сложность проекта так и рефакторинг не должен прямо влиять на кол-во строк. Откуда вы это вообще взяли?Ну как, мы когда занимаемся непотребством в виде рефакторинга, чего мы хотим добиться? Повысить поддерживаемость кода, т.е. удалить дубликаты, пообильнее обмазаться функциональщиной, декларативностью и кодо-генераторами, инкапсулировать побольше логики в объекты - все это на ваш взгляд увеличивает количество кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинказинакпропущено... читать умеешь? пропущено... проект развивается? банк развивается а в этой системе главная книга, и счета клиентов ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 12:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакОзверинпропущено... проект развивается? банк развивается а в этой системе главная книга, и счета клиентов то есть проект умер и относится к первому типу проектов. читд. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 14:35 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинможем вы говорите о каком-то не таком рефакторинге?Судя по тому как вы накинулись на перемещенный класс в спринге - так и есть Озверин Как кол-во строк не влият на сложность проекта так и рефакторинг не должен прямо влиять на кол-во строк. Откуда вы это вообще взяли?Ну как, мы когда занимаемся непотребством в виде рефакторинга, чего мы хотим добиться? Повысить поддерживаемость кода, т.е. удалить дубликаты, пообильнее обмазаться функциональщиной, декларативностью и кодо-генераторами, инкапсулировать побольше логики в объекты - все это на ваш взгляд увеличивает количество кода? избавиться от дубликатов не преследует своей целью уменьшить кол-во кода, а сделать код легко поддерживаемым. Мы точно с вами об одном и том же рефакторинге говорим? Такое ощущение, что вы читаете мурзилку для perl программистов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 14:40 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинказинакпропущено... банк развивается а в этой системе главная книга, и счета клиентов то есть проект умер и относится к первому типу проектов. читд. Если системой ежедневно пользуются тысячи людей - это по твоему "проект умер"? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 14:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакОзверинпропущено... то есть проект умер и относится к первому типу проектов. читд. Если системой ежедневно пользуются тысячи людей - это по твоему "проект умер"? win xp пользуются ежедневно тысячи людей, угадайте, проект жив? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 14:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonМне на минуточку показалось что у вас что-то личное. Я вас чем-то обидел?Отнюдь, однако, как оппонент в данном вопросе вы себя дескредитировали: вы сначала рассказываете что рефакторинг в разработке это само собой разумеющееся, а потом демонстрируете собственную невнимательность, ну т.е., вы рефакторите просто потому что изначально делаете не то что нужно, а мои розовые единороги исповедуют некие другие принципы в разработке. Не согласен. Я скажу честно что я не хочу отстаивать точку зрения или доказывать "любой ценой". Не для этого я читаю форум. Если для вас это так важно в форуме - чтож. Следите за своей репутацией. Чтоб вас невзначай не поймали на обычной человеческой ошибке. И не дай бох не посадили на скамью дискредитированных. Рядом со мной как вы пожелаете. И не делайте выводов об исходном коде которого вы не видели. Я вас прошу. Попробуйте. У вас получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 14:57 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинизбавиться от дубликатов не преследует своей целью уменьшить кол-во кода, а сделать код легко поддерживаемым. Мы точно с вами об одном и том же рефакторинге говорим? Такое ощущение, что вы читаете мурзилку для perl программистов.А вы словапричины и следствия специально местами переставляете? Прочтите еще раз написанное мной. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:00 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинизбавиться от дубликатов не преследует своей целью уменьшить кол-во кода, а сделать код легко поддерживаемым. Мы точно с вами об одном и том же рефакторинге говорим? Такое ощущение, что вы читаете мурзилку для perl программистов.А вы словапричины и следствия специально местами переставляете? Прочтите еще раз написанное мной. Так это вы как раз причины и следствия местами переставляете. Это вы из частного случая, что при удалении дубликатов уменьшается кол-во строк уже не первый раз говорите о том, что целью рефакторинга является уменьшение кол-во строк, что бред по определению. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверин, цитату мою сможете привести, или сами надумали? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:12 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверин, цитату мою сможете привести, или сами надумали? а сами не в силах? Андрей Панфилова рефакторинг, проповедуемый вами, по всем канонам должен количество строк уменьшать, где логика в вашем вопросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:13 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверин, отлично, давайте дальше, когда мы рефакторим, мы что делаем? только переменные и названия классов переименовываем или что-то еще происходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:20 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверин, отлично, давайте дальше, когда мы рефакторим, мы что делаем? только переменные и названия классов переименовываем или что-то еще происходит? так является целью рефакторинга уменьшение кол-во строк или нет? Вы там определелись с вашми единорогами? А то столько возмущений... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:23 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинказинакпропущено... Если системой ежедневно пользуются тысячи людей - это по твоему "проект умер"? win xp пользуются ежедневно тысячи людей, угадайте, проект жив? ессно жив есть те, кто юзают, есть те, кто получают зп за поддержку "мальчик ты тормоз" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:26 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинтак является целью рефакторинга уменьшение кол-во строк или нет? Вы там определелись с вашми единорогами? А то столько возмущений...Целью не является, однако, если в результате вашего рефакторинга количество строк не уменьшилось, то рефакторинг у вас неправильный. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакОзверинпропущено... win xp пользуются ежедневно тысячи людей, угадайте, проект жив? ессно жив есть те, кто юзают, есть те, кто получают зп за поддержку "мальчик ты тормоз" (с) ладно, тут все понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинтак является целью рефакторинга уменьшение кол-во строк или нет? Вы там определелись с вашми единорогами? А то столько возмущений...Целью не является, однако, если в результате вашего рефакторинга количество строк не уменьшилось, то рефакторинг у вас неправильный. это бред, причем я даже не понимаю, из чего вы делаете такой вывод. Классическое определение рефакторинга включает в себя понятие "читаемый" код, куда, в свою очередь, входят легко читаемые переменные и так далее. Потому, рефакторинг такой вещи как: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
может превратится в довольной объемный кусок кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:37 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверин, и зачем вы в пример привели типичный говнокод на регулярных выражениях? Есть RFC 822 регламентирующий формат email, вашу поделку рефакторить не нужно - она ревью проходить не должна. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:44 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверин, и зачем вы в пример привели типичный говнокод на регулярных выражениях? Есть RFC 822 регламентирующий формат email, вашу поделку рефакторить не нужно - она ревью проходить не должна. Я привел пример того, как рефакторинг может увеличить кол-во кода. Сколько вам надо примеров или ответов на ваши совершенно бредовые вопросы, чтобы вы перестали утверждать этот НИЧЕМ не подкрепленный бред про кол-во строк после рефакторинга? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:49 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинЯ привел пример того, как рефакторинг может увеличить кол-во кода. Сколько вам надо примеров или ответов на ваши совершенно бредовые вопросы, чтобы вы перестали утверждать этот НИЧЕМ не подкрепленный бред про кол-во строк после рефакторинга?ну вы потрудитесь для начала привести пример того как рефакторинг неговнокода приводит к увеличению количества строк, а потом посмотрим, а то вы опять за свое взялись: сначала пишем неподдерживаемую хрень, а потом ее героически рефакторим. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:52 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинЯ привел пример того, как рефакторинг может увеличить кол-во кода. Сколько вам надо примеров или ответов на ваши совершенно бредовые вопросы, чтобы вы перестали утверждать этот НИЧЕМ не подкрепленный бред про кол-во строк после рефакторинга?ну вы потрудитесь для начала привести пример того как рефакторинг неговнокода приводит к увеличению количества строк, а потом посмотрим, а то вы опять за свое взялись: сначала пишем неподдерживаемую хрень, а потом ее героически рефакторим. зачем? Вы утверждаете, что рефакторинг всегда уменьшает кол-во строк кода, я привел пример обратный. Лучше вы скажите, с чего вы решили, что рефакторинг обязательно должен уменьшить кол-во строк кода? Вы же прочли какой-то гениальный источник, прежде чем нести эту информацию в массы? Почему я должен доказывать наличие запущенного вами чайника Рассела? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 15:54 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинзачем? Вы утверждаете, что рефакторинг всегда уменьшает кол-во строк кода, я привел пример обратный.К примеру чтобы демагогом себя не выставлять, а то могли бы еще пример с расставлением пропущенных скобочек и заменой тернарного оператора привести и рассказывать о том как улучшилась читаемость при увеличении количества строк - такой код изначально плохой и не должен ревью проходить, вы же всеми способами пытаетесь заставить меня играть на вашем поле, где все изначально плохо, а потом пытаетесь доказать что в ваших запущенных случаях все происходит с точностью до наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2019, 17:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Озверинсрочно расскажите, что это. Кое кого учить - только портить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2019, 10:55 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловПодсказка как сравнить число с 0: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: java 1.
Теоретически имеет смысл, но компилятор всё равно подставит 1. Код: java 1.
Даже теоретически смысла не имеет. Ну и компилятор 0 подставит. Код: java 1.
Не равно конечному значению, но тоже смысла нет, плюс компилятор кое что поправит. А вообще - можно было банально массив логических значений длинной 2 сваять: Код: java 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2019, 11:03 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121354]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
395ms |
get tp. blocked users: |
1ms |
others: | 247ms |
total: | 870ms |
0 / 0 |