|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Мда.. Тесты не должны базироваться на таких сложных моках. В противном случае надо тестировать и сами моки. И зачем там цикл? Непонятно. Можно было на 1-й итерации прогнать все кейсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 01:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaИными словами Вам удалось освоить JUnit test... поздравляю нормальный результат... есть куда рости Нет там JUnit никакого, просто показано как правильно реализовывать проверки, едем дальше: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Смотрим что такое Customer: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
ой. Получается, что в сценарии вас просят работать с именем, а вы вместо этого работаете с assetId и при этом все "зеленое", более того, контракт на заполненность имени нигде не форсируется и не проверяется, зато тесты зеленые, ревью делать не нужно - можно сразу в прод засылать. Еще один плохой момент в реализации ваших тестов: если разработчику понадобится переименовать поля pojo, то тестовые сценарии не развалятся - геттеры и сеттеры переименует IDE, а вот в cucumber как торчали "customer with name" так останутся торчать. В целом, подход что вы описываете, а именно: SergunkaДавайте опять про то как должно быть. Открываешь Jiru там уже написана задача к примеру на спринт т.е. 2 недели 1) видишь описание бизнес кейса т.е. преполагается, что это фича пришла от продакт оунера 2) тут же расписан твой тест кейс на Cucumber 3) Acceptance criteria Копируешь огурец в тест - и потихоньку начинаешь кодить последовательно. Тест прошел задача практически выполнена. Вообще никакого отношения к разработке не имеет: существует какое-то преклонение перед BDD, в процессе этого преклонения создаются какие-то артефакты, но толку от них нет никакого просто потому что сам по себе процесс дырявый. И беда не в том, что BDD плохой (хотя этот DSL нужно поддерживать, что печально), а в том что вы неправильно его применяете: тесты должны разрабатываться (или хотябы рецензироваться) людьми, которые этим профессионально занимаются, подход типа "вот сделай фичу и сам покрой его тестами" много где имеет место быть, но в целом он неправильный (ваши корявые реализации тому подтверждение) зелень в тестах - это не повод принять изменения от разработчика в основную ветку, это лишь повод сделать-таки ревью коду (и особо тщательное ревью тестам, если они поменялись или появились новые) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 06:53 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevдело не в узко, а в том, что я тогда вообще не понимаю, что у людей лежит в src/test ))) Для меня, src/test в первую очередь "проверка того, что не нарушилась работоспособность работающей ранее функциональности, если её код мог быть затронут при исправлении некоторых дефектов в другой функциональности" ( C ) wikiНу давайте поразмыслим вместе. То что лежит в src/test относится к так называемому white box testing, т.е. в абсолютном большинстве это или юнит-тесты, или интеграционные, которые в свою очередь реализуют разработчики (ну или люди, обладающие скилом разработчика). Вот вам нравится цитировать википедию, а там в той же статье написано:wikiIn the corporate world, regression testing has traditionally been performed by a software quality assurance team after the development team has completed work. However, defects found at this stage are the most costly to fix. This problem is being addressed by the rise of unit testing. Although developers have always written test cases as part of the development cycle, these test cases have generally been either functional tests or unit tests that verify only intended outcomes. Developer testing compels a developer to focus on unit testing and to include both positive and negative test cases.И вот в разрезе юнит-тестов (т.е. там где мы тестируем небольшие участки кода), я как-то слабо себе представляю наличие регрессий: - то, что было до изменений покрыто тестами, то либо продолжит работать, либо развалится, однако самого процесса регрессионного тестирования здесь нет - мы просто всегда запускаем тесты, которые у нас есть (здесь можно как-то с ну очень большой натяжкой утверждать, что "ну вот мы же запускаем все тесты подряд, т.е. полностью тестируем систему, а это и есть регрессионное тестирование", но самого процесса здесь нет: запустить все юнит-тесты - это функция CI, а не процесс) - то что тестами покрыто не было, имеет все шансы развалиться, однако не факт что оно и до этого работало правильно, ну т.е. оно про то что юнит-тесты нужно писать, а не про то что в разрезе юнит-тестов существует процесс регрессионного тестирования Т.е. получается так, что там где мы действительно можем (и должны) проверить наличие (или отсутствие) регрессий - это либо интеграционные тесты, либо "ручное тестирование" (т.е. то что делает команда QA, руками они это делают или нет - не суть важно) и здесь начинаются "приколы", которые мало зависят от разработчика, а именно: - мы можем хоть как-то надеяться, что конечный разработчик сделает интеграционные тесты для своих модулей, однако, ожидать что он также сделает интеграционные тесты для модулей/сервисов, о которых он даже не знает, несколько наивно: во-первых, в большинстве случаев он просто о них не знает, во-вторых, развертывание чужеродных сред и их тестирование - это не его задача, все что мы может здесь сделать - это полноценно (предоставить спецификацию, входные/выходные данные, подготовить среду и пр.) поставить задачу подготовить интеграционные тесты, если же задачи нет, то и рассчитывать на положительный выхлоп здесь не следует. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 07:58 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
авторRegression Testing is defined as a type of software testing to confirm that a recent program or code change has not adversely affected existing features. Regression Testing is nothing but a full or partial selection of already executed test cases which are re-executed to ensure existing functionalities work fine На самом деле регрессия нужна исключительно для рефакторинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 08:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonМда.. Тесты не должны базироваться на таких сложных моках. В противном случае надо тестировать и сами моки. И зачем там цикл? Непонятно. Можно было на 1-й итерации прогнать все кейсы? Честно говоря даже не хочется разбираться что там человек имел ввиду и что именно он тестирует. Просто пример как можно засунуть в сервис моков, сначала "героически" их подготавливая, а потом также "героически" проверяя как они отрабатывают вызывая кучу verify. На мой взгляд это куча тестового кода, который непонятно что тестирует. И этот код достаточно сложно поддерживать, небольшие изменения в сервисе приводят к тому что мок тесты слетают. Я уверен что mock можно использовать и с пользой, но я редко такое видел. Если тесты приносят хоть кому то пользу они имеют право на жизнь. Все модели неверны, но некоторые полезны. (С) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:43 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
На мой взгляд тесты должны описывать то, как работать с системой разработчику. И одновременно тестировать бизнес кейсы там, где не требуется поднимать окружение. Я умных слов про тесты не знаю, но когда я захожу в новый проект, я первым делом иду в тесты посмотреть, как вызывать тот или иной метод, для чего и почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:49 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
ОзверинИ одновременно тестировать бизнес кейсы там, где не требуется поднимать окружение. На мой взгляд раньше поднимать окружение было проблемой. Отсюда и появление всех этих Mock-ов. С такими технологиями как docker подготовка тестовой среды перестает быть проблемой. Запускаешь подготовленный контейнер и тестируешь. Конечно по времени выполнения это долго, но тут реальные приемочные тесты, а не тестирование коней в вакууме. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 10:05 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
В одной итерации. Код: java 1. 2. 3. 4. 5. 6. 7.
Беря во внимание что это еще не тест а просто инициализация мока. Тем не менее. Я-бы правила мока расписал тоже по классической схеме Given/When/Then. Заменил бы магические ссылки на контекст просто константами. Например. Зачем мы берем из контекста какой-то грёбаный емейл? Кейсы пишутся явно. Например. Код: java 1.
Для меня самого есть хорошее правило. Я тесты должен читать как плоский английский текст. Хороший вариант - использовать ассерты с текстовыми комментариями. Хороший вариант - юзать Хамкрест. Еще хороший вариант писать методы на Spock/Groovy. Но здесь сложно судить т.к мы всё равно не видим теста. А автор показал только инициализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 10:14 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
vas0технологиями как docker подготовка тестовой среды перестает быть проблемой.вооот. Эта тема Ещё интереснее чем REST тестирование) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 10:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
+1 Тему докера в тестировании я-бы поднял отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 11:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonВ какой части например? Что в какой части? Как под линух на сях писать что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevRegression Test ? Если кто-то поступил по своему и это сломало "наложения прежних времен", то сразу должно быть видно. Может и в новом кейсе неучёт старых особенностей проявиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:26 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакэто в ипанутых системах они наслаиваются патамушта там поклоняются фаулеру и пишут километры оберток (лейеров), то бишь универсальных классов, которые должны использоваться ВЕЗДЕ а в норм системах, парэкзампль, изменение в логике начисления процентов не сломает заведение договоров патамушто норм система реализована модульно, и в случае выхода из строя одного модуля, другие не ломаются Логика начисления процентов сложная. Вот тебе тривиальный пример: Проценты зависят от грейда клиента. Ты протестил грейды когда-то давно и потом мгновенно забыл о них. Затем тебе дали кейс с начислением бонусов. Ты протестил бонусы и опять мгновенно забыл. Но. Ты никогда даже не мог подумать, что грейды влияют на дополнительные проверки клиента. И ты просто задал в своём кейсе "правильный" грейд, который тупо подошёл и не вызвал проблем. И вот в бою начисляют бонусы вип-клиенту (это такой пальцатый перец с подвязками, который из тебя потом котлету сделает). Ну и грейд перца вызвал непродуманную тобой цепочку действий. И всё. Ты попал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:31 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
SergunkaНа самом деле регрессия нужна исключительно для рефакторинга. Причиной изменения софта в большинстве случаев является желание заказчика. Как бы азбука. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:32 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакэто в ипанутых системах они наслаиваются патамушта там поклоняются фаулеру и пишут километры оберток (лейеров), то бишь универсальных классов, которые должны использоваться ВЕЗДЕ аж чето удивился, оказывается Фаулер выступал за суперклассы, а не против. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 12:52 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555SergunkaНа самом деле регрессия нужна исключительно для рефакторинга. Причиной изменения софта в большинстве случаев является желание заказчика. Как бы азбука. Не всегда если смотреть с точки зрения сопровождения легаси кода и баг фиксинга, то да никто не будет трогать код если заказчик не просит внести изменения. Поверьте есть места где занимаются разработкой с нуля, там рефакторинг практически происходит ежедневно, так как разработчики думают о маентабилити этого кода в будущем. В США прижился лозунг авторAlways code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 17:44 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
alex55555maytonВ какой части например? Что в какой части? Как под линух на сях писать что-ли? Да. Да. Скажи что ты хотел сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:04 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Sergunka так как разработчики думают о маентабилити этого кода в будущем. В США прижился лозунг авторAlways code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом а в это время другие, более разумные, продают продукты или услуги, а не код ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! и насколько он мэйнтенабле работает правильно? значит норм вот когда глючит, тогда проблема зы есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:18 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинакSergunka так как разработчики думают о маентабилити этого кода в будущем. В США прижился лозунг пропущено... имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом а в это время другие, более разумные, продают продукты или услуги, а не код ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! и насколько он мэйнтенабле работает правильно? значит норм вот когда глючит, тогда проблема зы есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал... У тебя - странный профиль. Оракл + Работа. Есть опыт разработки Java? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:25 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Sergunkaо маентабилити дружище, соберись, невозможно подобное читать ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:27 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonказинакпропущено... имхо, это просто такой лозунг впаривают, чтоб подолгу сидели над своим кодом а в это время другие, более разумные, продают продукты или услуги, а не код ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! и насколько он мэйнтенабле работает правильно? значит норм вот когда глючит, тогда проблема зы есличо, на ентом форуме насчет качества кода, новый срач чуть ли не каждый квартал... У тебя - странный профиль. Оракл + Работа. Есть опыт разработки Java? бгг напоминает диалог паниковского с шурой балагановым: "а ты кто такой?" зы но есличо, писал на jsp, и даже на такой куйне как Visual J++ как одмин ставил и тюнил вебложик, wildfly, glfssfish как то присел за java ee 7, jsf, ejb, jpa, был вариант проект сделать, потом отвалился и слава богу, если честно жава у меня только отвращение вызывает но тут же топик про тестирование а не про жабу, пусть даже и в разделе жабы или я ошипся? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:40 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
Я просто поинтересовался. Ты написал такую вещь ну какая нах разница, для пользователя али експресса или субд оракл, как там написан код?!!! И я сильно удивился. Это противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком... Профиль - хорошая штука. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 18:57 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
maytonЭто противоречит современным (подтверждённым!) практикам Java-разработки и я сделал предположение что ты с этой (Java) разработкой не знаком. Или был может быть когда-то знаком.... ну а я посмотрел твой профиль и понял, что, хоть ты и зарегился тут в 2004 году, самостоятельно мыслить ты еще не научился ну какие нах подтвержденные практики??? тут блин раз в пару лет, полностью опровергают то что раньше в ранг догмы возводили к примеру раньше считали что css надо отдельно держать и они должны быть для всех страниц но в реакте styled components наоборот для кажд компонента отдельный inline css или, том кайт считал что бизнес логику надо в базе делать, а фейсбук сказал, что никакой функциональности в базе, никаких джойнов или форин кей кто прав? наверно майтон ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 19:16 |
|
Тестирование. Что именно тестировать? Как определить середину?
|
|||
---|---|---|---|
#18+
казинактом кайт считалтом кайт иноверец был. Базист). Он с противоположного от java лагеря. А то что всё течет и все меняется это ты прав конечно) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 19:22 |
|
|
start [/forum/topic.php?fid=59&msg=39800501&tid=2121354]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 235ms |
total: | 501ms |
0 / 0 |