powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Тестирование. Что именно тестировать? Как определить середину?
361 сообщений из 361, показаны все 15 страниц
Тестирование. Что именно тестировать? Как определить середину?
    #39797622
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Давайте представим проект, в котором есть (иерархия, где-то такая):
1) сущности (геттеры, сеттеры, доп методы)
--
2) репозитории
--
3) сервисы
4) утилиты
5) исключения
--
6) контроллеры
7) трансферобжекты
--
8) допишите что ещё может быть.

Что из этого принято тестировать?
Мне вот думается, что по хорошему стоит уделить внимание только контроллерам (слою), и его всячески терзать на все возможные варианты, ибо именно там можно создать ситуации, которые затронут всё.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797686
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous,

Вам надо посмотреть какой нибудь туториал как делается BDD Behavior Driven Development

Обычно люди пишут сценарии на каждую фичу используя специалный язык огурцов Cucumber там все простенько типо

Код: sql
1.
2.
3.
4.
5.
6.
7.
Feature: Is it Friday yet?
  Everybody wants to know when it's Friday

  Scenario: Sunday isn't Friday
    Given today is Sunday
    When I ask whether it's Friday yet
    Then I should be told "Nope"



Вот мой кусок проекта для фермы с ветрянных генератов как выглядит в реальной жизни
https://github.com/SVyatkin/ads-bdd/blob/master/src/test/resources/Cucumber/IntegrationTest/customer/WindTurbine_Test.feature

За каждым огурцом стоит кусок кода в данном случае на Java. В общем посмотрите если освоите то будет совсем хорошо
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797781
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergunka, спасибо, посмотрю.
Но не маньячество ли тестить абсолютно все?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797792
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ImperousНо не маньячество ли тестить абсолютно все?
Если учил в детстве математику, то сам сможешь ответить.

Сначала тебе нужно посчитать количество ветвлений в твоей софтине, потом возвести 2 в степень, равную количеству ветвлений, потом смотришь на полученное число и чешешь репу - а смогу ли я проверить триллион вариантов? Если репа не даст ответа, то значит ты не учил математику.

Это было "по простому".

По сложному гугли по фразе "покрытие тестами" и пытайся въехать, что это такое и как это вычислять. Далее вспоминай математику (это обязательно). Ну и применяй что вспомнил к имеющейся ситуации. Обычно в ситуации имеем очень много вариантов, поэтому ты должен найти способ так сократить это количество, что бы минимизировать размер неохваченного тестами кода. Это называется задача на оптимизацию. Здесь, наверное, если ты в институте не учился, тебе не разобраться. Но даже если учился, тоже очень частый случай, что клиенты не въезжают в тему. В общем - дальнейшее зависит от тебя, от твоего понимания темы, ну и от твоей настойчивости.

Если сумеешь найти оптимум - сможешь на пальцах доказать Сергуньке и другим, что есть маньячество и что не есть маньячество.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797807
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ImperousSergunka, спасибо, посмотрю.
Но не маньячество ли тестить абсолютно все?в крупных фирмах есиь штатная должность тестировщик. Некоторые с нее мечтабт перейти в програмисты).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797810
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123в крупных фирмах есиь штатная должность тестировщик. Некоторые с нее мечтабт перейти в програмисты).
1. Ну не только в крупных, а во всех боле менее профессионально занимающихся разработкой.
2. Ну ни должность, а чаще всего отдельный отдел.
3. Разные там люди работают. И бывшие, и будущие, и несправившиеся, и просто девушки.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797817
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,
Да.
Поэтому, без приказа я совсем не занимаюсь тестированием. Неинтересно)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797831
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без обид.
Возможно вы просто не умеете это делать...
Это отдельный труд, требующий отдельных навыков, умения и опыта.
И соответствующего складу ума или характера.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797834
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123982183,
Да.
Поэтому, без приказа я совсем не занимаюсь тестированием. Неинтересно)
я например, на одном проекте частично занимался (занимаюсь) автоматизацией тестирования. пишу кейсы и т.п. да, на постмане и джаваскрипте. но он вполне хорош для целей апитестирования, можно достаточно быстро и клёво писать коллекции и флоу. кроме того я считаю это обязанность программиста как минимум писать тесты внутри своего же кода. юнит, интеграционные. если ты не обкладываешь тестами свой же код - это как минимум странно.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797837
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTесли ты не обкладываешь тестами свой же кода если я без ошибок пишу?
))
Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день.
Это и есть мои тесты.
Если начальство решит что итоги по больнице плохие, то и тесты будем 30 проц.времени писать.
Это флейм - кто и сколько тесты пишет.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797840
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с вашим кодом работаете только вы?
Или нет дополнительного оборудования или источников данных
И запускается он только на одной конфигурации...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797853
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ImperousВсем привет!

Давайте представим проект, в котором есть (иерархия, где-то такая):
1) сущности (геттеры, сеттеры, доп методы)
--
2) репозитории
--
3) сервисы
4) утилиты
5) исключения
--
6) контроллеры
7) трансферобжекты
--
8) допишите что ещё может быть.

Что из этого принято тестировать?
Мне вот думается, что по хорошему стоит уделить внимание только контроллерам (слою), и его всячески терзать на все возможные варианты, ибо именно там можно создать ситуации, которые затронут всё.
Несколько мыслей.

1) Тестировать геттеры и сущности не надо.
2) Тестировать надо то место в коде, где есть бизнес-логика. Тоесть, к примеру есть контроллер или процессор
который что-то делает в режиме черного ящика. Или серого. Тоесть если у него есть некий вход и некий детерминированный
выход, то надо покрывать тестами именно это.
3) В идеале у вас количество тестов должно быть равно количеству бизнес-кейсов. Вот просто
можно брать user-story из JIRA и буквально обзывать тестовые методы так-же как и были названы все юзер-стори.
4) Конвертеры и функции и трансфер обжекты - сам бог велел тестировать тем более, что у них
нет обычно состояния и они идеально тестабельны.
5) Код который плохо тестируется имеет смысл улучшить. Например, если какой-то ДАО содержит
код доступа к БД + бизнес-логику лучше разделить на отдельно ДАО и отдельно бизнес-процессор,
и протестить процессор как чистую функцию.
6) Старайтесь испльзовать меньше Mockito. Признак идеально тестабельного кода - это как-раз отсутствие
необходимости в моках. Обычно сторонники Мокито боятся вносить изменения в основной код в направлении
улучшения тестабельности, но при этом тратят сутки и недели времени на тонкую и настройку верификаторов
и шпионов которые должны замокать какой-то сложный объект.
7) Периодически запускайте jacoco плагин и смотрите отчот о покрытии. Это будет набор таких html-ек
где зеленым цветом покрашен покрытый тестами код и красным цветом код, который еще не протестировать.
Красны - это ваша цель. Разумеется без параноидальности. Геттеры и сеттеры не надо а только то что
имеет логику.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797855
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183А с вашим кодом работаете только вы?
Или нет дополнительного оборудования или источников данных
И запускается он только на одной конфигурации...
И по ходу одним человеком и только для себя ))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797874
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTесли ты не обкладываешь тестами свой же кода если я без ошибок пишу?
))
Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день.
Это и есть мои тесты.
Если начальство решит что итоги по больнице плохие, то и тесты будем 30 проц.времени писать.
Это флейм - кто и сколько тесты пишет.
кек, тесты то не только для этого. ну или у тебя приложенька совсем уже простая. всю радость тестов ты познаешь когда что то надо отрефакторить или когда ты пишешь фичу для сервиса (сов) которые чтоб просто в куче поднять у тебя уйдет минут 10-ть. и как ты там что 1500 раз запускать и прогонять вручную собираешься? да у тебя борода быстрее отрастёт до пола чем ты закончишь. а если у тебя флоу какой-нибудь запутанный? а если тебе надо написать так чтоб и остальное не сломать? я канеш понимаю что солид и всякое такое давайте делать системы такие чтоб модифицировать поведение надо было не переписыванием а дописыванием. но фига. тебе надо и добавлять и поправлять и всякое такое и быть уверенным что ты регрессии не накидал. протыкивать всё руками ты можешь себе позволить только на уж очень простых системах.

основная задача тестов - это зафиксировать поведение кода. вторая - собссно убедиться что твой код делает то что хочешь ты. ну и третья - ускорить процесс разработки. да, карл. ускорить.

кто говорит что 30% времени на тесты это много - ну просто не сталкивался с хоть чуть-чуть сложными системами. в которых тесты как раз экономят время. их пользу можно понять тогда когда они у тебя были, а потом их резко не стало. ну и да, я за рефакторинг кода никогда не возьмусь если он не обложен тестами. - это четвертая прелесть тестов. качественный и достаточно безболезненный рефак.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797886
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123в крупных фирмах есиь штатная должность тестировщик.

За более чем сорок лет в разработке работал только в двух тимах где тесты писали вся команда и тесты писались или накрайняк обсуждались до того как начать разработку.

В обоих случаях писался софтерный продукт. Первый раз в с 1988 года по 1990 год в знаменитой лаборатории Староса к тому времени Филлип Георгевич был покойным... увы.

И последние 5 лет при разработке облачной платформы www.predix.io получается через тридцать лет. За заслуги меня даже на доску почета там воткнули в назидание потомкам

На самом деле если Jira написана на Cucumber и acceptance criteria прописаны внятно, то тут даже деваться некуда приходится первым писать тест после чего уже программируешь фичу. Хотя из 18 человек на разработке сервиса так поступало треть разработчиков все остальные по старинке городили огород даже не разобравшись в треобованиях в Jira

У нас было два тестеровщика которые только проверяли правильно ли разработчик понял задание и корректно ли отработали тесты. Так же стиль и правила по тестам. Понятно если кто сильно тупил, то учили походу как писать с тестами.

Инженер по тестированию в таких командах часто получает выше среднего программиста. Работа довольно нудная и поэтому хорошо оплачиваемая. Фактически здесь в Долине это часть DevOps и не один CI/CD не шевельнется без test coverage servers: SonarCube, Coverity, Jacoco etc.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797887
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ImperousSergunka, спасибо, посмотрю.
Но не маньячество ли тестить абсолютно все?

На самом деле у Вас должен быть test coverage выше 75% - хорошо 85% и идеально выше 90%. В нормальной конторе ниже 75% у вас продукт не выпустят в релиз т.е. грубо говоря команда останется без премии обычно премия это от 15% до 25% от годового оклада т.е. есть за что побороться.

Я как то помнится писал, что программист это практикующий шизофреник. Высокое покрытие тестами это часть нашей маниакальной работы этого не надо стеснятся

P.S. К слову сказать у меня была серия разговоров с нашим легал департаментом вплоть до коллективных доносов на меня когда я расрыл участки тестирования продукта в компании. Потом это дело замяли так как вроде я не брал реальный код, а просто написал свои модификации для демо программ... в общем отстали сказали, что пользы больше чем вреда
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797934
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTи как ты там что 1500 раз запускать и прогонять вручную собираешься? да у тебя борода быстрее отрастёт до пола чем ты закончишь. а если у тебя флоу какой-нибудь запутанный? а если тебе надо написать так чтоб и остальное не сломать? я канеш понимаю что солидне)) не солид
Есть прикладной код и програмист, а есть системный код и программист.
Мне нравится прикладной.
Например пишем, метод дайМнеСписокДолжников(год).
Вот пока его пишу, я 1500 раз запускаю этод метод и смотрю список должников))).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797936
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaНа самом деле у Вас должен быть test coverage выше 75% - хорошо 85% и идеально выше 90%.вы не будете отрицать что Методология разработки ПО у разных компаний разная.
Я так понимаю, что данные 75% - это компания с XXX разработчиками на проект.
Если не изветсен масштаб компании, типы проектов, бюджеты, то и сложно советовать 1 процент или 75.
Имхо
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797939
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTи как ты там что 1500 раз запускать и прогонять вручную собираешься? да у тебя борода быстрее отрастёт до пола чем ты закончишь. а если у тебя флоу какой-нибудь запутанный? а если тебе надо написать так чтоб и остальное не сломать? я канеш понимаю что солидне)) не солид
Есть прикладной код и програмист, а есть системный код и программист.
Мне нравится прикладной.
Например пишем, метод дайМнеСписокДолжников(год).
Вот пока его пишу, я 1500 раз запускаю этод метод и смотрю список должников))).
Ну как ты его 1500 раз запускаешь? Целиком вместе со всем приложением? Или моками обложился? Если первое, ну я рад что ты себе это можешь позволить. Иногда бывает так что у тебя приложение стартует несколько минут (или ещё больше) и вот у тебя 5 минут помноженное на 1500... Ну ты понял.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797941
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTИногда бывает так что у тебя приложение стартует несколько минутда. Это проблема.
Причем единственная кому нужны тесты))
Было бы интересно в эту сторону поговорить.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797954
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, если стартует приложение несколько минут, то я бы вообще не программировал))).
Это как художник не может отойти от картины на пару шагов.
Нонсенс!
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797960
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего странного в "нескольких минутах" не вижу.
Надо и обновления проверить, и справочники синхронизировать, и в БД проверить ряд вещей.
И только потом пускать пользователя до работы.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797962
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Вообще, если стартует приложение несколько минут, то я бы вообще не программировал))).
Это как художник не может отойти от картины на пару шагов.
Нонсенс!
несколько минут это еще по доброму. может быть и 10 минут и 20. у тебя может быть или типа монолит или просто мешок микросервисов которые требуют лютые гиги чтоб всё кругом запустить енд ту енд. и тут вот ты со своим подходом и сядешь. это просто НЕРЕАЛЬНО при каждой замене пересобирать всю эту халабуду. так же, не всегда тебе на горячую можно пересобрать модуль там или класс. с тестами же ты обложил нужный набор сервисов моками, подсунул им нужный правильный контекст и отлаживаешься на них. как только всё сложилось - запускаешь 1 (единственный) раз всю шарагу целиком, прогоняешь еще раз все тесты, и если ок - выливаешься. если чот поломалось - тесты сразу показывают где и что у тебя поломалось. идешь туда и разбираешься.

и еще раз.. вспоминаем какой-нибудь более-менее всеобъемлющий рефакторинг. и без тестов. ты тут пошатаешь - там сломается. и узнаешь об этом ты только на проде.

я всё же за то что тесты должны быть и должны писаться самим программистом (я не про тесткейсы для м-ку-а) и мнимая потеря времени по факту оборачивается в профит.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797970
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Ничего странного в "нескольких минутах" не вижу.
Надо и обновления проверить, и справочники синхронизировать, и в БД проверить ряд вещей.
И только потом пускать пользователя до работы.токарь утром на работу приходит. Это у него 10 мин. подготовка раб места. Не?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797972
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Я конкретно написал if... else и нажал run в меню.
Какие 10 мин?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797978
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTили типа монолитмонолит без модульности SOA сейчас только в сказках где детей пугают.
Микросервисы для того и придумали что грузим частями.
Итого откуда 10 мин?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797980
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTНЕРЕАЛЬНОприведи реальный пример с работы когда НЕ для интеграционных, а ДЛЯ модульных unit тестов нужно писать вслепую так как запуск 10 мин.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797984
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaT,
Я конкретно написал if... else и нажал run в меню.
Какие 10 мин?
а... ты еще и через ран :) прикинь ты нажал ран и у тебя это барахло поднимается ну пусть даже 1-2 минуты. и ты вот 1500 раз делаешь по 2 минуты? а? а когда поднимается тебе надо совершить какой-то многоступенчатый акт надругательства над твоим бэком чтоб прогнать флоу? а? и ты вот это всё сам ручками делаешь 1500 раз. ага. ну.. кому как удобно.

мне например, не удобно. я обкладываю код тестами, когда он готов я жму ран и смотрю если всё зелененькое - то го ту некст челленж.
ничего не прокликиваю ничего не проигрываю. просто одной кнопкой я делаю ВСЁ. ну почти. вот щас сижу на скалапроекте который писал не я. а чел который так же тесты презирает. я ему а где тесты? а он да че я всегда проекты с нуля поднимал нет времени. я ну и ты типа вот это всё вот прокликиваешь? он да че у меня есть курлы готовые я их по очереди и дергаю. я оу ну окей..
и первым делом обложил всё апи кейсами на хотя бы постмане. там тоже кликать дофига. но там хотя б можно кнопку нажать и проверить всё и сразу. чуть позже я обложу всё и юнитами и интеграшками. мне просто так удобнее. и я считаю что писать код от тестов - это правильно.

а чела спасло то что это скала плей сбт и оно тупо на лету всё пересобирает прям как на пыхе и джаваскрипте пишешь. и даже если тебе надо целиком переподнять всё - оно переподнимается секунд за 30.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797987
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTили типа монолитмонолит без модульности SOA сейчас только в сказках где детей пугают.
Микросервисы для того и придумали что грузим частями.
Итого откуда 10 мин?
вот у тебя инфраструктура где с десяток микросервисов - ты их реально все поднятыми держишь? или запускаешь один и ему-что то там скармливаешь моками? (я надеюсь хоть так).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797991
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Вот микросервисы уже имя ругательное в сети. Расскажи про них.
Если ты пишешь микросервис А, остальные у тебя не запущены?
А как у заказчика? Райзе? Фатальная ошибка?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797994
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Код: java
1.
2.
if (микроДайЮзверя(микроПроверкиЮзверя)) 
... 


Что тестами покрывать, если это все не работает?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39797997
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Сегодня ты должен потратить на тесты 2 часа. Дай пример.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798000
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микросервисы лучше в топике не упоминать.
Там в методах не более 3-5 строк должно быть. Что тестировать?
И их придумали не для проблем в разработка.
Пока видны только проблемы.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798037
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaT,
Сегодня ты должен потратить на тесты 2 часа. Дай пример.
я написал новый функционал в приложении, он состоит из 3х дтошек, одного сервисного класса, пары утилок и репозитория. я буду писать тесты которые тестируют сервисный класс, все его методы это как минимум. я буду писать тесты которые тестируют все методы репозитория. в идеале это будет набор юнит тестов с моками всего и вся работающих в рамках одного класса. а потом интеграционные тесты которые ограничено поднимут контекст - для репозитория это будет тестовая база, где я буду с разными выгрузками данных баловаться. для сервиса это будет мок репозитория. для контроллера я так же замокаю сервис и буду тестировать чисто апи где буду смотреть что приходит в джейсоне. а потом напишу интеграционный тест который будет выверять всю цепочку от контроллера до тестовой базы и обратно. вот этим я займусь следующие два часа.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798043
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...причем, я могу СНАЧАЛА написать тесты, а потом уже написать код который будет под эти тесты подпадать.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798053
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTPetro123andreykaT,
Сегодня ты должен потратить на тесты 2 часа. Дай пример.
я написал новый функционал в приложении, он состоит из 3х дтошек, одного сервисного класса, пары утилок и репозитория. я буду писать тесты которые тестируют сервисный класс, все его методы это как минимум. я буду писать тесты которые тестируют все методы репозитория. в идеале это будет набор юнит тестов с моками всего и вся работающих в рамках одного класса. а потом интеграционные тесты которые ограничено поднимут контекст - для репозитория это будет тестовая база, где я буду с разными выгрузками данных баловаться. для сервиса это будет мок репозитория. для контроллера я так же замокаю сервис и буду тестировать чисто апи где буду смотреть что приходит в джейсоне. а потом напишу интеграционный тест который будет выверять всю цепочку от контроллера до тестовой базы и обратно. вот этим я займусь следующие два часа.

а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы.

зато куча юнит-тестов...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798061
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Ту кучу что ты описал ты будешь делать неделю.
А функционал ты описал на день работы.
...
И как ты будешь писать, если у тебя в меню run выполняется 10 мин.?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798062
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Ты на работе? Ну и описал бы рабочий день.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798096
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы в топике обо всех тестах или как?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798097
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выше я уже писал, что тесты это флейм
Кто пишет юнит тесты?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798104
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaT,
Ту кучу что ты описал ты будешь делать неделю.
А функционал ты описал на день работы.
...
И как ты будешь писать, если у тебя в меню run выполняется 10 мин.?
очень просто - буду писать на тестах. тесты в основном, стартуют на порядок быстрее, а юнит тесты так вообще моментально.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798111
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bachandreykaTпропущено...

я написал новый функционал в приложении, он состоит из 3х дтошек, одного сервисного класса, пары утилок и репозитория. я буду писать тесты которые тестируют сервисный класс, все его методы это как минимум. я буду писать тесты которые тестируют все методы репозитория. в идеале это будет набор юнит тестов с моками всего и вся работающих в рамках одного класса. а потом интеграционные тесты которые ограничено поднимут контекст - для репозитория это будет тестовая база, где я буду с разными выгрузками данных баловаться. для сервиса это будет мок репозитория. для контроллера я так же замокаю сервис и буду тестировать чисто апи где буду смотреть что приходит в джейсоне. а потом напишу интеграционный тест который будет выверять всю цепочку от контроллера до тестовой базы и обратно. вот этим я займусь следующие два часа.

а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы.

зато куча юнит-тестов...
конечно упадет. оно обязано упасть. если оно не упадет ты что то неправильно сделала. да. упадет. а ты откроешь и все тесты поправишь. а может оно вообще упадет там где не должно падать? и ты это сразу узнаешь почешешь репу и пофиксишь.
это кстати отличный пример тестов и того зачем они нужны.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798114
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Микросервисы лучше в топике не упоминать.
Там в методах не более 3-5 строк должно быть. Что тестировать?
И их придумали не для проблем в разработка.
Пока видны только проблемы.
Со стороны диалектики или терминологии. Принято считать что микросервисы возвращяют ресурсы. В этом (на минуточку)
есть сильное отличие от веб-сервисов где действительно инкапсулируется логика. Следуя ресурсной
диалектике, тестирование "правильного" микросервиса - безсмысленно по своей сути.

Что тестировать? Коллекции? Репозитарии?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798124
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTPetro123andreykaT,
Ту кучу что ты описал ты будешь делать неделю.
А функционал ты описал на день работы.
...
И как ты будешь писать, если у тебя в меню run выполняется 10 мин.?
очень просто - буду писать на тестах. тесты в основном, стартуют на порядок быстрее, а юнит тесты так вообще моментально.я же сказал. Работа больше в три раза.
2. Покажи что значит писать на тестах.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798126
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да. И я том же)).
Зря тут всплыло про микросервисы.
Кто ляпнул - пусть и покажет их живьём.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798138
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetro123Микросервисы лучше в топике не упоминать.
Там в методах не более 3-5 строк должно быть. Что тестировать?
И их придумали не для проблем в разработка.
Пока видны только проблемы.
Со стороны диалектики или терминологии. Принято считать что микросервисы возвращяют ресурсы. В этом (на минуточку)
есть сильное отличие от веб-сервисов где действительно инкапсулируется логика. Следуя ресурсной
диалектике, тестирование "правильного" микросервиса - безсмысленно по своей сути.

Что тестировать? Коллекции? Репозитарии?

нет. С каких пор это и кем принято, что микросервисы отдают статику из баз или откуда-то еще без обработки? Суровое заявлениЕ, оторвание от реальности.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798141
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Ну, они же не толстые. Как REST. В этом их суть.
Оффф. Все таки скатились к их обсуждению.
Спецы по ним, дайте хоть примеры то))))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798147
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Озверин,
Ну, они же не толстые. Как REST. В этом их суть.
Оффф. Все таки скатились к их обсуждению.
Спецы по ним, дайте хоть примеры то))))

что значит толстые ? Считается, что микросервис выполняет какую либо выделенную бизнес функцию или бизнес сценарий. Тестирование ничем не отличается(а чаще - проще) от обычной программы.

Проблемы возникают только с интеграцинным тестированием, версионностью. Ну это уже костыли.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798150
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я полностью согласен что обсуждение микросервисов здесь - offtop.

Давайте кто-то поднимет это обсуждение отдельно.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798158
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В свое время вдохновлялся что, как часто и зачем тестировать - этой статьей https://martinfowler.com/bliki/TestPyramid.html
Ну и хабром отсюда - https://habr.com/ru/post/169381/
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798159
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинчто значит толстыезначит микро функции)))) количество строк 3-5. Не больше.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798161
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTlove_bachпропущено...


а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы.

зато куча юнит-тестов...
конечно упадет. оно обязано упасть. если оно не упадет ты что то неправильно сделала. да. упадет. а ты откроешь и все тесты поправишь. а может оно вообще упадет там где не должно падать? и ты это сразу узнаешь почешешь репу и пофиксишь.
это кстати отличный пример тестов и того зачем они нужны.

это отличный пример оверхеда и как делать не надо для той задачи, которую ты привел
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798172
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Озверинчто значит толстыезначит микро функции)))) количество строк 3-5. Не больше.

нет никаких микрофункций. Кол-во строк на метод или класс определяется принципами типа solid, kiss и так далее. Причем тут микросервисы?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798194
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериннет никаких микрофункций.и микросервисов нет.))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798202
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинPetro123пропущено...
значит микро функции)))) количество строк 3-5. Не больше.

нет никаких микрофункций. Кол-во строк на метод или класс определяется принципами типа solid, kiss и так далее. Причем тут микросервисы?
Он имеет в виду рекомендацию толи Фаулера толи Боба - делать функции маленькими и делать их как можно меньше.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798203
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинPetro123пропущено...
значит микро функции)))) количество строк 3-5. Не больше.

нет никаких микрофункций. Кол-во строк на метод или класс определяется принципами типа solid, kiss и так далее. Причем тут микросервисы?
Я - "малолитражка это маленькая машина"...
Ты - "нет таких маленькихмашин. Размер определяется ТЗ, дизайном, ценой,...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798206
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Вот у микросервисов это основа. И чтобы все помнили и не путали с обычным сервисом в имя добавили.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798272
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bachandreykaTпропущено...

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

это отличный пример оверхеда и как делать не надо для той задачи, которую ты привел
обоснуй
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798274
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mayton,
Вот у микросервисов это основа. И чтобы все помнили и не путали с обычным сервисом в имя добавили.

хватит про 3-5 строк кода микросервиса и основу) Пожалуйста.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798277
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинPetro123mayton,
Вот у микросервисов это основа. И чтобы все помнили и не путали с обычным сервисом в имя добавили.

хватит про 3-5 строк кода микросервиса и основу) Пожалуйста.
3-5 строк это канеш огонь. может он имел ввиду 3-5 строк на метод. это хорошая практика.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798283
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинВ свое время вдохновлялся что, как часто и зачем тестировать - этой статьей https://martinfowler.com/bliki/TestPyramid.html
Ну и хабром отсюда - https://habr.com/ru/post/169381/
первая статья прям царь-статья. я тоже ею вдохновлялся. )) ну почти. у меня чуть иная пропорция между юнит и сервис. но в целом похоже
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798287
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Я тут год наблюдаю мантры про микросервисы которые никто не видел).
Не я начал).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798292
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTобоснуйэто ты расскажи как писать код без рабочих сервисов, контейнеров и с запуском 10 мин в ide.
А должно 15-30 сек. И тестирование не понадобится.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798298
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTобоснуйэто ты расскажи как писать код без рабочих сервисов, контейнеров и с запуском 10 мин в ide.
А должно 15-30 сек. И тестирование не понадобится.
даже 15-30 сек - тестирование понадобится. или ты пишешь приложение "телефонная книга". впрочем, не вижу смысла переубеждать тебя. я так понял, это твоя принципиальная позиция. честно сочувствую тем к кому попадет код после тебя и кто будет вынужден его поддерживать.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798304
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Озверин,
Я тут год наблюдаю мантры про микросервисы которые никто не видел).
Не я начал).
Озверин вполне достойное определение мс озвучил. ты же толком даже не сказал что ты вкладываешь в это понятие. ну кроме того что это что то где 3-5 строчек.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798310
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подобно 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.


Кто согласен с таким определением? И у кого есть что добавить?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798325
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день.
Это и есть мои тесты.
В конторах типа гос.больниц плевать на юзверей, поэтому там можно. Но если ставится цель не уронить сайт конторы после обновления, то "1500 раз за день" как раз обязательно приведёт к падению и потере миллионов баксов из-за простоя (ну если контора большая, понятно).

Вопрос в цене ошибки. Если цена никакая, как в гос.конторах, где на всех тупо плюют, тогда можно "1500 раз за день", а если цена побольше - приходится тесты писать.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798327
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Микросервисы это buzzword.
Поиск дай в гугле.
Тоже определение).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798329
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на мой взгляд тут недостаточно информации о том как они должны взаимодействовать между собой. может они в одном контексте одной жвм запускаются, может они друг с другом через рпк общаются ну или еще 3 оставшихся шаблона. может еще как.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798330
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКто согласен с таким определением? И у кого есть что добавить?
Я бы сказал, что это не последнее модное веяние. Так что пусть себе будет таким.

Суть ведь в нахождении пользы от всех этих слов.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798331
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Petro123Я когда код пишу, я его не по памяти пишу, а запускаю по 1500 раз за день.
Это и есть мои тесты.
В конторах типа гос.больниц плевать на юзверей, поэтому там можно. Но если ставится цель не уронить сайт конторы после обновления, то "1500 раз за день" как раз обязательно приведёт к падению и потере миллионов баксов из-за простоя (ну если контора большая, понятно).

Вопрос в цене ошибки. Если цена никакая, как в гос.конторах, где на всех тупо плюют, тогда можно "1500 раз за день", а если цена побольше - приходится тесты писать.
...причем не только детские юнит и интеграционные но и енд ту енд и юай (если он есть) и всякие там нагрузочные. и и и и и и и. и никуда от этого не уйти в более или менее системе с высоким функционалом.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798332
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555,
Согласен сабж привязать к параметрам проекта, количеству прогеров и...
Чтобы не покрывать все подряд тестами для тестов.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798336
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКто согласен с таким определением? И у кого есть что добавить?их никто не писал кроме 1-2 мемберов тут за прошедших 3 года. Все пишут обычные сервисы.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798342
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTсочувствую тем к кому попадет код после тебяBlazkowicz тоже afaik был не большой любитель покрытия тестами)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798347
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTпричем не только детские юнит и интеграционные но и енд ту енд и юай (если он есть) и всякие там нагрузочные. и и и и и и и. и никуда от этого не уйти в более или менее системе с высоким функционалом.как можно писать микросервисы, если у тебя докеров, контейнеров, виртуалок нет и проект стартует 10мин?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123maytonКто согласен с таким определением? И у кого есть что добавить?их никто не писал кроме 1-2 мемберов тут за прошедших 3 года. Все пишут обычные сервисы.
Отлично. Уже есть консенсус.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798353
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да. Главное не афишировать имен)))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798354
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Blazkowicz тоже afaik был не большой любитель покрытия тестами)
никто не любитель - тесты писать скучно. просто между позициями "фапать на процент покрытия" и "не тестировать вовсе" есть промежуточные варианты
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798358
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTпричем не только детские юнит и интеграционные но и енд ту енд и юай (если он есть) и всякие там нагрузочные. и и и и и и и. и никуда от этого не уйти в более или менее системе с высоким функционалом.как можно писать микросервисы, если у тебя докеров, контейнеров, виртуалок нет и проект стартует 10мин?
интересно, если у тебя мешок докеров контейнеров и прочего барахла с виртуалками, чо у тебя это всё тоже 15 секунд стартует? не ну клевый комп у тебя. завидую. или проект- записная книжка.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798359
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTсочувствую тем к кому попадет код после тебяBlazkowicz тоже afaik был не большой любитель покрытия тестами)
почитай книжку тдд. ну так просто о том КАК люди пишут и КАК можно писать
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798360
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mayton,
Да. Главное не афишировать имен)))
Майтон дал определение. оно весьма размытое. то что ты под ним подразумеваешь что то своё и высокопарно и с предыханием вещаешь типа "только единицы поняли (дзен) что такое микросервисы". ну ну.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798361
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaPetro123Blazkowicz тоже afaik был не большой любитель покрытия тестами)
никто не любитель - тесты писать скучно. просто между позициями "фапать на процент покрытия" и "не тестировать вовсе" есть промежуточные варианты

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

я вот вправду, когда был маленький и юный тоже не понимал ну зачем же эти тесты нужны я же 1500 раз запускаю приложение 1500 раз всё прокликиваю по одному и тому же сценарию у меня всё хорошо. тесты придумали дураки.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798377
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Ну не я же ляпнул что тесты нужны так как невозможно писать код. 10 минут стартует.
Говори конкретнее.
Я в соседней теме про дайМнеСписокКниг очень конкретно показал что знал.))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798379
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTпочитай книжку тдд. ну так просто о том КАК люди пишут и КАК можно писать
Зачем книжку?
Sergunka показал пример. Хороший пример.
Blazkowicz профи несомненный и я ему верю.
Ты ничего не показал как ты тестируешь.
И кстати, я выше говорил, что тема флейм и золотой пули тут нет.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798380
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTмешок докеров контейнеров и прочего барахла с виртуалками, чо у тебя это всё тоже 15 секунд стартует?дык оно утром стартует с компом и до вечера не выключается. У тебя как?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798381
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaPetro123Blazkowicz тоже afaik был не большой любитель покрытия тестами)
никто не любитель - тесты писать скучно. просто между позициями "фапать на процент покрытия" и "не тестировать вовсе" есть промежуточные варианты
да! Я тоже не максималист и люблю промежуточные)))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798395
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123дайМнеСписокКнигя тебе на это написал вариант работы, вот скажи что там проверять/тестировать?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798410
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTlove_bachпропущено...


а потом это все упадет, потому что в БД поле обозвали по-другому, сконфигурировали IoC "не так", как ожидалось, напортачили в конфигах, а пару утилиток вообще надо переписать, так как они не правильно реализованы.

зато куча юнит-тестов...
конечно упадет. оно обязано упасть. если оно не упадет ты что то неправильно сделала. да. упадет. а ты откроешь и все тесты поправишь. а может оно вообще упадет там где не должно падать? и ты это сразу узнаешь почешешь репу и пофиксишь.
это кстати отличный пример тестов и того зачем они нужны.

вот я и привел пример, так сказать на стыках. поэтому смысл тратить время на тучу юнит-тестов, если основные проблемы выявляются основными интеграционными, коих стопитсот писать не надо? если есть сложный алгоритм, с кучей ветвлений, то тестить его основные и граничные сценарии. а тестировать репо и всякие маппинги - это когда больше нечем заняться
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798486
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
В твоем варианте процедурном тестов нет. Они в ООП.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798491
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
В твоем варианте процедурном тестов нет. Они в ООП.
т.е. создаем себе проблемы, чтоб потом их решеть?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798496
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123вадя,
В твоем варианте процедурном тестов нет. Они в ООП.
т.е. создаем себе проблемы, чтоб потом их решеть?если ООП для тебя проблемы то ты безработный.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798504
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123если ООП для тебя проблемы то ты безработный.для меня нет такой проблемы, просто когда можно сделать проще - я выбираю простой вариант, а городить что-то чтоб потом решать ещё и проблему созданную этим нагороженным - это из разряда мозахизма.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798567
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Как только ты скажешь, что ООП или коллекции это прогладка и Г., я сразу говорю что это аргумент безработного и двоечника. А не здорового и богатого).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798583
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Как только ты скажешь, что ООП или коллекции это прогладка и Г.,я такого не говорил и не скажу. просто не надо городить это ООП везде, где надо и не надо, особенно там , где без него можно намного проще обойтись.
я на твоём вопросе про библиотеку это показал.
функциональное, процедурное программирование - пофиг, как оно называется, но когда данные из базы заносят в объекты, а потом из этх объектов вставляют ещё куда - когда можно сразу из результсета вставит в нужное место - зачем лишнее звено из объекта?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798598
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Я не собираюсь доказывать и обсуждать ценность ООП.
Это клиника.
Удачи!
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798603
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Я не собираюсь доказывать и обсуждать ценность ООП.продолжай совать везде...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798606
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123Я не собираюсь доказывать и обсуждать ценность ООП.продолжай совать везде...совет безработного?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798612
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123совет безработного?что ты переходишь на личности , не владея информацией?
других аргументов нет?
в том же варианте с библиотекой - где твои варианты по привязыванию твоего ООП?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798618
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядругих аргументов нет?как передать список в метод?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798622
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123как передать список в метод?оправдать нафига этот метод.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798626
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяPetro123как передать список в метод?оправдать нафига этот метод.))))) LOL
И ты еще обижаешься.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798642
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123))))) LOL
И ты еще обижаешься.всё понятно - оправдания нет.... и сказать нечего.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798707
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
везде, где я я работал, тестеры тестировали бизнес процессы,
т.е. вводят данные и нажимают кнопочки
им нах не надо уметь писать скрипты для тестирования
сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии

а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем

и вообще, логирование важней тестирования,
один хрен, тесты не гарантируют отсутствие багов,
а логи как минимум прояснят ситуацию
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798710
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинак,
Ну дак уже было выше.
Если цена ошибки высока, тогда тестирование. Иначе логирование типа "упс... Приехали...".
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798742
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинаквезде, где я я работал, тестеры тестировали бизнес процессы,
т.е. вводят данные и нажимают кнопочки
им нах не надо уметь писать скрипты для тестирования
сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии

а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем

и вообще, логирование важней тестирования,
один хрен, тесты не гарантируют отсутствие багов,
а логи как минимум прояснят ситуацию
будет у тебя лететь 3 гига логов в день. ага.

афигеть.. тесты пишут те кому заняться нечем. ты чтоль пм из пенсионного фонда?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798776
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинаквезде, где я я работал, тестеры тестировали бизнес процессы,
т.е. вводят данные и нажимают кнопочки
им нах не надо уметь писать скрипты для тестирования
сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии

а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем

и вообще, логирование важней тестирования,
один хрен, тесты не гарантируют отсутствие багов,
а логи как минимум прояснят ситуацию
Ну ты даёшь чувак! Ты вынырнул из 90х?

Щас уже так не тестят. Современные конторы (я имею в виду от 1000 чел и выше)
берут тестеров-автоматизаторов. Мануальщики щас уже не в почете. Слава богу
тулзы для UI тестирования уже написаны.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798782
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСовременные конторы (я имею в виду от 1000 чел и выше)
Незабудь, что наши мемберы тут, в ветке java, не из этих контор).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798789
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(разводя руками)

Что мне остаётся сказать? Техническая отсталось - это про айтишников.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798828
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonказинаквезде, где я я работал, тестеры тестировали бизнес процессы,
т.е. вводят данные и нажимают кнопочки
им нах не надо уметь писать скрипты для тестирования
сейчас, им в помощь есть тулзы, которые записывают нажимания кнопок и гоняют потом эти сценарии

а писать дополнительный код для проверки своего же кода - это для тех, кому заняться нечем

и вообще, логирование важней тестирования,
один хрен, тесты не гарантируют отсутствие багов,
а логи как минимум прояснят ситуацию
Ну ты даёшь чувак! Ты вынырнул из 90х?

Щас уже так не тестят. Современные конторы (я имею в виду от 1000 чел и выше)
берут тестеров-автоматизаторов. Мануальщики щас уже не в почете. Слава богу
тулзы для UI тестирования уже написаны.
у тебя каша в голове
ручное функциональное тестирование никуда не делось и не денется,
для того чтобы проверить, что, к примеру новый тариф нормально применяется, нужно не только транзакцию провести, но и посмотреть как она по счетам прошла, и как это отобразилось на формах приложения,
это не просто тестер, это бизнес аналитег, или бизнес юзер

то что ты называешь ui тестами - это по сути интеграционный тест, который покажет, работает ли вообще приложение, с точки зрения пользователя

а писать скрипты для тестирования отдельных методов - маразм
ну кому делать нефиг, пусть пишут

зы
про нагрузочное не говорим,
хотя оно также и делается, record and replay действий в браузере
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798838
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рад что мир настолько разнообразен.

Давай закончим на этом.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798946
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonРад что мир настолько разнообразен.

Давай закончим на этом.да ладно чувак, я только разогнался и настроился на срач


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

но епть, везде нужно бизнес задачи решать, а не библиотеки для программистов писать
все сводится к обычным crud,
нужно просто получить данные с формы, валидировать, выполнить бизнес логику и положить в бд

вокруг этого наворачивают, согласно догмам фаулера, кучу лэйеров,
и тестить эти километры оберток, по отдельности, просто нет смысла,
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39798962
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
соглашусь. смысла в юниттестах не особо много в таких приложениях. интеграционные больше уместны. потому вот в той пирмидке которую все знают я бы честно поменял их позиции мместами.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799025
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTсмысла в юниттестах не особо много в такихты тоже развернулся на 180 гр.?))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799026
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакно епть, везде нужно бизнес задачи решать, а не библиотеки для программистов писатьпросто веб подмял десктоп.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799030
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonРад что мир настолько разнообразен.

Давай закончим на этом.да ладно чувак, я только разогнался и настроился на срач


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

но епть, везде нужно бизнес задачи решать, а не библиотеки для программистов писать
все сводится к обычным crud,
нужно просто получить данные с формы, валидировать, выполнить бизнес логику и положить в бд

вокруг этого наворачивают, согласно догмам фаулера, кучу лэйеров,
и тестить эти километры оберток, по отдельности, просто нет смысла,
Последние 5 приложений что мы создавали вообще не имели пользовательского UI.
И уверяю вас это были самые что ни на есть бизнес-задачи.

Но мой вопрос по прежнему звучит. Что вы будете тестировать REST-сервисе ?
Желательно на примерах.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799038
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTсмысла в юниттестах не особо много в такихты тоже развернулся на 180 гр.?))
нет. я и раньше говорил что в той пирамиде всё верно но вот пропорции юнит и сервис тесто я бы чуть поменял.

если у тебя в сервисе взять данные из базы, отрендерить дто в зависимости от А Б В которые тоже берутся откуда то - то там интеграционные тесты с ограниченным контекстом и частью замоканных бинов самое то.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799106
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧто вы будете тестировать REST-сервисе ?
только сам сервис
повторюсь: тестируем бизнес задачу,
а не все методы, которые он внутри вызывает, по отдельности
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTPetro123пропущено...
ты тоже развернулся на 180 гр.?))
нет. я и раньше говорил что в той пирамиде всё верно но вот пропорции юнит и сервис тесто я бы чуть поменял.

если у тебя в сервисе взять данные из базы, отрендерить дто в зависимости от А Б В которые тоже берутся откуда то - то там интеграционные тесты с ограниченным контекстом и частью замоканных бинов самое то.
Вот ты 5 страниц боролся за тесты и писал что без них невозможно работать.
Однако оказалось что это не юнит тесты. И не раскрыл слово отрендерить дто.
Чем выше уровень тестов, тем меньше это дело программиста.
Дак пример покажешь?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799121
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинактестируем бизнес задачу,Имя, сестра, имя!))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799137
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123казинактестируем бизнес задачу,Имя, сестра, имя!))
например,
банковский сервис перевода денег с карты на карту

как его тестировать?
либо форму слепить, либо скриптик наваять,

писать тесты для проверки методов классов person,account,transaction и т.д. можно,
но нафига?
это ж двойная работа
эдак времени на перекуры и на чаепития совсем не останется
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799144
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинаккак его тестировать?
либо форму слепить, либо скриптик наваять,ну и я также. Тут говорят, запуск у ниж 10мин.идет.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799191
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTпропущено...

нет. я и раньше говорил что в той пирамиде всё верно но вот пропорции юнит и сервис тесто я бы чуть поменял.

если у тебя в сервисе взять данные из базы, отрендерить дто в зависимости от А Б В которые тоже берутся откуда то - то там интеграционные тесты с ограниченным контекстом и частью замоканных бинов самое то.
Вот ты 5 страниц боролся за тесты и писал что без них невозможно работать.
Однако оказалось что это не юнит тесты. И не раскрыл слово отрендерить дто.
Чем выше уровень тестов, тем меньше это дело программиста.
Дак пример покажешь?
я не пойму что тебе показать портянку кода и портянку теста?

еще раз. юнит тест - это когда ты тестируешь (формально) функционал одного метода и только его и всё остальное там замокано.
интеграционный тест - это когда ты тестируешь взаимодействие нескольих слоев \ сервисов между собой.

я сказал что в юнит тестах иногда действительно смысла мало потому что надо тестировать именно взаимодействие,а не присваивание данных через геттеры сеттеры. еще они полезны при отлаживании каких-нибудь утилитарных вещей.

остальное интеграционные.

и то и другое и должен и будет писать программист. потому что только ОН знает что и как должно получиться и что и как должно работать. это его компетенция. у остальных ее тупо может не хватить

всякие аввтоматизации с тестами типа юай тесты апи тесты покрывающие флоу и т.д. и т.п. - разумеется это должен делать специально обученный человек. МКуА - аналогично.

но выше описанные два - программист.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799193
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123казинаккак его тестировать?
либо форму слепить, либо скриптик наваять,ну и я также. Тут говорят, запуск у ниж 10мин.идет.
бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799207
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTPetro123пропущено...
ну и я также. Тут говорят, запуск у ниж 10мин.идет.
бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится.
Вот почему я тебя не понимаю, так это потому что ты не про себя пишешь.
Я в студии андроида писал код. Запуск 20 сек при хорошей оперативке и ssd диске. Да. Требователен до этого дела и будет тормозить без этого.
И когда я сказал что 1500 раз делаю run когда пишу, ты упирал что это НЕВОЗМОЖНО.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799210
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTно выше описанные два - программист.все кроме тебя показали хотя бы один (с DSL)
Ты топил за покрытие кода тестами.
Если покрытие 80 проц, то пару часов в день ты их пишешь.
Я не пишу, поэтому и просил от тебя пример.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799214
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTPetro123пропущено...
ну и я также. Тут говорят, запуск у ниж 10мин.идет.
бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится.
Я несколько раз обращал свой взор в Андроид. Не для денег. А так. Для себя.
Написать пару приложений. Типа там.. нажал на кнопочку - и включил полив
воды на даче.

По сабжу. На чем там пишут native?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799216
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTпропущено...

бывает и дольше андройдеры недавно жаловались что у них приложение собирается со всеми зависимостями 18 минут. ))) и да нет ни единого теста. ))) ну может им этот онанизм нравится.
Вот почему я тебя не понимаю, так это потому что ты не про себя пишешь.
Я в студии андроида писал код. Запуск 20 сек при хорошей оперативке и ssd диске. Да. Требователен до этого дела и будет тормозить без этого.
И когда я сказал что 1500 раз делаю run когда пишу, ты упирал что это НЕВОЗМОЖНО.
я пишу про себя. 8-10 минут это монолит на спринге с которым мне приходилось работать почти два года. если у тебя приложение стартует 10 секунд ну я за тебя рад. я вот уже давно на пет-проектах не сижу к сожалению, а было бы весело получать бабло за ничего.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799220
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПо сабжу. На чем там пишут native?студия гугла и java.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799222
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTя пишу про себя. 8-10 минут это монолит на спрингену дак подробнее на абзац можно?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799224
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799232
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123maytonПо сабжу. На чем там пишут native?студия гугла и java.
Студия генерит native?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799247
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСтудия генерит native?ты по русски говори.
Java в ведре это родной ЯП.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799248
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Пару лет назад Kotlin там не котировался и использовался 0.5 проц.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799263
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123maytonСтудия генерит native?ты по русски говори.
Java в ведре это родной ЯП.
Ты точно уверен? А почему существует NDK? И почему виртуальные машинки Dalvik/ART выделены в отдельный класс
в стеке?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799295
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакбанковский сервис перевода денег с карты на карту

как его тестировать?
либо форму слепить, либо скриптик наваять,

писать тесты для проверки методов классов person,account,transaction и т.д. можно,
но нафига?
это ж двойная работа
эдак времени на перекуры и на чаепития совсем не останется
Перекуры, конечно, святое, но!

Ты уверен, что все возможные кейсы по переводу денег сумел нарисовать? А если в каком-то не нарисованном дёргается дополнительный, таки не протестированный метод?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799296
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetro123пропущено...
ты по русски говори.
Java в ведре это родной ЯП.
Ты точно уверен? А почему существует NDK?
На сях пишут натив. IDE какая нравится. Можно в эклипсине.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799301
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы точно уверен?ты вопрос задай развернуто и по русски. Натив от контекста зависит.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799309
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPetro123пропущено...
ты по русски говори.
Java в ведре это родной ЯП.
Ты точно уверен? А почему существует NDK? И почему виртуальные машинки Dalvik/ART выделены в отдельный класс
в стеке?
Я говорил о ЯП на котором пишется подавляющее количество ПО.
Это обозначает родной ЯП).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799314
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTно выше описанные два - программист.все кроме тебя показали хотя бы один (с DSL)
Ты топил за покрытие кода тестами.
Если покрытие 80 проц, то пару часов в день ты их пишешь.
Я не пишу, поэтому и просил от тебя пример.
ты тоже показал?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799319
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTты тоже показал?в теме трехзвенки да.
А тут я тестирую запуская 1500 раз при написании кода.
По кругу идем?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799357
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555казинакбанковский сервис перевода денег с карты на карту

как его тестировать?
либо форму слепить, либо скриптик наваять,

писать тесты для проверки методов классов person,account,transaction и т.д. можно,
но нафига?
это ж двойная работа
эдак времени на перекуры и на чаепития совсем не останется
Перекуры, конечно, святое, но!

Ты уверен, что все возможные кейсы по переводу денег сумел нарисовать? А если в каком-то не нарисованном дёргается дополнительный, таки не протестированный метод?
по нормальному:
сначала будет пожелание заказчика,
потом, в каком то виде, бизнес аналитик слепит спеку программерам
ну а потом тестеры проверят, согласно спеке

а откуда взялся "дополнительный, таки не протестированный метод" ?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799359
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинаксначала будет пожелание заказчика,
потом, в каком то виде, бизнес аналитик слепит спеку программерам
ну а потом тестеры проверят, согласно спекевот. Я ленивый программист и тоже хочу и делаю так)).
Ошибок обычно мало).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799367
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123maytonпропущено...

Ты точно уверен? А почему существует NDK? И почему виртуальные машинки Dalvik/ART выделены в отдельный класс
в стеке?
Я говорил о ЯП на котором пишется подавляющее количество ПО.
Это обозначает родной ЯП).
Я про родной понял. С этим нет вопросов. Я как раз спросил про язык и среду на котором пишут дровишки и всё системное.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799394
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ как раз спросил про язык и среду на котором пишут дровишки и всё системное.у меня андроид телефон и планшет. Поэтому не представляю термин драйвера в андроиде.
Да. Умельцы меняют прошивку. Да там есть уже установленное ПО которое хачат.
Но данное направление мне вообще не интересно. И пользы не вижу.
Как то так.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799525
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
андроид это линукс со всеми вытекающими. соответственно "дровишки" вероятнее всего пишут там же и так же как для какой-нибудь бубунты или дебиана
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799546
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha"дровишки" вероятнее всего пишут
"дровишки" пишутся для своего оборудования. Представить свое оборудование впаянное например внутрь Самсунга - достаточно тяжело ))) Нет... существуют конечно хакеры, умельцы топора и паяльника, которые и такое могу.... но мало их кол-во

Т.ч. присоединяюсь к мнению Petro123
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799548
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проехали дровишки. Это я к слову сказал.

Вот такой вопрос. К примеру я хочу написать приложение под андроид на сях
которое будет обрабатывать картинку со встроенной камеры. С какой стороны
мне к этой задаче подойти?

Достаточно ли будет Kotlin/SDK? Или нужно будет NDK?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799558
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonя хочу написать приложение под андроид на сях
мне кажется это уже попахивает легкой степенью раздвоения личности

или андроид и Java или native телефон и тогда уж си

AFAIK

p.s. под андроид не писал, не читал, но осуждаю )))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799563
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevmaytonя хочу написать приложение под андроид на сях
мне кажется это уже попахивает легкой степенью раздвоения личности

или андроид и Java или native телефон и тогда уж си
Почему или-или?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799566
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonбудет обрабатывать картинку
как обрабатывать? всякие матричны трансформации можно и так, если нужно эффективно и малозатратно - есть например RenderScript . Но можно и на нативе. Но не кнопки, наверняка проще вызывать нужный функционал из нативной либы через JNI
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799570
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonобрабатывать картинку со встроенной камерыа чем java там не устроит? Неужели тормозами))? Счас крестится буду.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799573
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123maytonобрабатывать картинку со встроенной камерыа чем java там не устроит? Неужели тормозами))? Счас крестится буду.
ХЗ. Еще не тестил. Хто тут андроедо-дев?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799575
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashamaytonбудет обрабатывать картинку
как обрабатывать? всякие матричны трансформации можно и так, если нужно эффективно и малозатратно - есть например RenderScript . Но можно и на нативе. Но не кнопки, наверняка проще вызывать нужный функционал из нативной либы через JNI
О. Другое дело. Вот за этот линк большой спасиб.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799576
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
На 4pda форум иди. У на крепостничество отменили.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799579
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonLeonid Kudryavtsevпропущено...

мне кажется это уже попахивает легкой степенью раздвоения личности

или андроид и Java или native телефон и тогда уж си
Почему или-или?
https://developer.android.com/guide/platform

или мы пишем на __стандартном__ Java API или опускаемся на уровень ниже и тогда нужно тестировать на конкретных моделях телефонов / OS.

Может устройство на ARM процессорах (а их тоже много разных), может на Intel, может вообще на чем-то другом. Совместимость на уровне Java API обязан обеспечить производитель, а на уровни C - врят ли.

Android-x86, Android-IA, BlueStacks etc....
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799582
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevmaytonпропущено...

Почему или-или?
https://developer.android.com/guide/platform

или мы пишем на __стандартном__ Java API или опускаемся на уровень ниже и тогда нужно тестировать на конкретных моделях телефонов / OS.

Может устройство на ARM процессорах (а их тоже много разных), может на Intel, может вообще на чем-то другом. Совместимость на уровне Java API обязан обеспечить производитель, а на уровни C - врят ли.

Android-x86, Android-IA, BlueStacks etc....
Леонид вы меня обижаете чесслово. Откуда такое желание разложить все по разным коробочкам?
А что я не могу быть Kotlin/C++ разработчиком?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799585
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
+1
Причем совместимость с API автоматическая через профиль и манифест одной строкой.
А вот нативное Г....))))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799586
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Просто под С++ все меньше задач и они как раз облизываются на java и шарп).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799587
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно давайте тут закончим. Ато бедного автора неуважаем.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799592
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799606
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНо нужно ли этим заниматься? В редких случаях - приходится. Но обычно, можно обойтись и без этого
обычно да можно, но когда нельзя, то вполне себе пишут на native ну или используют нативные либы через JNI. некоторые вещи на jvm-языке эффективно не реализовать, хотя бы потому что приложения сильно ограничены по расходу памяти. Например сканирование qr-кодов, распознавание текста, редактирование изображений почти всегда (или всегда) - это нативные либы.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799616
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
Scenario: Create/Validate Digital Signature for Wind Turbine  
    Given the wind turbine "WT01" with digital signature _WT_
      | uri               | model | frequency | power |towerType | hubHeight |  rotorDiameter | bladeType | ratedWindSpeed | certification | lat        | lng       |
      | /windturbine/1001 | SLE   | 50/60     | 1.5   | MTS      | 65        | 77             | GE40      | 14             |               | 37.7670002 |-121.96057 |
    When a user queries "WT01" wind turbine _WT_
    Then wind turbine "WT01" signature is "true" _WT_
    Given the wind turbine "WT01" updated _WT_
      | model | frequency | power |towerType | hubHeight |  rotorDiameter | bladeType | ratedWindSpeed | certification | lat        | lng       |
      | XLE   | 50/60     | 1.5   | MTS      | 65        | 77             | GE40      | 14             |               | 37.7670002 |-121.96057 |
    When a user queries "WT01" wind turbine _WT_
    Then wind turbine "WT01" signature is "false" _WT_
    Given the wind turbine "WT01" updated with new signature _WT_
      | model | frequency | power |towerType | hubHeight |  rotorDiameter | bladeType | ratedWindSpeed | certification | lat        | lng       |
      | XLE   | 50/60     | 1.5   | MTS      | 65        | 77             | GE40      | 14             |               | 37.7670002 |-121.96057 |
    When a user queries "WT01" wind turbine _WT_
    Then wind turbine "WT01" signature is "true" _WT_
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799635
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaОткрываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели

1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера
2) тут же расписан твой тест кейс на Cucumber
3) Acceptance criteria

Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена.

... skipped

по-моему, у вас как раз очень хороший пример тестов, которые по факту ничего не тестируютсовершенно бесполезны, зато поднимают ЧСВ продакт-оунера и составителя тестов.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799638
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловSergunkaОткрываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели

1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера
2) тут же расписан твой тест кейс на Cucumber
3) Acceptance criteria

Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена.

... skipped

по-моему, у вас как раз очень хороший пример тестов, которые по факту ничего не тестируютсовершенно бесполезны, зато поднимают ЧСВ продакт-оунера и составителя тестов.

Приведите свой пример с интересом сравним.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799641
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaПриведите свой пример с интересом сравним.Вы там вместе с Petro123 сидите чтоли? чуть что, так сразу пример подавай. Я вот могу рассказать почему ваши тесты плохие.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799644
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловSergunkaПриведите свой пример с интересом сравним.Вы там вместе с Petro123 сидите чтоли? чуть что, так сразу пример подавай. Я вот могу рассказать почему ваши тесты плохие.

Расскажите, не надо стеснятся

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

У меня под рукой несколько тысяч тестов - просто я показываю те, которые были написаны в плане ответов на конторском форуме когда люди задавали вопросы и несколько тупили в понимании о чем речь.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799690
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaРасскажите, не надо стеснятся Тут народ уже 7 страниц спорит о том, что тесты вроде как хорошая штука, вот только они должны быть по делу, а не просто для увеличения покрытия, потому что последняя метрика в действительности мало о чемвообще ни о чем не говорит, потом вы приходите весь в белом и говорите: эй, пацаки, тут есть подход fucking around driven development - там уже все продумано за вас, есть аж специальный DSL, нужно только реализовывать то что в жире написали и все будет хорошо. Ну давайте посмотрим на ваш cucumber...

Сценарий:
Код: sql
1.
2.
3.
4.
5.
    When a user queries a list of countries _ADS_
    Then a list of countries should be returned _ADS_
    | USA    |
    | Canada |
    | Mexico |


"Реализация":
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
	@When("^a user queries a list of countries _ADS_$")
	public void a_user_queries_a_list_of_countries__ADS_() throws Throwable {
		countries = retrieveAll(Country.class, null);
	}

	@Then("^a list of countries should be returned _ADS_$")
	public void a_list_of_counries_should_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
	}



Ну, во-первых, никакого DSL какбы и нет - ну позволяет оно каким-то образом параметризовывать (у вас зачистку тестовых данных перед выполнением сценария не увидел, но будем считать что оно может иметь место) тесты через регулярные выражения (буэээ) и какие-то простенькие списки pojo (что если перед тестом нужно мегабайт сильно связных данных в базу пролить?) и на этом все, зато разработчик этих "сценариев" начинает чувствовать себя не обезьяной, а чем-то большим

во-вторых, помимо того, что нужно писать сами тесты, добавляется еще обязанность писать всю эту обвязку к cucumber, при этом очевидно, что все будущие потребности "сценариев" с первого раза не покрыть, поэтому эту лапшу придется постоянно переписывать (есть мнение, что если придется тестировать граничные случаи, то cucumber будет только мешаться)

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


В целом, подход, который вы пропагандируете, хорош только тем, что он снимает ответственность с разработчика: вот какие сценарии мне написали, такие приложение и проходит, однако к правильной работе приложения это не имеет никакого отношения - все то же самое что и с метрикой покрытия.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799848
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинака откуда взялся "дополнительный, таки не протестированный метод" ?
От прошлых подвигов, например.

Тебе надо понять одно - программирование не заканчивается на одном единственном кейсе. И не начинается с одного единственного кейса. Это процесс. Он долгий. Кейсов много. И они наслаиваются. И когда кто-то поступает по твоему, то всегда получает косяки из-за наслоений, потому что проверяет только то, что ему кто-то написал в данном кейсе.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799849
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДостаточно ли будет Kotlin/SDK? Или нужно будет NDK?
Нужно NDK.

Вообще, сначала лучше получить опыт разработки под линуха. Тогда всё остальное будет просто. А если сразу с Java на ведёрный NDK - будешь много думать и мало понимать.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799859
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555казинака откуда взялся "дополнительный, таки не протестированный метод" ?
От прошлых подвигов, например.

Тебе надо понять одно - программирование не заканчивается на одном единственном кейсе. И не начинается с одного единственного кейса. Это процесс. Он долгий. Кейсов много. И они наслаиваются. И когда кто-то поступает по твоему, то всегда получает косяки из-за наслоений, потому что проверяет только то, что ему кто-то написал в данном кейсе.

Regression Test ?
Если кто-то поступил по своему и это сломало "наложения прежних времен", то сразу должно быть видно.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799888
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555maytonДостаточно ли будет Kotlin/SDK? Или нужно будет NDK?
Нужно NDK.

Вообще, сначала лучше получить опыт разработки под линуха. Тогда всё остальное будет просто. А если сразу с Java на ведёрный NDK - будешь много думать и мало понимать.
В какой части например?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799915
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevRegression Test ?
Если кто-то поступил по своему и это сломало "наложения прежних времен", то сразу должно быть видно.Вы про что вообще? Регрессионное тестирование - оно всегда ручное, тут же автоматизацию обсуждают.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799932
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловРегрессионное тестирование - оно всегда ручное

?????

Сколько не видель регрессионных тестов, вот они-то всегда автоматизированы. Это же офигеть, после КАЖДОЙ сборки регрессионное тестирование руками делать.

Или у нас разные понятия о термине "регрессионное тестирование"
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799951
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevИли у нас разные понятия о термине "регрессионное тестирование"Не знаю какие там у вас понятия, но в этом топике обсуждается наполнение каталога src/test - там нет регрессионных тестов: все что там есть запускается разработчиком или CI, регрессионное тестирование отдается полностью на откуп QA - это соседний форум.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39799979
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловно в этом топике обсуждается наполнение каталога src/testзачем так узко?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800001
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123зачем так узко?
дело не в узко, а в том, что я тогда вообще не понимаю, что у людей лежит в src/test )))

Для меня, src/test в первую очередь "проверка того, что не нарушилась работоспособность работающей ранее функциональности, если её код мог быть затронут при исправлении некоторых дефектов в другой функциональности" ( C ) wiki
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800014
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут некоторые 1500 раз свой код запускают поэтому им эти твои проверки ни разу не нужны. да и вообще тесты это потеря времени. ты о чем воще.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800020
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTтут некоторые 1500 раз свой код запускают поэтому им эти твои проверки ни разу не нужны. да и вообще тесты это потеря времени. ты о чем воще.
Я с трудом себе представляю как можно после крупного рефакторинга
по "щелчку пальцев" определить что ничего не сломалось.

Мне кажется - только автоматизация. Кто там 1500 раз делает?
Покажите мне этого человека. И что он это делает каждый день?
Или по изменению?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800037
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Ты проснулся. Поздравляю.
Если такие как ты говорят что тестируют, то пусть расскажут как.
Где твой интеграционный?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800040
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКто там 1500 раз делает?я делаю))).
Но я готов покаятся, если будет автоматизация.
Никто не показал.
Один пример выше был, там dsl и огурцы учить надо).
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800041
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123maytonКто там 1500 раз делает?я делаю))).
Но я готов покаятся, если будет автоматизация.
Никто не показал.
Один пример выше был, там dsl и огурцы учить надо).
Дай бох. Я надеюсь что про 1500 раз ты пошутил.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800044
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
if на пять веток напишу и 5 раз запускаю.
Раз в 5 минут примерно запускаю.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800046
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonнадеюсь что про 1500 раз ты пошутил.надеюсь про то что запуск 10 мин. Тут тоже шутят?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800052
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123maytonнадеюсь что про 1500 раз ты пошутил.надеюсь про то что запуск 10 мин. Тут тоже шутят?
Смотря что. Биржевая система греет кеши примерно 20 минут.
Для поднятия в стеке Jenkins. Но это для end-to-end.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800062
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо это для end-to-end.вот и я говорю. Все про крайности.
Я про 1500 запусков. Другой про 10мин и он пишет по памяти-тестам с черной повязкой. Третий с огурцами)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800106
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555казинака откуда взялся "дополнительный, таки не протестированный метод" ?
От прошлых подвигов, например.

Тебе надо понять одно - программирование не заканчивается на одном единственном кейсе. И не начинается с одного единственного кейса. Это процесс. Он долгий. Кейсов много. И они наслаиваются. И когда кто-то поступает по твоему, то всегда получает косяки из-за наслоений, потому что проверяет только то, что ему кто-то написал в данном кейсе.
это в ипанутых системах они наслаиваются
патамушта там поклоняются фаулеру и пишут километры оберток (лейеров),
то бишь универсальных классов, которые должны использоваться ВЕЗДЕ

а в норм системах, парэкзампль, изменение в логике начисления процентов не сломает заведение договоров
патамушто норм система реализована модульно, и в случае выхода из строя одного модуля, другие не ломаются
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800118
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловSergunkaРасскажите, не надо стеснятся Тут народ уже 7 страниц спорит о том, что тесты вроде как хорошая штука, вот только они должны быть по делу, а не просто для увеличения покрытия, потому что последняя метрика в действительности мало о чемвообще ни о чем не говорит, потом вы приходите весь в белом и говорите: эй, пацаки, тут есть подход fucking around driven development - там уже все продумано за вас, есть аж специальный DSL, нужно только реализовывать то что в жире написали и все будет хорошо. Ну давайте посмотрим на ваш cucumber...

Сценарий:
Код: sql
1.
2.
3.
4.
5.
    When a user queries a list of countries _ADS_
    Then a list of countries should be returned _ADS_
    | USA    |
    | Canada |
    | Mexico |


"Реализация":
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
	@When("^a user queries a list of countries _ADS_$")
	public void a_user_queries_a_list_of_countries__ADS_() throws Throwable {
		countries = retrieveAll(Country.class, null);
	}

	@Then("^a list of countries should be returned _ADS_$")
	public void a_list_of_counries_should_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
	}



Ну, во-первых, никакого 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.
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Country/States/Cities hierarchy 
  As an ADS Modeler,
  I am able to create/update/delete model elements and query using Graph Expression Language

Scenario: Create and query Country/States/Cities 

    Given the countries table _ADS_
      | uri               | name    | 
      | /countries/USA    | USA     | 
      | /countries/Canada | Canada  | 
      | /countries/Mexico | Mexico  | 
      
    And the states table _ADS_
      | uri        | name        | parent          |
      | /states/CA | CA          | /countries/USA  |
      | /states/WA | WA          | /countries/USA  |
      
    And the cities table _ADS_
      | uri                  | name        | parent            |
      | /cities/LosAngeles   | LosAngeles  | /states/CA        |
      | /cities/VancouverUSA | Vancouver   | /states/WA        |
      | /cities/Vancouver    | Vancouver   | /countries/Canada |
      
    When a user queries a list of countries _ADS_
    Then a list of countries should be returned _ADS_
    | USA    |
    | Canada |
    | Mexico |
    
    When a user queries a list of countries by city name "Vancouver" _ADS_
    Then a list of countries should be returned _ADS_
    | USA    |
    | Canada |
    
    When a user queries a list of states _ADS_
    Then a list of states should be returned _ADS_
    | CA |
    | WA |
    
    When a user queries a list of cities _ADS_
    Then a list of cities should be returned _ADS_
    | LosAngeles  |
    | Vancouver   |
    | Vancouver   |



https://github.com/SVyatkin/ads-bdd/blob/master/src/test/resources/Cucumber/IntegrationTest/customer/CountryCities_Test.feature

Я тестирую то, что написано в ценарии не более того

Код: sql
1.
2.
3.
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Country/States/Cities hierarchy 
  As an ADS Modeler,
  I am able to create/update/delete model elements and query using Graph Expression Language



Вам перевести с английского на русский?

Ваши притензии из разряда зачем было Генри Форду устраивать конвейр? Это же столько дополнительного оборудования? Пусть работяги бегают вокруг машины и гайки крутят

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

Но поймите этот код я опубликовал несколько для других целей кроме того как поделится как у нас в конторе дело обстоит хотелось бы услышать как это дело обстоит в других конторах. Моему коду уже без малого лет пять неужели никто так особо и не продвинулся из уважаемой публики?!
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800121
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Один пример выше был, там dsl и огурцы учить надо).

Из моего опыта это занмает пару сессий т.е. часа два/три, чтоб вменяемый разработчик стал писать огурцами. Самому сидеть разбираться видимо займет пару тройку дней, но тоже не смертельно.

Просто когда над проектом работают две\три комманды по человек пять другого варианта я просто не вижу.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800133
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaИзвините, Вы специально вырвали из контекста сам тест?Так вы чтоли не поняли что ваши тесты неправильные? Давайте еще раз:
Код: java
1.
2.
3.
4.
5.
6.
7.
	@Then("^a list of countries should be returned _ADS_$")
	public void a_list_of_counries_should_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
	}

Ожидание сценария: должен вернуться определенный список стран
Реализация теста: в возвращенном списке стран присутствуют ожидаемые
т.е. если вот в этом сценарии:
Код: java
1.
2.
3.
4.
    When a user queries a list of countries by city name "Vancouver" _ADS_
    Then a list of countries should be returned _ADS_
    | USA    |
    | Canada |

Сервис вернет еще и Мексику, то тест все равно пройдет - такие тесты не нужны, никому, совсем.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800154
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловSergunkaИзвините, Вы специально вырвали из контекста сам тест?Так вы чтоли не поняли что ваши тесты неправильные? Давайте еще раз:
Код: java
1.
2.
3.
4.
5.
6.
7.
	@Then("^a list of countries should be returned _ADS_$")
	public void a_list_of_counries_should_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
	}

Ожидание сценария: должен вернуться определенный список стран
Реализация теста: в возвращенном списке стран присутствуют ожидаемые
т.е. если вот в этом сценарии:
Код: java
1.
2.
3.
4.
    When a user queries a list of countries by city name "Vancouver" _ADS_
    Then a list of countries should be returned _ADS_
    | USA    |
    | Canada |

Сервис вернет еще и Мексику, то тест все равно пройдет - такие тесты не нужны, никому, совсем.

Вы реально еще и программировать не умеете "на сухую". Ну проверьте, что вам вернет

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. Ну, так спасибо, конечно, поржал
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800158
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
	@Then("^a list of countries should be returned _ADS_$")
	public void a_list_of_counries_should_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
	}


List<String> countries - то что пишло из сценария, т.е. [USA, Canada], превращается в set1 (new HashSet<String>(countries))
this.countries - то что пришло из сервиса:
Код: java
1.
2.
3.
4.
	@When("^a user queries a list of countries _ADS_$")
	public void a_user_queries_a_list_of_countries__ADS_() throws Throwable {
		countries = retrieveAll(Country.class, null);
	}

превращается в set, теперь вопрос на засыпку: что вернет [USA, Canada, Mexico].containsAll([USA, Canada])? Вы можете продолжать дальше ржать сколько угодно, однако мнение о себе вы уже составили, ровно как и о General Electric.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800172
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов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.
	@Then("^a list of countries should be returned _ADS_$")
	public void a_list_of_counries_should_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
	}


List<String> countries - то что пишло из сценария, т.е. [USA, Canada], превращается в set1 (new HashSet<String>(countries))
this.countries - то что пришло из сервиса:
Код: java
1.
2.
3.
4.
	@When("^a user queries a list of countries _ADS_$")
	public void a_user_queries_a_list_of_countries__ADS_() throws Throwable {
		countries = retrieveAll(Country.class, null);
	}

превращается в set, теперь вопрос на засыпку: что вернет [USA, Canada, Mexico].containsAll([USA, Canada])? Вы можете продолжать дальше ржать сколько угодно, однако мнение о себе вы уже составили, ровно как и о General Electric.

Я Вас вроде как поблагодарил за проделанную работу Меня всегда умиляют люди которые так долго что-то пытаются доказать когда фикс очевидный и занимает одну строку. Тем более Вы смотрите не на тот метод который возращает по имени города страны

Код: sql
1.
2.
3.
4.
	@When("^a user queries a list of countries by city name \"([^\"]*)\" _ADS_$")
	public void a_user_queries_a_list_of_countries_by_city_name__ADS_(String city) throws Throwable {
		countries = retrieveAll(Country.class, "name=" +city+ ">parent[t3]");
	}




Ну, надо подфиксить метод типо так, чтоб было тождественное равенство

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
	@Then("^a list of countries MUST be returned _ADS_$")
	public void a_list_of_counries_MUST_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
                Assert.isTrue(set1.containsAll(set));
	}



По понятным причинам Вы не удосужились показать как у вас пишут тесты. Очень жаль надеялся увидеть, что-то исключительно героическое
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800184
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaНу, надо подфиксить метод типо так, чтоб было тождественное равенство

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
	@Then("^a list of countries MUST be returned _ADS_$")
	public void a_list_of_counries_MUST_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
                Assert.isTrue(set1.containsAll(set));
	}

Вы еще день будете осознавать, что сравнение наборов - это не то же самое что сравнение списков.

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.
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.core.IsEqual.equalTo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
import org.hamcrest.FeatureMatcher;
import org.hamcrest.Matcher;
import org.hamcrest.collection.IsIterableContainingInOrder;
import org.testng.annotations.Test;

/**
 * @author Andrey B. Panfilov <andrey@panfilov.tel>;
 */
public class HamcrestDemo {


	@Test
	public void demo() {
		List<Country> countryList = Arrays.asList(new Country("USA"), new Country("Canada"));
		List<String> expectedNames = Arrays.asList("USA", "Mexico");
		assertThat(countryList, hasSize(expectedNames.size()));
		assertThat(countryList, contains(HamcrestDemo::aCountryNamed, expectedNames));
	}


	public static <E, V> Matcher<Iterable<? extends E>> contains(Function<Matcher<V>, Matcher<E>> func, List<V> items) {
		List<Matcher<? super E>> matchers = new ArrayList<>();
		for (V item : items) {
			matchers.add(func.apply(equalTo(item)));
		}
		return IsIterableContainingInOrder.contains(matchers);
	}

	public static Matcher<Country> aCountryNamed(Matcher<String> expected) {
		return new FeatureMatcher<Country, String>(expected, "A country with name", "name") {
			protected String featureValueOf(Country actual) {
				return actual.getName();
			}
		};
	}


	class Country {

		private final String name;

		public Country(String name) {
			this.name = name;
		}

		public String getName() {
			return name;
		}

	}


}




выхлоп:

Код: plaintext
1.
2.
3.
4.
java.lang.AssertionError: 
Expected: iterable containing [A country with name "USA", A country with name "Mexico"]
     but: item 1: name was "Canada"


заметьте, что:
- никаких преобразований списков одних сущностей в наборы других
- точное соответствие поставленным целям
- текст сообщения об ошибке говорит сам за себя, а не какая-то пустота в случае Assert.true()
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800198
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловSergunkaНу, надо подфиксить метод типо так, чтоб было тождественное равенство

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
	@Then("^a list of countries MUST be returned _ADS_$")
	public void a_list_of_counries_MUST_be_returned__ADS_(List<String> countries) throws Throwable {
		Set<String> set = new HashSet<String>();
		Set<String> set1 = new HashSet<String>(countries);
		for (Country c : this.countries) set.add(c.getName());
		Assert.isTrue(set.containsAll(set1));
                Assert.isTrue(set1.containsAll(set));
	}

Вы еще день будете осознавать, что сравнение наборов - это не то же самое что сравнение списков.

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.
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.core.IsEqual.equalTo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
import org.hamcrest.FeatureMatcher;
import org.hamcrest.Matcher;
import org.hamcrest.collection.IsIterableContainingInOrder;
import org.testng.annotations.Test;

/**
 * @author Andrey B. Panfilov <andrey@panfilov.tel>;
 */
public class HamcrestDemo {


	@Test
	public void demo() {
		List<Country> countryList = Arrays.asList(new Country("USA"), new Country("Canada"));
		List<String> expectedNames = Arrays.asList("USA", "Mexico");
		assertThat(countryList, hasSize(expectedNames.size()));
		assertThat(countryList, contains(HamcrestDemo::aCountryNamed, expectedNames));
	}


	public static <E, V> Matcher<Iterable<? extends E>> contains(Function<Matcher<V>, Matcher<E>> func, List<V> items) {
		List<Matcher<? super E>> matchers = new ArrayList<>();
		for (V item : items) {
			matchers.add(func.apply(equalTo(item)));
		}
		return IsIterableContainingInOrder.contains(matchers);
	}

	public static Matcher<Country> aCountryNamed(Matcher<String> expected) {
		return new FeatureMatcher<Country, String>(expected, "A country with name", "name") {
			protected String featureValueOf(Country actual) {
				return actual.getName();
			}
		};
	}


	class Country {

		private final String name;

		public Country(String name) {
			this.name = name;
		}

		public String getName() {
			return name;
		}

	}


}




выхлоп:

Код: plaintext
1.
2.
3.
4.
java.lang.AssertionError: 
Expected: iterable containing [A country with name "USA", A country with name "Mexico"]
     but: item 1: name was "Canada"


заметьте, что:
- никаких преобразований списков одних сущностей в наборы других
- точное соответствие поставленным целям
- текст сообщения об ошибке говорит сам за себя, а не какая-то пустота в случае Assert.true()

Иными словами Вам удалось освоить JUnit test... поздравляю нормальный результат... есть куда рости
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800218
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergunka,

Мне ваши тесты нравятся.

Про себя unit test-ы мне всегда нравились и когда есть время пишу с удовольствием. Появление всяких mock-ов, я видимо так и не осилил. Я не понимаю зачем тестировать контроллеры, когда в них вся реализация сервисов подменена. На мой взгляд это тестирование тестового кода. И целосообразность подмены вижу только чтобы тестировать отказы (выбрасывая Exception).

Недавно открыл для себя test containers. Поэтому новый модуль который пишу постараюсь покрыть приемочными тестами на (TestContainers + Selenium). Ну и возможно BDD, но тут еще посмотрим.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800219
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0Sergunka,

Мне ваши тесты нравятся.

Про себя unit test-ы мне всегда нравились и когда есть время пишу с удовольствием. Появление всяких mock-ов, я видимо так и не осилил. Я не понимаю зачем тестировать контроллеры, когда в них вся реализация сервисов подменена. На мой взгляд это тестирование тестового кода. И целосообразность подмены вижу только чтобы тестировать отказы (выбрасывая Exception).

Недавно открыл для себя test containers. Поэтому новый модуль который пишу постараюсь покрыть приемочными тестами на (TestContainers + Selenium). Ну и возможно BDD, но тут еще посмотрим.
Моки нужны чтобы подменять сложные источники данных которые в фазе модульного тестинга
недоступны (базы данных и внешние веб-сервисы).

Во всех остальных случаях внедрение моков в тест нужно очень сильно обосновывать т.к. здесь
может быть скрыта немалая часть архитектурных ошибок и упущений.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800228
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0Недавно открыл для себя test containers. Поэтому новый модуль который пишу постараюсь покрыть приемочными тестами на (TestContainers + Selenium). Ну и возможно BDD, но тут еще посмотрим.

У меня друг тестировщик недавно перешел на карате для тестирования Rest API

https://github.com/intuit/karate

Говорит, что очень просто и крепко сделанный продукт опять же с огурцами

Может кому подойдет походу.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800229
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

За свой опыт не видел ни один проект, в котором мне использование моков бы понравилось. При взгляде на который бы сказал "Да классно сделано".

Тот код который я видел обычно называют код с душком. Мок на моке сидит и моком погоняет. И непонятно что там вообще тестируется. При этом подготовка моков это целые "портянки кода".

Еще один недостаток в том что любое изменение очень сильно бьет по всем тестам. На мой взгляд лучше время на приемочные тесты тратить они более высокоуровневые и меньше подвержены внутренним изменениям. Ну и покрыв основные сценарии, получаешь хорошие регрессионные тесты.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800240
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0mayton,

За свой опыт не видел ни один проект, в котором мне использование моков бы понравилось. При взгляде на который бы сказал "Да классно сделано".

Тот код который я видел обычно называют код с душком. Мок на моке сидит и моком погоняет. И непонятно что там вообще тестируется. При этом подготовка моков это целые "портянки кода".

Еще один недостаток в том что любое изменение очень сильно бьет по всем тестам. На мой взгляд лучше время на приемочные тесты тратить они более высокоуровневые и меньше подвержены внутренним изменениям. Ну и покрыв основные сценарии, получаешь хорошие регрессионные тесты.
Можешь показать эти "портянки кода" ?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800243
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

ну это примерно вот такие вещи
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    private void mockService(NotifierContext context) throws Exception {
        for (int i = 0; i < context.businessUsers.size(); i++) {
            final String iin = context.businessUsers.get(i).getIin();
            final String email = context.users.get(i).getEmail();
            final String enterpriseTin = context.businessUsers.get(i).getTin();

            when(userDao.getUser(iin, LocaleUtils.RU)).thenReturn(context.users.get(i));
            when(enterpriseAdminChangeMessageGenerator.generate(email, enterpriseTin, iin, context.daysBeforeBlock)).thenReturn(context.notifyMessage);
            when(blockEnterpriseMessageGenerator.generate(email, enterpriseTin, iin)).thenReturn(context.blockMessage);
        }
    }
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800245
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда.. Тесты не должны базироваться на таких сложных моках. В противном случае надо
тестировать и сами моки. И зачем там цикл? Непонятно. Можно было на 1-й итерации
прогнать все кейсы?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800259
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaИными словами Вам удалось освоить JUnit test... поздравляю нормальный результат... есть куда рости Нет там JUnit никакого, просто показано как правильно реализовывать проверки, едем дальше:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	@Given("^a customer with name \"([^\"]*)\" and phone number \"([^\"]*)\" _Customer_$")
	public void a_customer_with_name_and_phone_number__Customer_(
			String customerName, String customerPhone) throws Throwable {
		customer.setAssetId(customerName);
		customer.setPhone(customerPhone);
		customer.setUri("/customer/" + customerName);
        List<Customer> list = new ArrayList<>();
        list.add(customer);
		rest.post(config.paths.prefix + "/customer", JsonMapper.toJson(list));
	}

	@Then("^the customer with name \"([^\"]*)\" and phone number \"([^\"]*)\" should be returned _Customer_$")
	public void the_customer_with_name_and_phone_number_should_be_returned__Customer_(
			String customerId, String customerPhone) throws Throwable {
		assertTrue(customer.getAssetId().equalsIgnoreCase(customerId));
		assertTrue(customer.getPhone().equalsIgnoreCase(customerPhone));
	}



Смотрим что такое Customer:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    /**
     * serial number for Asset
     * 
     */
    @JsonProperty("assetId")
    private String assetId;

    /**
     * Name
     * (Required)
     * 
     */
    @JsonProperty("name")
    private String name;



ой. Получается, что в сценарии вас просят работать с именем, а вы вместо этого работаете с assetId и при этом все "зеленое", более того, контракт на заполненность имени нигде не форсируется и не проверяется, зато тесты зеленые, ревью делать не нужно - можно сразу в прод засылать. Еще один плохой момент в реализации ваших тестов: если разработчику понадобится переименовать поля pojo, то тестовые сценарии не развалятся - геттеры и сеттеры переименует IDE, а вот в cucumber как торчали "customer with name" так останутся торчать.

В целом, подход что вы описываете, а именно:

SergunkaДавайте опять про то как должно быть.

Открываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели

1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера
2) тут же расписан твой тест кейс на Cucumber
3) Acceptance criteria

Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена.


Вообще никакого отношения к разработке не имеет: существует какое-то преклонение перед BDD, в процессе этого преклонения создаются какие-то артефакты, но толку от них нет никакого просто потому что сам по себе процесс дырявый. И беда не в том, что BDD плохой (хотя этот DSL нужно поддерживать, что печально), а в том что вы неправильно его применяете:
тесты должны разрабатываться (или хотябы рецензироваться) людьми, которые этим профессионально занимаются, подход типа "вот сделай фичу и сам покрой его тестами" много где имеет место быть, но в целом он неправильный (ваши корявые реализации тому подтверждение)

зелень в тестах - это не повод принять изменения от разработчика в основную ветку, это лишь повод сделать-таки ревью коду (и особо тщательное ревью тестам, если они поменялись или появились новые)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800273
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, руками они это делают или нет - не суть важно) и здесь начинаются "приколы", которые мало зависят от разработчика, а именно:

- мы можем хоть как-то надеяться, что конечный разработчик сделает интеграционные тесты для своих модулей, однако, ожидать что он также сделает интеграционные тесты для модулей/сервисов, о которых он даже не знает, несколько наивно: во-первых, в большинстве случаев он просто о них не знает, во-вторых, развертывание чужеродных сред и их тестирование - это не его задача, все что мы может здесь сделать - это полноценно (предоставить спецификацию, входные/выходные данные, подготовить среду и пр.) поставить задачу подготовить интеграционные тесты, если же задачи нет, то и рассчитывать на положительный выхлоп здесь не следует.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800278
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор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

На самом деле регрессия нужна исключительно для рефакторинга.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800318
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМда.. Тесты не должны базироваться на таких сложных моках. В противном случае надо
тестировать и сами моки. И зачем там цикл? Непонятно. Можно было на 1-й итерации
прогнать все кейсы?

Честно говоря даже не хочется разбираться что там человек имел ввиду и что именно он тестирует.

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

Я уверен что mock можно использовать и с пользой, но я редко такое видел. Если тесты приносят хоть кому то пользу они имеют право на жизнь.

Все модели неверны, но некоторые полезны. (С)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800326
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд тесты должны описывать то, как работать с системой разработчику. И одновременно тестировать бизнес кейсы там, где не требуется поднимать окружение. Я умных слов про тесты не знаю, но когда я захожу в новый проект, я первым делом иду в тесты посмотреть, как вызывать тот или иной метод, для чего и почему.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800342
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинИ одновременно тестировать бизнес кейсы там, где не требуется поднимать окружение.
На мой взгляд раньше поднимать окружение было проблемой. Отсюда и появление всех этих Mock-ов. С такими технологиями как docker подготовка тестовой среды перестает быть проблемой. Запускаешь подготовленный контейнер и тестируешь. Конечно по времени выполнения это долго, но тут реальные приемочные тесты, а не тестирование коней в вакууме.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800344
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В одной итерации.

Код: java
1.
2.
3.
4.
5.
6.
7.
            final String iin = context.businessUsers.get(0).getIin();
            final String email = context.users.get(0).getEmail();
            final String enterpriseTin = context.businessUsers.get(0).getTin();

            when(userDao.getUser(iin, LocaleUtils.RU)).thenReturn(context.users.get(0));
            when(enterpriseAdminChangeMessageGenerator.generate(email, enterpriseTin, iin, context.daysBeforeBlock)).thenReturn(context.notifyMessage);
            when(blockEnterpriseMessageGenerator.generate(email, enterpriseTin, iin)).thenReturn(context.blockMessage);


Беря во внимание что это еще не тест а просто инициализация мока. Тем не менее.

Я-бы правила мока расписал тоже по классической схеме Given/When/Then. Заменил бы магические
ссылки на контекст просто константами. Например. Зачем мы берем из контекста какой-то грёбаный емейл?
Кейсы пишутся явно. Например.

Код: java
1.
 final String email = "vasya.pupkin@gmail.com";



Для меня самого есть хорошее правило. Я тесты должен читать как плоский английский текст.
Хороший вариант - использовать ассерты с текстовыми комментариями. Хороший вариант - юзать Хамкрест.

Еще хороший вариант писать методы на Spock/Groovy.

Но здесь сложно судить т.к мы всё равно не видим теста. А автор показал только инициализацию.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800364
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0технологиями как docker подготовка тестовой среды перестает быть проблемой.вооот. Эта тема Ещё интереснее чем REST тестирование)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800389
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1

Тему докера в тестировании я-бы поднял отдельно.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800460
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ какой части например?
Что в какой части? Как под линух на сях писать что-ли?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800464
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevRegression Test ?
Если кто-то поступил по своему и это сломало "наложения прежних времен", то сразу должно быть видно.
Может и в новом кейсе неучёт старых особенностей проявиться.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800471
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакэто в ипанутых системах они наслаиваются
патамушта там поклоняются фаулеру и пишут километры оберток (лейеров),
то бишь универсальных классов, которые должны использоваться ВЕЗДЕ

а в норм системах, парэкзампль, изменение в логике начисления процентов не сломает заведение договоров
патамушто норм система реализована модульно, и в случае выхода из строя одного модуля, другие не ломаются
Логика начисления процентов сложная. Вот тебе тривиальный пример:

Проценты зависят от грейда клиента. Ты протестил грейды когда-то давно и потом мгновенно забыл о них. Затем тебе дали кейс с начислением бонусов. Ты протестил бонусы и опять мгновенно забыл. Но. Ты никогда даже не мог подумать, что грейды влияют на дополнительные проверки клиента. И ты просто задал в своём кейсе "правильный" грейд, который тупо подошёл и не вызвал проблем. И вот в бою начисляют бонусы вип-клиенту (это такой пальцатый перец с подвязками, который из тебя потом котлету сделает). Ну и грейд перца вызвал непродуманную тобой цепочку действий. И всё. Ты попал.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800475
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaНа самом деле регрессия нужна исключительно для рефакторинга.
Причиной изменения софта в большинстве случаев является желание заказчика. Как бы азбука.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800501
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакэто в ипанутых системах они наслаиваются
патамушта там поклоняются фаулеру и пишут километры оберток (лейеров),
то бишь универсальных классов, которые должны использоваться ВЕЗДЕ


аж чето удивился, оказывается Фаулер выступал за суперклассы, а не против.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800697
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555SergunkaНа самом деле регрессия нужна исключительно для рефакторинга.
Причиной изменения софта в большинстве случаев является желание заказчика. Как бы азбука.

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

В США прижился лозунг

авторAlways code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800707
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555maytonВ какой части например?
Что в какой части? Как под линух на сях писать что-ли?
Да. Да. Скажи что ты хотел сказать.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800713
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergunka так как разработчики думают о маентабилити этого кода в будущем.

В США прижился лозунг

авторAlways code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом
а в это время другие, более разумные, продают продукты или услуги, а не код

ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!!
и насколько он мэйнтенабле
работает правильно? значит норм
вот когда глючит, тогда проблема

зы
есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800717
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакSergunka так как разработчики думают о маентабилити этого кода в будущем.

В США прижился лозунг

пропущено...
имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом
а в это время другие, более разумные, продают продукты или услуги, а не код

ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!!
и насколько он мэйнтенабле
работает правильно? значит норм
вот когда глючит, тогда проблема

зы
есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал...
У тебя - странный профиль. Оракл + Работа.

Есть опыт разработки Java?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800718
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergunkaо маентабилити
дружище, соберись, невозможно подобное читать
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800727
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonказинакпропущено...
имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом
а в это время другие, более разумные, продают продукты или услуги, а не код

ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!!
и насколько он мэйнтенабле
работает правильно? значит норм
вот когда глючит, тогда проблема

зы
есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал...
У тебя - странный профиль. Оракл + Работа.

Есть опыт разработки Java?
бгг
напоминает диалог паниковского с шурой балагановым: "а ты кто такой?"

зы
но есличо, писал на jsp, и даже на такой куйне как Visual J++
как одмин ставил и тюнил вебложик, wildfly, glfssfish

как то присел за java ee 7, jsf, ejb, jpa, был вариант проект сделать, потом отвалился
и слава богу,
если честно жава у меня только отвращение вызывает

но тут же топик про тестирование а не про жабу, пусть даже и в разделе жабы
или я ошипся?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800732
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто поинтересовался.

Ты написал такую вещь
ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!!
И я сильно удивился.

Это противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение
что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком...

Профиль - хорошая штука.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800741
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение
что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком....
ну а я посмотрел твой профиль и понял, что, хоть ты и зарегился тут в 2004 году, самостоятельно мыслить ты еще не научился
ну какие нах подтвержденные практики???

тут блин раз в пару лет, полностью опровергают то что раньше в ранг догмы возводили
к примеру
раньше считали что css надо отдельно держать и они должны быть для всех страниц
но в реакте styled components наоборот для кажд компонента отдельный inline css

или,
том кайт считал что бизнес логику надо в базе делать, а фейсбук сказал, что никакой функциональности в базе,
никаких джойнов или форин кей

кто прав?
наверно майтон
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800742
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинактом кайт считалтом кайт иноверец был. Базист). Он с противоположного от java лагеря.
А то что всё течет и все меняется это ты прав конечно)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800751
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТесты не должны базироваться на таких сложных моках. В противном случае надо
тестировать и сами моки

круг замкнулся :)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800753
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800775
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonЭто противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение
что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком....
ну а я посмотрел твой профиль и понял, что, хоть ты и зарегился тут в 2004 году, самостоятельно мыслить ты еще не научился
ну какие нах подтвержденные практики???

тут блин раз в пару лет, полностью опровергают то что раньше в ранг догмы возводили
к примеру
раньше считали что css надо отдельно держать и они должны быть для всех страниц
но в реакте styled components наоборот для кажд компонента отдельный inline css

или,
том кайт считал что бизнес логику надо в базе делать, а фейсбук сказал, что никакой функциональности в базе,
никаких джойнов или форин кей

кто прав?
наверно майтон
Они оба правы. И кайт. И создатели фейсбук.

Вот такой вот парадокс. Ты согласен?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800882
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergunkaПоверьте есть места где занимаются разработкой с нуля, там рефакторинг практически происходит ежедневно, так как разработчики думают о маентабилити этого кода в будущем.
Ежедневный рефакторинг - явный признак отсутствия архитектора. Когда архитектурой занимается непонятно кто, софт выходит "как всегда". Поддержка такого софта обеспечивает рабочие места миллионам даунов, поэтому агрессивные психопаты будут убивать лишь того, кто делает софт не обеспечивающий миллионы рабочих мест для агрессивных психопатов.

В общем - хорошо, что вы там для сейлов пишете, а не для контроллеров, управляющих движками.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800899
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonказинакпропущено...

ну а я посмотрел твой профиль и понял, что, хоть ты и зарегился тут в 2004 году, самостоятельно мыслить ты еще не научился
ну какие нах подтвержденные практики???

тут блин раз в пару лет, полностью опровергают то что раньше в ранг догмы возводили
к примеру
раньше считали что css надо отдельно держать и они должны быть для всех страниц
но в реакте styled components наоборот для кажд компонента отдельный inline css

или,
том кайт считал что бизнес логику надо в базе делать, а фейсбук сказал, что никакой функциональности в базе,
никаких джойнов или форин кей

кто прав?
наверно майтон
Они оба правы. И кайт. И создатели фейсбук.

Вот такой вот парадокс. Ты согласен?
говорю же: самостоятельно мыслить не умеешь
только авторитетов поддерживаешь...
причем всех...
даже если они противоположные мнения отстаивают
ярко выраженный конформист
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800909
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonпропущено...

Они оба правы. И кайт. И создатели фейсбук.

Вот такой вот парадокс. Ты согласен?
говорю же: самостоятельно мыслить не умеешь
только авторитетов поддерживаешь...
причем всех...
даже если они противоположные мнения отстаивают
ярко выраженный конформист
Так что. Можно фейсбук на Оракле построить? Не спеши с ответом. Подумай.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800910
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинак,
ты чего развоевался?
Причем на пустом месте.
Кайта на сегодня цитируют только в узкой среде ДБА и ветки форума Оракле.
Это не значит что он плохой или хороший.
Мысль по сабжу то твоя какая? ))
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800930
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555SergunkaПоверьте есть места где занимаются разработкой с нуля, там рефакторинг практически происходит ежедневно, так как разработчики думают о маентабилити этого кода в будущем.
Ежедневный рефакторинг - явный признак отсутствия архитектора. Когда архитектурой занимается непонятно кто, софт выходит "как всегда".

Это основа экстремального программирования где считается если тесты прошли значит ничего плохого не произошло. Понятно, что архитектурный рефакторинг согласовывается между командами, но когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39800932
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123казинак,
ты чего развоевался?
Причем на пустом месте.
Кайта на сегодня цитируют только в узкой среде ДБА и ветки форума Оракле.
Это не значит что он плохой или хороший.
Мысль по сабжу то твоя какая? ))

Да ладно так вообще всех распугаем... ты его еще пример теста привести попроси
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801036
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergunkaно когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию.
Обычно свой метод пишется при наличии желания со стороны заказчика. Но некоторые мне тут пытались доказать, что они рефакторят код и это им даёт изменения каждый день, без желания заказчика.

И да, зная программистов, я уверен - никто у вас там не рефакторит просто так. Только когда жаренный петух клюнет. Но если (не по моим словам) рефакторят каждый день, значит постоянно в ситуации пожара. Прекрасная работа!
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801122
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Sergunkaно когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию.
Обычно свой метод пишется при наличии желания со стороны заказчика. Но некоторые мне тут пытались доказать, что они рефакторят код и это им даёт изменения каждый день, без желания заказчика.

И да, зная программистов, я уверен - никто у вас там не рефакторит просто так. Только когда жаренный петух клюнет. Но если (не по моим словам) рефакторят каждый день, значит постоянно в ситуации пожара. Прекрасная работа!

Я же Вам объяснил я пишу продукт в команде с нуля. Когда продукт выйдет в продакшин тогда согласен это будет отдельный разговор с заказчиком если это Java EE application. Но это не мой случай когда пишется сервис там пользователей десятки тысяч физически не с кем согласовывать. Product Owner решает будет фича или нет и там уже дальше как я сказал.

Вы путаете суппорт легаси кода для Enterprise apps с разработкой сервисов там разные подходы собственно говоря спасибо так как это многое объясняет в этом топике.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801138
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Sergunkaно когда во время спринта пишешь свою фичу и нужно добавить в интерфейс новый метод, то никто не будет ради этого созывать дизайн сесиию.
Обычно свой метод пишется при наличии желания со стороны заказчика. Но некоторые мне тут пытались доказать, что они рефакторят код и это им даёт изменения каждый день, без желания заказчика.

И да, зная программистов, я уверен - никто у вас там не рефакторит просто так. Только когда жаренный петух клюнет. Но если (не по моим словам) рефакторят каждый день, значит постоянно в ситуации пожара. Прекрасная работа!
Рефакторинг - это просто правила хорошего тона в обществе. Это как не плевать на пол и не кидать бумажки.
Разумеется заказчик за это не платит. Это чисто - ответственность самой команды перед будущими бизнес-вызовами.
Тут вобщем если вы никогда не делаете Р. то никто вас не обвинит явно. Просто накопление технического долга
будет идти по экспоненте и рано или поздно вы почувствуете что такое не платить по счетам. Вобщем-то
термин technical dept очень хорошо отражает ситуацию.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801403
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonРефакторинг - это просто правила хорошего тона в обществе.
Если люди пишут с нуля и каждый день рефакторят - что-то не так в консерватории.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801486
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555maytonРефакторинг - это просто правила хорошего тона в обществе.
Если люди пишут с нуля и каждый день рефакторят - что-то не так в консерватории.
Я не говорил что рефакторят каждый день. Собственно сама задача рефакторинга
не имеет оценочного business-value. Собственно это минимизация рисков усложнения
при будущих CR.

Если вы работаете по другой модели (может гос-контора, может авиа-космос) - то прошу вас!

Расскажите как вы там работаете? Как проектируете? Как вы пишете код? Сколько
времени вы его пишете? Вобщем... как устроен у вас полный цикл?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801504
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ не говорил что рефакторят каждый день. Собственно сама задача рефакторинга
не имеет оценочного business-value. Собственно это минимизация рисков усложнения
при будущих CR.У вашего же Фалера написано когда нужно делать рефакторинг:
- когда не производится ревью коданепонятно как работает код
- когда нет архитетекторавнезапно возникают новые требования
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801596
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет вам... Он такой-же наш как и ваш...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801748
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.И эту концепцию я вообще понять не могу: сидишь себе спокойно, пилишь фичурефакторишь, тут тебе в багтрекинт прилетает мега-срочная бага с одной из семи сред, со всякими стректрейсами, шагами воспроизведения и пр. - начинаешь смотреть в код, а в коде нихрена таких классов и методов нет - уже все отрефакторили
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801758
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов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, когда фиксится только баг.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801762
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, вы же на вопрос не ответили... давайте в вашем сообщении заменим слово "рефакторинг" фразой "вызвать шлюх", при этом связность текста не потеряется:maytonВ нашей команде вопрос о вызове шлюх может поставить любой разработчик.
Решаем и оцениваем командой. Обычно 99% мы заинтересованы в быстрой
поддержке кода поэтому в большинстве случаев все согласны с необходимостью.

Резкого неприятия или каких-то особо резких выступлений "против" не было.
Заводить или не заводить стори в бэклоге - решаем ситуативно. Обычно (99%)
вызов шлюх связан с текущей разработкой и проводится и тестируется
в скоупе задач спринта.

Положительный поинт - перед вызовом шлюх обычно смотрим code-coverage.
И если где-то есть непокрытие - фиксим. И только после этого вызываем.

Когда шлюхи не вызываются.
- во время code-freeze, когда фиксится только баг.что в свою очередь несколько намекает на то, что написанное к рефакторингу отношение имеет постольку-поскольку. Метрика у вас есть какая-то или нет? Процесс есть или нет? Как можно поставить вопрос о рефакторинге и что-то там согласовать, если для того чтобы что-то согласовывать нужен более-менее рабочий прототип того что в итоге получится - а это, считай, добрая половина работы?

Вот вы пишите про некий техдолг, который имеет свойство накапливаться и т.п., накапливается он только по двум причинам:
- кто-то лажает с code review - никакие рефакторинги здесь уже не помогут
- поджимают сроки - здесь вообще нет никаких препятствий прямо с code review завести CR на переделку фичи - оно сразу будет учтено где нужно
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801765
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов- кто-то лажает с code review - никакие рефакторинги здесь уже не помогут
- поджимают сроки - здесь вообще нет никаких препятствий прямо с code review завести CR на переделку фичи - оно сразу будет учтено где нужно
По поводу кого-то.

Вы-же понимаете что программный продукт - это плод коллективной разработки.
И блеймить кого-то или наказывать - не стоит такая задача. Code-review обычно
делает обычный человек. И он тоже может быть уставшим. Озабоченным своей
работой и так далее. Выделенной позиции или должности на это нету.

По поводу лажает .

В лучших традициях процесса - замечания по code-review носят не директивный а
рекомендательный характер. Я взял это на вооружение и всегда пишу начиная
с : "What about... ", "Is it possible to...". Вобщем это обычный сухой технический диалог.
Я не скажу - чувак - ты облажался . Я скажу - в этом коде есть проблема . И ее
надо как-то решать.

Нельзя в команде говорить что кто-то лажает. Кто-то лажает - это поинт чтобы забить
встречу в переговоке 1+1 и обсуждать личность человека и его карьеру.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801834
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

чет жесть какая-то, вот вы утверждаете: "Рефакторинг - это просто правила хорошего тона в обществе. Это как не плевать на пол и не кидать бумажки", если рефакторинг такой полезный, то должны существовать какие-то критерии, определяющие когда его нужно делать, и способ оценки этой "полезности", про полезность я вас пока не спрашиваю: вы пишите, что с "продажей" рефакторинга заказчику возникают проблемы, а в таком случае, вы это мне точно не сможете продать, я пока спрашиваю о том, когда нужно делать рефакторинг (мнение же идолов разнятся: один пишет что нужно 10 раз в день делать, второй, что когда в проекте появляются некие "непреодолимые препятствия" - при этом предпосылки обоих мне совершенно понятны: книжек из одной страницы с единственной фразой "дебилы, наймите себе наконец-то архитектора и делайте ревью кода" много не продашь, поэтому приходится лить воду как только можно, ну а потом, естественно, продавать консалтинг дятлам, которые не в состоянии прочесть и понять прочитанное). Причем что самое удивительное, что куда более разумную и логичную идею "лучше не пропускать плохой код, чем потом рефакторить", которая в буквальном смысле соответствует вашему "это как не плевать на пол и не кидать бумажки", вы полностью отвергаете - где здесь логика?

Вот давайте вернемся к злополучному коду от маэстро BDD:

Код: java
1.
2.
3.
4.
5.
6.
7.
@Then("^a list of countries should be returned _ADS_$")
public void a_list_of_counries_should_be_returned__ADS_(List<String> countries) throws Throwable {
	Set<String> set = new HashSet<String>();
	Set<String> set1 = new HashSet<String>(countries);
	for (Country c : this.countries) set.add(c.getName());
	Assert.isTrue(set.containsAll(set1));
}


как по мне, так здесь очевидно, что такой код пропускать нельзя, для этого даже не нужно смотреть что он на самом деле делает - у него просто отвратительная конвенция наименования, т.е. взгляд ревьювера здесь должен цепляться не за "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.
	assertThat(countryList, hasSize(expectedNames.size()));
	assertThat(countryList, contains(HamcrestDemo::aCountryNamed, expectedNames));


Я искренне надеюсь, что не нужно объяснять почему один код лучше другого, то вот же проблема: если у вас "рефакторинг" продуктового кода вызывает некие проблемы с обоснованием необходимости, то что тогда будет происходить с кодом тестов? Я так понимаю что для поклонников [TB]DD такое вообще невообразимо: как же так, мы тестовые сценарии ставим во главу разработки, а они оказывается полная хрень.

Эпикриз: техдолг возникает не сам по себе, а потому что это кто-то допускает.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801854
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, не могу не согласиться со всем выше изложенным, но у проектов:
а) бывают сжатые сроки
б) ошибки допускают все, причем включая архитекторов
в) на всех хороших специалистов не напасешься
г) есть стартапы, где "команды" толком нет

Всякие TDD и подобные - это быстрый старт в условиях фриланса и\или удаленки, когда business value выкатывают каждую неделю, тыркают кнопочки и продолжают. Да, в таких условиях(а,б,в и прочие - нужные несколько подчеркнуть) ценностью является сам продукт, а технический долг оставляют на потом, если взлетит. И да, очень часто, бывает критично важно выпустить продукт, чтобы им начали пользоваться, а потом уже решать проблемы по мере их поступления.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801922
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

я несколько не понимаю какую мысль вы хотите донести, ну, т.е. я понимаю, что бывают сроки и пр., но как это сказывается на разработчиках? Срыв сроков - это в первую очередь вина руководителя проекта и выше по иерархии, но никак не разработчика: руководство бонусы получает, а разработчик сидит на фиксированной ставке, вот пусть руководство за сроки, техдолг и пр. отвечает. Зачем вы стартапы в пример приводите - вообще непонятно, абсолютное большинство стартапов состоит из долбоебовлюдей, задача которых состоит в освоении денег инвестора, чуть более чем полностью. Вы в скольких стартапах участвовали? одной руки хватит чтобы пересчитать?

Поймите простую вещь: то что пишут в книжках, оно априори рассчитано на текущую конъюнктуру - иначе книжку не продать, другими словами эти книжки рассчитаны на команды, в которых бОльшая часть разработчиков - люди, с несколько более смуглым оттенком кожи чем ваш, и в таких командах рубить говнокод на корню довольно плохая затея, потому что завтра вам попадется негр-трансвестит, который будет утверждать, что его код зарубили только из-за его мировоззрения (тесты-то все зеленые!), в следствие чего одни понятия (код изначально должен быть хорошим) заменяются другими (весь код плохой, поэтому нужно его постоянно рефакторить) - это неправильно, рекомендую вам купить любую такую книжку, потом сжечь, обоссать и выкинуть.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801932
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, я пишу о том, что не бывает проектов(а если они и есть, я ни разу их не видел), где не было б технического долга вовсе. А раз таких проектов нет, то ценность совета: просто все сделайте правильно и рефакторинг не нужен будет - падает на порядок ниже советов вроде: как писать код, чтобы его потом можно было б отрефакторить в сжатые сроки.

Другими словами, от "рефакторить" никуда не деться, а значит:

[Андрей Панфиловкнижек из одной страницы с единственной фразой "дебилы, наймите себе наконец-то архитектора и делайте ревью кода" много не продашь[/quote]

работает, ну мягко говоря, даже не в 10% случаев.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801935
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, я пишу о том, что не бывает проектов(а если они и есть, я ни разу их не видел), где не было б технического долга вовсе. А раз таких проектов нет, то ценность совета: просто все сделайте правильно и рефакторинг не нужен будет - падает на порядок ниже советов вроде: как писать код, чтобы его потом можно было б отрефакторить в сжатые сроки.

Другими словами, от "рефакторить" никуда не деться, а значит:

Андрей Панфилов книжек из одной страницы с единственной фразой "дебилы, наймите себе наконец-то архитектора и делайте ревью кода" много не продашь

работает, ну мягко говоря, даже не в 10% случаев.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801952
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловЕдем дальше, вот мое видение на то, как тот же тест должен выглядеть:

Код: java
1.
2.
	assertThat(countryList, hasSize(expectedNames.size()));
	assertThat(countryList, contains(HamcrestDemo::aCountryNamed, expectedNames));



Функциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет
и не уменшает понимания к коду теста. Хотя за использования Хамкрест я делаю плюсик.

Я-бы оставил тест как есть в первом варианте. При прочих равных условиях если стоит
вопрос менять или не менять тест я выбираю - не менять. Тест - это закон. Закон по которому
должен работать код. И надо иметь очень много освнований чтоб менять сам тест.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801969
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинАндрей Панфилов, я пишу о том, что не бывает проектов(а если они и есть, я ни разу их не видел), где не было б технического долга вовсе. А раз таких проектов нет, то ценность совета: просто все сделайте правильно и рефакторинг не нужен будет - падает на порядок ниже советов вроде: как писать код, чтобы его потом можно было б отрефакторить в сжатые сроки.Мы говорим о разных вещах, я изначально спрашивал: как определить когда нужно проводить рефакторинг, единственный ответ, который я получил звучал так: ну вот у нас тут члены команды на сходке предлагают что-то отрефакторить, а мы потом думаем нужно это или нет - для меня это звучит несколько дико, по следующими причинам:
- складывается впечатление что у продукта нет владельца, потому что предложения о переделке исходит от кого-то "со стороны"
- точно также складывается впечатление, что члены команды вместо того чтобы закрывать текущие CR только и занимаются тем, что выискивают чтобы такого отрефакторить
по моему мнению:
- рефакторинг может потребоваться в случаях:
-- мы закрываем баги производительности или внедряем фичу, которую до этого вообще никак не предвидели
-- нужно сделать срочно-пресрочно: сразу на ревью заводим задачу на рефакторинг
- в остальных случаях, когда мы рефакторим код, который был закоммичен совсем недавно - это дикость
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801978
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonАндрей ПанфиловЕдем дальше, вот мое видение на то, как тот же тест должен выглядеть:

Код: java
1.
2.
	assertThat(countryList, hasSize(expectedNames.size()));
	assertThat(countryList, contains(HamcrestDemo::aCountryNamed, expectedNames));



Функциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет
и не уменшает понимания к коду теста. Хотя за использования Хамкрест я делаю плюсик.

Я-бы оставил тест как есть в первом варианте. При прочих равных условиях если стоит
вопрос менять или не менять тест я выбираю - не менять. Тест - это закон. Закон по которому
должен работать код. И надо иметь очень много оснований чтоб менять сам тест.Есть большая разница в поведении теста: в одном случае он просто пишет "ничего не работает", а потом вы идете и начинаете при помощи отладчика выяснять что же на самом деле ему не понравилось, во втором случае он пишет что именно пошло не так - т.е. какие данные ожидались и какие пришли (у нас например тесты на селениуме идут 3 часа, там и видосики записываются, и сетевой трафик, и скриншоты делаются - исправления можно сделать особо не вникая в код). В целом же я с вами согласен в том плане, что переписывать такие тесты - дурная затея, их проще в таком виде не пропускать вообще - опять же, тесты должны писать профессионалы.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801988
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39801998
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лет 5 назад один архитектор предложил мне подход к разработке.

Вы берете текст user story. И копи-пастите его в код. Исходник у вас - окрашивается
в красный цвет. Но не беда. Вы хладнокровно. Потихоньку выделяете в нем verbs,
делаете методы. Делаете основное ветвление (99% юзер стори базируется на веточках
или кейсах типа если пришел платеж такой-то то делаем тото и т.д). Далее вы рефакторите
его по правилам Java, сохраняя максимально семантику английского текста.
Здесь в помошь будет шаблон Builder. И далее в какой-то момент - вуаля.
У вас - работающий код который имеет очень точное отображение на бизнес-стори.
Реально. Здесь - главное не скатиться в технократию и не делать в if (...) цепочку предикатов.
Надо сохранить английский текст.

В этом есть принципиальная разница например в сравнении с С++ разработкой
где принято сокращать переменные до безсмыслиц со знаком подчеркивания или
не дай бох венгерских нотаций.

Я попробовал эту методику и предлагаю вам всем. Попробуйте когда зайдет новая
user story, воплотить этот подход.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802022
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловрекомендую вам купить любую такую книжку, потом сжечь, обоссать и выкинуть.
Всё же не стоит так категорично подходить к объективным свойствам мироздания.

Люди неидеальны. Это факт. Отсюда много следствий.

Само по себе переименование переменных поможет лишь в каких-то процентах, а все остальные проценты надо закрывать другими методами. Другие методы во многом упираются во всё тот же миропорядок, когда люди не только неидеальны, но и постоянно меняются, плюс постоянно меняется ветер в голове начальства, а помимо ветра их "технический долг" тоже имеет свойство не рассасываться до момента ухода в глубокий минус.

В целом надо искать какой-то компромисс между "как надо" и "что реально есть". Хотя я поддерживаю идею бить по рукам на форумах за неумелые предложения, но, например, так же бить по рукам в коллективе разработчиков - ведёт к текучке кадров и застою оставшихся в привычных для них нишах. И это, естественно, дополняется застоем сверху. Ведь почему надо освоить бюджет инвестора? Да потому, что инвестор верит, что его деньги здесь будут расти. Не кто-то его заставляет всё отдать, а он сам, по глупости или в надежде на чудо или ещё как-то необоснованно, всё отдаёт. И когда вот так отдают, ну как могут с такой неэффективностью сочетаться реально эффективно организующие процесс разработчики? Любой сопляк заявит перед инвестором "да можно в 100 раз круче сделать!!!" и инвестор поверит, потому что хочет верить. А опытные приведут лишь технические аргументы против, чего инвестор понимать не обучен.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802025
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonФункциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет и не уменшает понимания к коду теста.
Он сокращает код до двух строчек, что улучшает читаемость, а значит и понимание кода.

Хотя можно и без функционального стиля в две строчки уложить. Но вероятно, что строчки будут длиннее. А вообще однозначно лучше напрячь разработчиков на хотя бы понимание функционального стиля, что бы прочитать чужое могли, ну и может иногда своё сократить.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802030
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЛет 5 назад один архитектор предложил мне подход к разработке.
Там, где простым является текстовое описание, столь же простой является и программная реализация. Но если за некоторым словом "сделать" скрываются бездны смыслов, то такое описание нельзя назвать простым, оно просто неполное, и тогда никакая программная реализация "в буквальном смысле" не поможет.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802040
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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"? или нужно положить болт на все удобства и гонять тесты через рефлексию?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802053
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловвнимание вопрос: я думаю ни у кого нет сомнений, что тест должен тестировать работу некого API, соответственно без существования предмета тестирования, т.е. API, тест будет не то что падать, он даже компилироваться не будет, как разрешить ситуацию в этом случае? получается что API-таки нужно сделать раньше теста, но как же тогда быть с "You must write a failing test before you write any production code"? или нужно положить болт на все удобства и гонять тесты через рефлексию?

есть третий, промежуточный или вариация на тему.
Одна вариация: пишется тест и он не компилируется. Потом добавляется интерфейс и методы(которые не компилируются), а потом все это обрастает логикой(имплементацией).

Другая вариация: есть некое ядро разрабов-архитекторов, которые создают "скелет" приложения исключительно из интерфейсов, а имплементацию уже спускают на tdd отдел.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802056
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555maytonФункциональный стиль который вы предлагаете не имеет никакого значения. Он не добавляет и не уменшает понимания к коду теста.
Он сокращает код до двух строчек, что улучшает читаемость, а значит и понимание кода.

Хотя можно и без функционального стиля в две строчки уложить. Но вероятно, что строчки будут длиннее. А вообще однозначно лучше напрячь разработчиков на хотя бы понимание функционального стиля, что бы прочитать чужое могли, ну и может иногда своё сократить.
Здесь - самый лучший кейс - голосование внутри команды. Если команда решит что ФП стиль в данном случае
лучше то я не буду спорить.

Моё мнение. Хороший тест - неизменяемый тест.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802057
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555maytonЛет 5 назад один архитектор предложил мне подход к разработке.
Там, где простым является текстовое описание, столь же простой является и программная реализация. Но если за некоторым словом "сделать" скрываются бездны смыслов, то такое описание нельзя назвать простым, оно просто неполное, и тогда никакая программная реализация "в буквальном смысле" не поможет.
Приведите пример.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802060
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов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"? или нужно положить болт на все удобства и гонять тесты через рефлексию?
Я прошу прощения. Я описывал методику не для написания тестов. А для написания
основной бизнес-логики.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802082
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинОдна вариация: пишется тест и он не компилируется. Потом добавляется интерфейс и методы(которые не компилируются), а потом все это обрастает логикой(имплементацией).

Другая вариация: есть некое ядро разрабов-архитекторов, которые создают "скелет" приложения исключительно из интерфейсов, а имплементацию уже спускают на tdd отдел.Первый вариант мало к чему приводитбудет означать что мы еще несколько недель будем эту нетленку рефакторить, второй выглядит более разумно (ну если у нас к описанию сценариев, API и пр. есть еще всякие разные ER- и UML-диаграммы), однако получается так, что на нашей галере есть гребцы, которых заставляют писать код используя "несколько неочевидный" подход, а есть белые надсмотрщики, которые работают совсем не по TDD
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802097
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonalex55555Он сокращает код до двух строчек, что улучшает читаемость, а значит и понимание кода.

Хотя можно и без функционального стиля в две строчки уложить. Но вероятно, что строчки будут длиннее. А вообще однозначно лучше напрячь разработчиков на хотя бы понимание функционального стиля, что бы прочитать чужое могли, ну и может иногда своё сократить.
Здесь - самый лучший кейс - голосование внутри команды. Если команда решит что ФП стиль в данном случае
лучше то я не буду спорить. голосованием решения принимаете?
обычно, на одного синьора всегда несколько падаванов,
некомпетентость всегда победит,
количеством

или вас два с половиной человека в команде?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802110
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonпропущено...

Здесь - самый лучший кейс - голосование внутри команды. Если команда решит что ФП стиль в данном случае
лучше то я не буду спорить. голосованием решения принимаете?
обычно, на одного синьора всегда несколько падаванов,
некомпетентость всегда победит,
количеством

или вас два с половиной человека в команде?
А все синьоры?

Мне показалось что ты слегонца потралливаешь. Не?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802118
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonказинакпропущено...
голосованием решения принимаете?
обычно, на одного синьора всегда несколько падаванов,
некомпетентость всегда победит,
количеством

или вас два с половиной человека в команде?
А все синьоры?

Мне показалось что ты слегонца потралливаешь. Не?
нет
непонятно как можно в технических вопросах голосовать
обычно, кто грамотней к тому и прислушаются
ну или по принципу: я начальник - ты дурак ...

хотя...
в каждом домике свои гомики,
нравится голосовать, голосуйте
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802124
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonпропущено...

А все синьоры?

Мне показалось что ты слегонца потралливаешь. Не?
нет
непонятно как можно в технических вопросах голосовать
обычно, кто грамотней к тому и прислушаются
ну или по принципу: я начальник - ты дурак ...

хотя...
в каждом домике свои гомики,
нравится голосовать, голосуйте
Твой вариант какой? Главный синьор всё решил?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802132
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonГлавный синьор всё решил?
склонен согласится. можно обсудить, но решение должен принять один, самый самый, какой уж есть. голосование ничего не даст - все кругом со своим мнением, причем чем больше стаж, тем больше гонор. представь, что у тебя в команде 10 вадь и два тебя. представил? вздрогнул?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802137
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashamaytonГлавный синьор всё решил?
склонен согласится. можно обсудить, но решение должен принять один, самый самый, какой уж есть. голосование ничего не даст - все кругом со своим мнением, причем чем больше стаж, тем больше гонор. представь, что у тебя в команде 10 вадь и два тебя. представил? вздрогнул?


неуютно
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802141
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинОдна вариация: пишется тест и он не компилируется. Потом добавляется интерфейс и методы(которые не компилируются), а потом все это обрастает логикой(имплементацией).

Другая вариация: есть некое ядро разрабов-архитекторов, которые создают "скелет" приложения исключительно из интерфейсов, а имплементацию уже спускают на tdd отдел.Первый вариант мало к чему приводитбудет означать что мы еще несколько недель будем эту нетленку рефакторить, второй выглядит более разумно (ну если у нас к описанию сценариев, API и пр. есть еще всякие разные ER- и UML-диаграммы), однако получается так, что на нашей галере есть гребцы, которых заставляют писать код используя "несколько неочевидный" подход, а есть белые надсмотрщики, которые работают совсем не по TDD

второй вариант - уже давно стандарт, т.к. к текучке гребцов привыкли все, а белых господ на переправе не меняют.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802143
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonказинакпропущено...

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

хотя...
в каждом домике свои гомики,
нравится голосовать, голосуйте
Твой вариант какой? Главный синьор всё решил?
везде так
хз чо у вас за проект такой, что вы там собираетесь и голосуете по всем проблемам
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802173
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинвторой вариант - уже давно стандарт, т.к. к текучке гребцов привыкли все, а белых господ на переправе не меняют.Прекрасно, исходя всего лишь из первого постулата TDD мы смогли определить его целевую аудиторию
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802176
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonпропущено...

Твой вариант какой? Главный синьор всё решил?
везде так
хз чо у вас за проект такой, что вы там собираетесь и голосуете по всем проблемам
Рад что у вас есть главный архитектор. Но я надеюсь что вы его не дёргаете по пустякам.
В противном случае я ему очень сочувствую.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802321
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonказинакпропущено...

везде так
хз чо у вас за проект такой, что вы там собираетесь и голосуете по всем проблемам
Рад что у вас есть главный архитектор. Но я надеюсь что вы его не дёргаете по пустякам.
В противном случае я ему очень сочувствую.само слово "архитектор" - это как пук в лужу
за ним ничего не стоит
только пузырьки и недолгая вонь...

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

если для вас ето слово имеет магический смысл, то сочувствую...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802380
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если смотреть не в вымышленный мир, а реальный. Выделенная роль архитектора, может проекту вообще ничего не дать. Не раз встречал архитекторов, которые разучились код писать. Процессы ревью кода зачастую формальность, которая не дает высокого качества кода. Тут нужно уметь критиковать и нужно уметь воспринимать критику.

Мне нравится тезис.
Проекты живут до тех пор пока код не деградирует настолько, что проект легче переписать чем поддерживать.

Особенно проблемы начинаются, когда технический долг перерастает в техническую ипотеку.

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

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

Опять же когда идет фаза сдачи релиза и код заморожен, иногда приходится рукожопить и костылить. Но такова селяви (с)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802384
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonпропущено...

Рад что у вас есть главный архитектор. Но я надеюсь что вы его не дёргаете по пустякам.
В противном случае я ему очень сочувствую.само слово "архитектор" - это как пук в лужу
за ним ничего не стоит
только пузырьки и недолгая вонь...

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

если для вас ето слово имеет магический смысл, то сочувствую...
Да кто-же ты? В какой эпохе ты живешь?

Зайди в LinkedIn! Там есть вакансии и должности с названием
Software Architect!

Зайди прочти-жеж!
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802484
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинАндрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо.Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802533
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинАндрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо.Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг?
Добавлю что самие жёсткие рефакторинги мы проводили просто после того как прилетали
дополнительные BR от заказчика. Яркий пример - Биржевая система состоит из трех уровней.
Балансировщик нагрузки. Процессинг. И связи с торговыми площадками. Изначально новый
функционал мы внедрили в уровень связей с площадками. Но когда поняли что нужен
доступ к справочникам - потребовался перенос части логики в уровень процессинга.
Перено повлёк за собой изменение кода + рефакторинг. Такой был дизайн.

Иногда просто переделать код без рефакторинга невозможно. Комплексити высок.

Вообще лично для меня 80% активности разработки - это борьба со сложностью.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802568
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДобавлю что самие жёсткие рефакторинги мы проводили просто после того как прилетали
дополнительные BR от заказчика. Яркий пример - Биржевая система состоит из трех уровней.
Балансировщик нагрузки. Процессинг. И связи с торговыми площадками. Изначально новый
функционал мы внедрили в уровень связей с площадками. Но когда поняли что нужен
доступ к справочникам - потребовался перенос части логики в уровень процессинга.
Перено повлёк за собой изменение кода + рефакторинг. Такой был дизайн.

Иногда просто переделать код без рефакторинга невозможно. Комплексити высок.

Вообще лично для меня 80% активности разработки - это борьба со сложностью.Я вас тоже не понимаю. Вы, конечно, не особо любитель выкладывать код, но давайте, покажите что там да как было и стало, мы посмотрим (по пути обоссым архитектора )
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802593
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вас умоляю... Я нарушу кучу соглашений.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802618
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ вас умоляю... Я нарушу кучу соглашений.Ну а как мы тогда узнаем, действительно там рефакторинг нужен или просто у вас команда про IoC не в курсе?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802649
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловmaytonЯ вас умоляю... Я нарушу кучу соглашений.Ну а как мы тогда узнаем, действительно там рефакторинг нужен или просто у вас команда про IoC не в курсе?
Каким образом IoC избавляет от рефакторинга?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802663
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКаким образом IoC избавляет от рефакторинга?Я даже слов не могу подобрать чтобы ответить.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802664
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоесть... тема исчерпана.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802688
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТоесть... тема исчерпана.Для себя можете считать что исчерпана, поскольку вы "включили индуса". Объясняю:
- ваш код ничего не стоит, просто потому что он никому не нужен
- умение набросать простенький код, указывающий на проблему - это тоже своего рода показатель зрелости разработчика (у индюков в большинстве случаев дела обстоят примерно так: они вендору описать проблему нормально не могут, потому что весь код показывать не хотят, а набросать тестовый сценарий не в состоянии, в итоге у вендора такие обращения висят либо годами, либо проактивно закрываются, а код индусов обрастает костылями, а потом начинается рефакторинг и все что вы проповедуете ), время на это несоизмеримо мало в сравнении с тем, сколько вы здесь просиживаете постя бессмысленные комментарии
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802700
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это капец какой-то. Яже тебе намекнул на NDA. Что ты хотел увидеть? Что мы неправильно разбили софт
на компоненты? Да мы и не делали этого. Ибо не знали что ТАК БУДТЕТ. Да дорогой мой друг. Мы наперед
не знали какие будут дополнения к BR.

И я конечно же внутренне тебе завидую и восхищаюсь что у тебя таких ситуаций не бывает. У тебя всё
всегда правильно задизайнено. Дай бох.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802723
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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И я конечно же внутренне тебе завидую и восхищаюсь что у тебя таких ситуаций не бывает. У тебя всё
всегда правильно задизайнено. Дай бох.Работа разработчика заключается первым делом в применении мозга, а не в бездумном кодинге, в следствие чего мне, к примеру, не свойственно принимать все безумные идеи на веру.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802730
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПриведите пример.
Заказчик:
авторА вот здесь сделайте кнопочку, что бы она отправляла все данные в налоговую.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802733
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакнекомпетентость всегда победит
Можно выстраивать многоуровневую систему.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802736
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакесли для вас ето слово имеет магический смысл, то сочувствую...
Ну понятно, для тебя только твои мысли умные.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802739
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловmaytonКаким образом IoC избавляет от рефакторинга?Я даже слов не могу подобрать чтобы ответить.
Вообще было бы хорошо, если слова сумели бы подобраться.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802740
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Вообще было бы хорошо, если слова сумели бы подобраться.зачем? из прочитанного я понял, что народ IoC использует просто потому что так модно (когда-то давно было модно apache-commons пихать во все щели), а то на самом деле какие возможности он предоставляет никому не интересно.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802745
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловНе знаю как насчет "high cohesion", но "low coupling" - это непосредственная фича IoC/DI, и после этого вы меня спрашиваете какое отношение IoC имеет к ненужности рефакторинга?
Любую фичу можно применить ограниченно. Например вставить IoC в одном уровне, что всё равно не позволит задействовать этот принцип из другого, банально библиотеки разные, возможно даже проекты разделены.

Архитектура же пытается минимизировать подобные издержки в будущем, но поскольку будущее весьма расплывчато, нередко можно промахнуться. Опыт позволяет учитывать больше, но и он не идеал. И уж тем более если мы будем концентрироваться на "качестве кода", а не архитектуре (то есть станем обсуждать простейшие паттерны вместо общих архитектурных решений), то мы и получим "качественный" уровень, а вот сумма уровней будет некачественной.

IoC это уровень не самый высокий, где-то средний между проектом и классом. Важнее, безусловно, проект. Класс - на самом последнем месте. Но концентрироваться любят на качестве кода именно в классах.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802749
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловзачем?
Ну да, уровень читателе не всегда высокий, но как-то коротко сформулировать возражение - это правильная практика. А уход от формулировки "по делу" обычно означает либо игнор оппонента, либо отсутствие умения кратко сформулировать. Вы ведь не игнорируете Майтона? Способны кратко сформулировать? Значит в вашем случае вариант номер три - лень. Нет?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39802760
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Любую фичу можно применить ограниченно. Например вставить IoC в одном уровне, что всё равно не позволит задействовать этот принцип из другого, банально библиотеки разные, возможно даже проекты разделены...Вы тезис о том, что IoC снижает потребности в рефакторинге хотите дополнить или оспорить?

alex55555Ну да, уровень читателе не всегда высокий, но как-то коротко сформулировать возражение - это правильная практика. А уход от формулировки "по делу" обычно означает либо игнор оппонента, либо отсутствие умения кратко сформулировать. Вы ведь не игнорируете Майтона? Способны кратко сформулировать? Значит в вашем случае вариант номер три - лень. Нет?Я в первую очередь пытаюсь получитьстроить свое мнение на каких-то более-менее измеримых вещах, т.е.:
- рефакторинг нужно делать тогда, когда команда проголосовала - это изменить нельзя (читайте про шлюх )
- а у нас вот в проекте под NDA (наверное делаем его для NSA) постоянно происходит особо жесткий рефакторинг - это тоже измерить нельзя

когда мы не можем что-либо измерить вместо нормального диалога получается спор, подобный тому, как спорят дети в песочнице: а у меня папа боксер, попробуй что-то возразить.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803244
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловВы тезис о том, что IoC снижает потребности в рефакторинге хотите дополнить или оспорить?
Если непосредственно о данном паттерне, то иногда он просто мешает. Для его эффективной работы нужно сочетание таких факторов, как простота вызывающей стороны, качество её реализации, качество её документирования, качество обучения пользователей (программистов, "оборачиваемых" предлагаемой средой), качество коммуникаций как в отдельных командах (среда/обработчики событий), так и между ними. В общем рефакторингом здесь можно заниматься, но если не решены выше показанные проблемы, то весь рефакторинг уйдёт в свисток.
Андрей ПанфиловЯ в первую очередь пытаюсь получитьстроить свое мнение на каких-то более-менее измеримых вещах
Вот китайцы тоже умеют измерять. Они давно этому научились. Считают по головам - этот кодит? Хорошо. А этот? Этот думает. Так он лентяй! Все кодят, а он, понимаете ли, думает (бездельничает)! В итоге китайское качество нам всем хорошо известно.

На разработку влияют много факторов. Можно править измеримые "по простому", но тогда опять пар движется больше в направлении свистка. И можно работать со сложной системой, что-то измеряя, и что-то просто направляя примерно в сторону хорошего результата. В первом случае измерения скатываются в аджайл-скачки и китайский подход "некогда думать, прыгать надо".
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803251
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинАндрей Панфилов, я понимаю, о чем вы говорили изначально, но я отвечал именно на то, что выделил в отдельную вашу цитату. В остальном, да, надо нанимать грамотных специалистов, поднимать культуру кодирования, проводить код ревью, учить людей палкой писать понятные именования переменных и все такое. Но в итоге все проекты приходят все равно к тому, что рефакторить надо.Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг?

а я решительно не понимаю вас, потому что вы пишите вещи как-будто и правильные, но и одновременно как-будто живете на поляне с единорогами. Все знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг.

У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803260
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинВсе знают, что код ревью, архитектор
и что живут они примерно там же, где единороги
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803267
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,Вы тезис о том, что IoC снижает потребности в рефакторинге хотите дополнить или оспорить?

Давайте посмотрим, как нам помогает ioc в проектах.

До ioc код выглядит вот так:

Код: java
1.
2.
3.
public class A {
 private B b = new BImpl();
}



После возмущений отдела тестирования код выглядит так:

Код: java
1.
2.
3.
4.
5.
6.
7.
public class A {
 private B b;

 public A(B b) {
  this.b = b;
}
}




Код: java
1.
2.
3.
4.
public class A {
 @Autowired
 private B b;
}



После код ревью и проверки на чек стайл код выгляди так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class A {

 private B b;
 
 @Autowired
 public A(B b) {
  this.b = b;
 }
}



Внимание, вопрос!?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803275
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинАндрей Панфиловпропущено...
Я все равно вас решительно не понимаю. Вот смотрите, любое управляющее воздействие можно разделить на "реактивное" и "проактивное" - разница примерно как между "разгребать последствия пожара" и "предотвратить пожар" (если хотите, то могу примеры привести, но думаю смысла не имеет). Вот ревью кода, очевидно, относится к проактивному управлению, а рефакторинг - в большинстве случаев это уже тушение пожара. Более того, не понятен вот какой момент: ревьювер "пропустил" (т.е. после ревью не осталось никаких артефактов) стремный код, что в свою очередь означает, что каким образом можно сделать код лучше ревьювер не знает, откуда тогда вообще возникает тогда идея сделать рефакторинг?

а я решительно не понимаю вас, потому что вы пишите вещи как-будто и правильные, но и одновременно как-будто живете на поляне с единорогами. Все знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг.

У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?
Я-бы просто добавил что нет единой точки зрения на рефакторинг даже среди двух синьоров.
Да и нельзя обсуждать сферический рефакторинг. Это всегда - в контексте задачи и будущих
возможных изменений. И как можно вообще "со слов" сделать суждение о качестве кода.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803284
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин
После код ревью и проверки на чек стайл код выгляди так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class A {

 private B b;
 
 @Autowired
 public A(B b) {
  this.b = b;
 }
}

Прямо в таком виде и прошел ревью? Вроде по канону так должно быть:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public class A {

 private final B b;
 
 public A(B b) {
  this.b = b;
 }
}


ОзверинВнимание, вопрос!?Не знаю в чем у вас вопрос, идея была показать мощь DI на одном классе?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803294
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, моя идея, как di, ioc и сила слова помогут в данном случае что-либо отрефакторить, если из конструктора этого класса надо все равно убрать интерфейс класса b?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803377
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как же быть проектам без DI?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803382
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никКак же быть проектам без DI?

да нито от di не отказывается. Просто тут мнение вдруг появилось, что если есть di, то рефакторинг настолько прост становится, что можно с закрытыми глазами делать.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803386
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинзабыл никКак же быть проектам без DI?

да нито от di не отказывается. Просто тут мнение вдруг появилось, что если есть di, то рефакторинг настолько прост становится, что можно с закрытыми глазами делать.

Да я понимаю, то риторический вопрос был) По иронии судьбы на текущем проекте начали с рефакторинга - убрали DI :)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803389
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинмоя идея, как di, ioc и сила слова помогут в данном случае что-либо отрефакторить, если из конструктора этого класса надо все равно убрать интерфейс класса b?Если вам принципиально не нравится наличие конструктора в жава коде (хотя проблемы нет), можете оломбочить проект и писать @RequiredArgsConstuctor, пойнт же в том, что без DI при добавлении новой зависимости в класс придется еще и ответную часть переделывать, а не просто в одном классе добавить еще одно поле и возможно поменять конструктор.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803420
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинВсе знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг.

У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево).

Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803422
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никКак же быть проектам без DI?код писать более аккуратно и функциональность наперед продумывать, а не как в TDD: пишем только то что требует тестовый сценарий, а потом постоянно рефакторим.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803427
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинВсе знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг.

У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево).

Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи.

так где тот самый проект, который живет без рефакторинга? По вашим словам, надо всего лишь
а) нанять грамотного архитектора
б) хороших специалистов
в) просто заставить людей перестать ошибаться

Где?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803429
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинмоя идея, как di, ioc и сила слова помогут в данном случае что-либо отрефакторить, если из конструктора этого класса надо все равно убрать интерфейс класса b?Если вам принципиально не нравится наличие конструктора в жава коде (хотя проблемы нет), можете оломбочить проект и писать @RequiredArgsConstuctor, пойнт же в том, что без DI при добавлении новой зависимости в класс придется еще и ответную часть переделывать, а не просто в одном классе добавить еще одно поле и возможно поменять конструктор.

мне принципиально непонятна связь наличия ioc и di с тем, что рефакторинг необходим?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803436
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинВсе знают, что код ревью, архитектор и все такое и ВСЕ РАВНО нет НИ ОДНОГО проекта, длительностью от 1 года, ГДЕ НЕ ТРЕБОВАЛСЯ бы рефакторинг.

У вас есть примеры? У меня, лично, нет. Из чего я делаю вывод, что ваши слова да -правильные, но что-то не так с ними, раз не работает?Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево).

Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи.

насчет спринга, в котором нет "ничего ломающего" при рефакторинге..я конечно, не могу просмотреть все эти коммиты, но такое ощущение, что вы последние 5-7 лет не со спрингом работаете, а где то опять же на поляне с единорогами.

Смореть надо на "критикал" баги. Их там много.
Если смотреть так - сквозь пальцы на коммты с рефакторингом(даже если условиться, что сюда они вошли все), то даже в этом списке достаточно вещей с перемещением классов, изменением логики, созданием новых классов, а значит значительным изменением логики.
Почему же это не рефакторинг-рефакторинг?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803450
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинАндрей Панфиловпропущено...
Ну вот берем к примеру спринг - там на первой странице коммиты со словом "refactoring" покрывают последние полтора года, если смотреть по тексту самих коммитов, то там не рефакторинг-рефакторинг, а просто какие-то улучшения в отдельных классах, ничего принципиально не меняющие/ломающие, причем в абсолютном своем большинстве от одного человека. Здесь надо, конечно, сделать скидку на то, что спринг - это библиотека, а не приложение, поэтому им заниматься рефакторингом и ломать обратную совместимость по определению западло (хотя если посмотреть на другой проект - там и без рефакторинга ломают обратную совместимость направо и налево).

Еще раз повторюсь: рефакторинг - это не стиль программирования, это расплата за старые грехи.

так где тот самый проект, который живет без рефакторинга? По вашим словам, надо всего лишь
а) нанять грамотного архитектора
б) хороших специалистов
в) просто заставить людей перестать ошибаться

Где?
+1

Мда.. Звучит как хорошая мечта.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803551
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо
спор идет о следствиях
юнит тесты и рефакторинг - это следствие того, что ооп стали пихать везде

ООП оч уместно в разработке библиотек UI компонентов
по опыту, дельфи, дотнет, реакт - это классные библиотеки UI компонентов

а в бд или бэкенде в вебе ООП нахер не надо
в бд - реляционные операции
а в бэкенде - request-response, т.е. последовательная логика,
и реализация в императивном стиле как раз к месту

имхо,
ООП в базе или в бэкенде - это как на лыжах по асфальту: "можно, но зачем?"
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803556
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO.
Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите.
Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП
вообще?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803566
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO.
Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите.
Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП
вообще?
бгг
я когда-то сам так писал
JSP и JDBC - и никаких орм

никогда не видел смысла в том, чтобы вытащить данные селектом в resulteset,
а потом, отфильтровать одну запись и сделать из результата класс для active record
а потом создать коллекцию, в которую запихать несколько active records

нахера?
если в резалтсете и так набор записей
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803568
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonВ бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO.
Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите.
Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП
вообще?
бгг
я когда-то сам так писал
JSP и JDBC - и никаких орм

никогда не видел смысла в том, чтобы вытащить данные селектом в resulteset,
а потом, отфильтровать одну запись и сделать из результата класс для active record
а потом создать коллекцию, в которую запихать несколько active records

нахера?
если в резалтсете и так набор записей
Наиболее красивую интеграцию мира ООП и баз данных я видел в InterSystems Cache.
Там всё было - native. Я даже готовился на разраба этой системы в двухтысячных.
Но вакансия cгорела.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803712
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакmaytonВ бэкенде вполне себе умество заводить плоские бизнес-сущности. Plain. POJO.
Насчет логики. Да. Ее можно реализовать процедуральном стиле. Но скажите.
Вы сколько практически видели рабочих бизнес-бэкендов написанных без ООП
вообще?
бгг
я когда-то сам так писал
JSP и JDBC - и никаких орм

никогда не видел смысла в том, чтобы вытащить данные селектом в resulteset,
а потом, отфильтровать одну запись и сделать из результата класс для active record
а потом создать коллекцию, в которую запихать несколько active records

нахера?
если в резалтсете и так набор записей

вам это с вадей обсудить.
На вопрос - очень простой ответ - читаемость.
Другой вопрос, что ооп в яве пошло немноог по иному пути и мне больше заходит ddd в плане к подходу именования и сущностей, объединения свойств и так далее.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803753
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинмне принципиально непонятна связь наличия ioc и di с тем, что рефакторинг необходим?Ну мне тоже непонятна необходимость рефакторинга при наличии IoC/DI - кода меньше, зависимости через весь стэк таскать не нужно, просто делаем точечные изменения там где нужно и все.
Озвериннасчет спринга, в котором нет "ничего ломающего" при рефакторинге..я конечно, не могу просмотреть все эти коммиты, но такое ощущение, что вы последние 5-7 лет не со спрингом работаете, а где то опять же на поляне с единорогами.

Смореть надо на "критикал" баги. Их там много.
Если смотреть так - сквозь пальцы на коммты с рефакторингом(даже если условиться, что сюда они вошли все), то даже в этом списке достаточно вещей с перемещением классов, изменением логики, созданием новых классов, а значит значительным изменением логики.
Почему же это не рефакторинг-рефакторинг?Чет не то, вы просили промер проекта где не рефакторят каждый раз после похода в уборную - я вам его привел, вы же начинаете привередничать в духе, а вот смотрите: там баги в проекте, да еще за полтора года аж целый класс из одного модуля в другой перенесли. Для продуктовой разработки рефакторинг не свойственен, более того, более другим языкам рефакторинг тоже не свойственен, вы же обчитались туалетного чтива и несете гнилую идею в массы, а в вашем чтиве прямым текстом написано про целевую аудиторию: разработчик - дурак и с первого раза код написать не может.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803793
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, а сколько тысяч строк в вашем проекте?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803801
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, я просил проект, где нет рефакторинга, вы показали пример, где он есть. По-моему, это у вас разногласия с вашими единорогами...У вас какая-то сортирная тематика пошла: то обоссать архитектора, то в туалет сходить за рефакторингом. Все, что от вас требуется, это признать, что в мире фактически нет проектов более или менее крупных, которые обходятся без рефакторинга ...
Ну если вы такоие знаете, я тут подожду, чтобы вы привели пример.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803803
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинДо ioc код выглядит вот так:
...
После код ревью и проверки на чек стайл код выгляди так:

Это не IoC.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803805
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555ОзверинДо ioc код выглядит вот так:
...
После код ревью и проверки на чек стайл код выгляди так:

Это не IoC.


срочно расскажите, что это.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803807
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какое интересное перевоплощение из тестирования в рефакторинг )))
из серии что было раньше "рефакторинг" или "тестирование"? :)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803811
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonа сколько тысяч строк в вашем проекте?Вы опять с индусскими метриками?
Вот простой пример:
mayton
Код: java
1.
2.
3.
4.
5.
6.
public static void recusiveN(int n, int maxN) {
        if (n <= maxN) {
              println(n);
              recursiveN(n + 1, maxN);
        }
}


Ваше решение неправильное просто потому что вы условие не прочли - условные переходы использовать нельзя. Подсказка как сравнить число с 0:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
	public static void main(String[] args) {
		N[] n = new N[]{() -> false, () -> true};
		System.out.println(n[-1 >>> 31].isNegative());
		System.out.println(n[0 >>> 31].isNegative());
		System.out.println(n[1 >>> 31].isNegative());
	}

	interface N {

		boolean isNegative();

	}


Идите рефакторите
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803814
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, да. Насчет условий я проглядел. Ну что-ж. Тернарный оператор сойдет.

Я почему спросил про метрики. Обычно (как правило) коплексность проекта растет от количества строк.
И от количества участников команды. Я не знаю что там у вас за проект. Возможно действительно
у вас всё лазурно и радужно.

Но чьорт возьми чем вы заняты? Может у вас вообще бэклог пустой. И проект уже давно не развивается.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803826
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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"
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803834
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловmaytonНасчет условий я проглядел. Ну что-ж. Тернарный оператор сойдет.
не сойдет, еще одно невнимательное чтение.
Мне на минуточку показалось что у вас что-то личное. Я вас чем-то обидел?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803835
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловmaytonНасчет условий я проглядел. Ну что-ж. Тернарный оператор сойдет.
не сойдет, еще одно невнимательное чтение.
maytonОбычно (как правило) коплексность проекта растет от количества строк.Индусы рассказали? Будете против Дейкстры топить?
Хорошо. Существует положительная корреляция между сложностью проекта и количеством строк.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803863
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинв мире фактически нет проектов более или менее крупных, которые обходятся без рефакторинга ...
епть, я в каком-то параллельном мире живу
где я работал нигде этой херней не маялись
и в банке иностранном и в проектах на гос структуры и коммерческие конторы
а там и базы в много тб, и кол-во юзеров несколько тыщ одновременно в онлайне
не было там никакого рефакторинга
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803872
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакОзверинв мире фактически нет проектов более или менее крупных, которые обходятся без рефакторинга ...
епть, я в каком-то параллельном мире живу
где я работал нигде этой херней не маялись
и в банке иностранном и в проектах на гос структуры и коммерческие конторы
а там и базы в много тб, и кол-во юзеров несколько тыщ одновременно в онлайне
не было там никакого рефакторинга

рефакторинга нет в 2х типах больших проектов:

- заброшенных
- там, где всем плевать на то, что происходит внутри проекта. Такие проекты рано или поздно переписываются с нуля. Регулярно такое встречаю.

Ваша тема как бе говорит о том, что вы либо тогда были не в себе, либо сейчас: https://www.sql.ru/forum/922687/proektirovanie-chto-eto-dlya-vas?hl=
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803873
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне на минуточку показалось что у вас что-то личное. Я вас чем-то обидел?Отнюдь, однако, как оппонент в данном вопросе вы себя дескредитировали: вы сначала рассказываете что рефакторинг в разработке это само собой разумеющееся, а потом демонстрируете собственную невнимательность, ну т.е., вы рефакторите просто потому что изначально делаете не то что нужно, а мои розовые единороги исповедуют некие другие принципы в разработке.

maytonХорошо. Существует положительная корреляция между сложностью проекта и количеством строк.На ваших проектах может и существует, на своих как-то не углядел, даже более того, вы по какой-то причине топите за сложность проекта, а не за его качество, что несколько странно: качество проекта никак с количеством строк не коррелирует, а рефакторинг, проповедуемый вами, по всем канонам должен количество строк уменьшать, где логика в вашем вопросе?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803880
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилова рефакторинг, проповедуемый вами, по всем канонам должен количество строк уменьшать, где логика в вашем вопросе?

можем вы говорите о каком-то не таком рефакторинге? Как кол-во строк не влият на сложность проекта так и рефакторинг не должен прямо влиять на кол-во строк. Откуда вы это вообще взяли?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803884
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинрефакторинга нет в 2х типах больших проектов:

- заброшенных
- там, где всем плевать на то, что происходит внутри проекта. Такие проекты рано или поздно переписываются с нуля. Регулярно такое встречаю.
вранье или ты просто мало видел
в банке на коболе на мейнфреймах система работала, с лохматых 80-х
всем она нужна и никто ее не переписывает

ОзверинВаша тема как бе говорит о том, что вы либо тогда были не в себе, либо сейчас: https://www.sql.ru/forum/922687/proektirovanie-chto-eto-dlya-vas?hl=
некрофил детектед?
сколько времени то прошло?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803891
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакОзверинрефакторинга нет в 2х типах больших проектов:

- заброшенных
- там, где всем плевать на то, что происходит внутри проекта. Такие проекты рано или поздно переписываются с нуля. Регулярно такое встречаю.
вранье или ты просто мало видел
в банке на коболе на мейнфреймах система работала, с лохматых 80-х
всем она нужна и никто ее не переписывает

ОзверинВаша тема как бе говорит о том, что вы либо тогда были не в себе, либо сейчас: https://www.sql.ru/forum/922687/proektirovanie-chto-eto-dlya-vas?hl=
некрофил детектед?
сколько времени то прошло?


то есть - заброшенный проект?:) ОК!
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803897
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинказинакпропущено...

вранье или ты просто мало видел
в банке на коболе на мейнфреймах система работала, с лохматых 80-х
всем она нужна и никто ее не переписывает

пропущено...

некрофил детектед?
сколько времени то прошло?


то есть - заброшенный проект?:) ОК!
читать умеешь?

казинакв банке на коболе на мейнфреймах система работала, с лохматых 80-х
всем она нужна и никто ее не переписывает
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803905
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакОзверинпропущено...



то есть - заброшенный проект?:) ОК!
читать умеешь?

казинакв банке на коболе на мейнфреймах система работала, с лохматых 80-х
всем она нужна и никто ее не переписывает

проект развивается?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803916
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинможем вы говорите о каком-то не таком рефакторинге?Судя по тому как вы накинулись на перемещенный класс в спринге - так и есть

Озверин Как кол-во строк не влият на сложность проекта так и рефакторинг не должен прямо влиять на кол-во строк. Откуда вы это вообще взяли?Ну как, мы когда занимаемся непотребством в виде рефакторинга, чего мы хотим добиться? Повысить поддерживаемость кода, т.е. удалить дубликаты, пообильнее обмазаться функциональщиной, декларативностью и кодо-генераторами, инкапсулировать побольше логики в объекты - все это на ваш взгляд увеличивает количество кода?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803917
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинказинакпропущено...

читать умеешь?

пропущено...


проект развивается?
банк развивается
а в этой системе главная книга, и счета клиентов
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803969
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакОзверинпропущено...


проект развивается?
банк развивается
а в этой системе главная книга, и счета клиентов

то есть проект умер и относится к первому типу проектов. читд.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803971
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинможем вы говорите о каком-то не таком рефакторинге?Судя по тому как вы накинулись на перемещенный класс в спринге - так и есть

Озверин Как кол-во строк не влият на сложность проекта так и рефакторинг не должен прямо влиять на кол-во строк. Откуда вы это вообще взяли?Ну как, мы когда занимаемся непотребством в виде рефакторинга, чего мы хотим добиться? Повысить поддерживаемость кода, т.е. удалить дубликаты, пообильнее обмазаться функциональщиной, декларативностью и кодо-генераторами, инкапсулировать побольше логики в объекты - все это на ваш взгляд увеличивает количество кода?

избавиться от дубликатов не преследует своей целью уменьшить кол-во кода, а сделать код легко поддерживаемым. Мы точно с вами об одном и том же рефакторинге говорим? Такое ощущение, что вы читаете мурзилку для perl программистов.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803978
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинказинакпропущено...

банк развивается
а в этой системе главная книга, и счета клиентов

то есть проект умер и относится к первому типу проектов. читд.
Если системой ежедневно пользуются тысячи людей - это по твоему "проект умер"?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803981
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакОзверинпропущено...


то есть проект умер и относится к первому типу проектов. читд.
Если системой ежедневно пользуются тысячи людей - это по твоему "проект умер"?


win xp пользуются ежедневно тысячи людей, угадайте, проект жив?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803982
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловmaytonМне на минуточку показалось что у вас что-то личное. Я вас чем-то обидел?Отнюдь, однако, как оппонент в данном вопросе вы себя дескредитировали: вы сначала рассказываете что рефакторинг в разработке это само собой разумеющееся, а потом демонстрируете собственную невнимательность, ну т.е., вы рефакторите просто потому что изначально делаете не то что нужно, а мои розовые единороги исповедуют некие другие принципы в разработке.
Не согласен. Я скажу честно что я не хочу отстаивать точку зрения или доказывать "любой ценой". Не для этого я читаю форум.
Если для вас это так важно в форуме - чтож. Следите за своей репутацией. Чтоб
вас невзначай не поймали на обычной человеческой ошибке. И не дай бох
не посадили на скамью дискредитированных. Рядом со мной как вы пожелаете.

И не делайте выводов об исходном коде которого вы не видели.

Я вас прошу. Попробуйте. У вас получится.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803984
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинизбавиться от дубликатов не преследует своей целью уменьшить кол-во кода, а сделать код легко поддерживаемым. Мы точно с вами об одном и том же рефакторинге говорим? Такое ощущение, что вы читаете мурзилку для perl программистов.А вы словапричины и следствия специально местами переставляете? Прочтите еще раз написанное мной.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803986
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинизбавиться от дубликатов не преследует своей целью уменьшить кол-во кода, а сделать код легко поддерживаемым. Мы точно с вами об одном и том же рефакторинге говорим? Такое ощущение, что вы читаете мурзилку для perl программистов.А вы словапричины и следствия специально местами переставляете? Прочтите еще раз написанное мной.


Так это вы как раз причины и следствия местами переставляете. Это вы из частного случая, что при удалении дубликатов уменьшается кол-во строк уже не первый раз говорите о том, что целью рефакторинга является уменьшение кол-во строк, что бред по определению.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803991
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

цитату мою сможете привести, или сами надумали?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803992
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверин,

цитату мою сможете привести, или сами надумали?

а сами не в силах?

Андрей Панфилова рефакторинг, проповедуемый вами, по всем канонам должен количество строк уменьшать, где логика в вашем вопросе?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803998
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

отлично, давайте дальше, когда мы рефакторим, мы что делаем? только переменные и названия классов переименовываем или что-то еще происходит?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39803999
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверин,

отлично, давайте дальше, когда мы рефакторим, мы что делаем? только переменные и названия классов переименовываем или что-то еще происходит?

так является целью рефакторинга уменьшение кол-во строк или нет? Вы там определелись с вашми единорогами? А то столько возмущений...
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804001
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинказинакпропущено...

Если системой ежедневно пользуются тысячи людей - это по твоему "проект умер"?


win xp пользуются ежедневно тысячи людей, угадайте, проект жив?
ессно жив
есть те, кто юзают,
есть те, кто получают зп за поддержку


"мальчик ты тормоз" (с)
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804006
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинтак является целью рефакторинга уменьшение кол-во строк или нет? Вы там определелись с вашми единорогами? А то столько возмущений...Целью не является, однако, если в результате вашего рефакторинга количество строк не уменьшилось, то рефакторинг у вас неправильный.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804008
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакОзверинпропущено...



win xp пользуются ежедневно тысячи людей, угадайте, проект жив?
ессно жив
есть те, кто юзают,
есть те, кто получают зп за поддержку


"мальчик ты тормоз" (с)

ладно, тут все понятно.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804017
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинтак является целью рефакторинга уменьшение кол-во строк или нет? Вы там определелись с вашми единорогами? А то столько возмущений...Целью не является, однако, если в результате вашего рефакторинга количество строк не уменьшилось, то рефакторинг у вас неправильный.

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

Потому, рефакторинг такой вещи как:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class TestRegexp {
    public static final Pattern pattern = Pattern.compile
        ("[a-zA-Z]{1}[a-zA-Z\\d\\u002E\\u005F]+@([a-zA-Z]+\\u002E){1,2}((net)|(com)|(org))");

    public static void doMatch(String word) {
        Matcher matcher = pattern.matcher(word);
        System.out.println("Validation for " + word +
                (matcher.matches() ? " passed." : "not passed."));
    }

    public static void main(String[] args) {
        doMatch("c0nst@money.simply.net");
        doMatch("Name.Sur_name@gmail.com");
        doMatch("useR33@somewhere.in.the.net");
    }
}



может превратится в довольной объемный кусок кода.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804023
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

и зачем вы в пример привели типичный говнокод на регулярных выражениях? Есть RFC 822 регламентирующий формат email, вашу поделку рефакторить не нужно - она ревью проходить не должна.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804026
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверин,

и зачем вы в пример привели типичный говнокод на регулярных выражениях? Есть RFC 822 регламентирующий формат email, вашу поделку рефакторить не нужно - она ревью проходить не должна.

Я привел пример того, как рефакторинг может увеличить кол-во кода. Сколько вам надо примеров или ответов на ваши совершенно бредовые вопросы, чтобы вы перестали утверждать этот НИЧЕМ не подкрепленный бред про кол-во строк после рефакторинга?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804027
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинЯ привел пример того, как рефакторинг может увеличить кол-во кода. Сколько вам надо примеров или ответов на ваши совершенно бредовые вопросы, чтобы вы перестали утверждать этот НИЧЕМ не подкрепленный бред про кол-во строк после рефакторинга?ну вы потрудитесь для начала привести пример того как рефакторинг неговнокода приводит к увеличению количества строк, а потом посмотрим, а то вы опять за свое взялись: сначала пишем неподдерживаемую хрень, а потом ее героически рефакторим.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804029
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинЯ привел пример того, как рефакторинг может увеличить кол-во кода. Сколько вам надо примеров или ответов на ваши совершенно бредовые вопросы, чтобы вы перестали утверждать этот НИЧЕМ не подкрепленный бред про кол-во строк после рефакторинга?ну вы потрудитесь для начала привести пример того как рефакторинг неговнокода приводит к увеличению количества строк, а потом посмотрим, а то вы опять за свое взялись: сначала пишем неподдерживаемую хрень, а потом ее героически рефакторим.

зачем? Вы утверждаете, что рефакторинг всегда уменьшает кол-во строк кода, я привел пример обратный.
Лучше вы скажите, с чего вы решили, что рефакторинг обязательно должен уменьшить кол-во строк кода? Вы же прочли какой-то гениальный источник, прежде чем нести эту информацию в массы? Почему я должен доказывать наличие запущенного вами чайника Рассела?
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804075
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинзачем? Вы утверждаете, что рефакторинг всегда уменьшает кол-во строк кода, я привел пример обратный.К примеру чтобы демагогом себя не выставлять, а то могли бы еще пример с расставлением пропущенных скобочек и заменой тернарного оператора привести и рассказывать о том как улучшилась читаемость при увеличении количества строк - такой код изначально плохой и не должен ревью проходить, вы же всеми способами пытаетесь заставить меня играть на вашем поле, где все изначально плохо, а потом пытаетесь доказать что в ваших запущенных случаях все происходит с точностью до наоборот.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804205
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинсрочно расскажите, что это.
Кое кого учить - только портить.
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804206
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловПодсказка как сравнить число с 0:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
	public static void main(String[] args) {
		N[] n = new N[]{() -> false, () -> true};
		System.out.println(n[-1 >>> 31].isNegative());
		System.out.println(n[0 >>> 31].isNegative());
		System.out.println(n[1 >>> 31].isNegative());
	}

	interface N {

		boolean isNegative();

	}


Код: java
1.
-1 >>> 31


Теоретически имеет смысл, но компилятор всё равно подставит 1.
Код: java
1.
0 >>> 31


Даже теоретически смысла не имеет. Ну и компилятор 0 подставит.
Код: java
1.
1 >>> 31


Не равно конечному значению, но тоже смысла нет, плюс компилятор кое что поправит.

А вообще - можно было банально массив логических значений длинной 2 сваять:
Код: java
1.
2.
3.
4.
5.
6.
	public static void main(String[] args)
       {
		boolean n[] = {false, true};
		System.out.println(n[1]);
		System.out.println(n[0]);
	}
...
Рейтинг: 0 / 0
Тестирование. Что именно тестировать? Как определить середину?
    #39804211
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Озверинсрочно расскажите, что это.
Кое кого учить - только портить.

а жаль.
...
Рейтинг: 0 / 0
361 сообщений из 361, показаны все 15 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Тестирование. Что именно тестировать? Как определить середину?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]