Если имплементриует тест второй девелопер, то без людей не обошлось.Вячеслав Викторович wrote: 02 Dec 2018 23:23я расскажу как у меня в прошлом проекте было:major Major Major Major wrote: 01 Dec 2018 22:42Это тенденция, в принципе для такого простого случая огурец как раз подходит. Будет примерно так, возможно что то упустил но принцип надеюсь понятенАццкоМото wrote: 01 Dec 2018 07:59 Может быть, потому что спеки и тесты Это разные вещи?
Вот смотри, есть модуль который... Ну, скажем, возводит целое в квадрат. Туда пихаешь 2, получаешь 4. Пихаешь 12, получаешь 144.
Теперь вопрос, какие тесты могут стать "спекой"?
Feature: Math module
As a developer, I want an API module to perform basic math calculations
Scenario: Square of 2 integers
When I pass 6 into Square function
Then I shuold get back 36
Scenario: Square of 0th
When I pass 0 into Square function
Then I shuold get back 0
Scenario: Square of very large numbers
When I pass 46341 into Square function
Then I shuold get back an exception with text "whatever"
Scenario: Square of negatives
When I pass -2 into Square function
Then I shuold get back 4
Scenario: Square of very large negative numbers
When I pass -46341 into Square function
Then I shuold get back an exception with text "whatever"
То есть практически готовая спека для функции. Сразу скажу, у нас так не делаются, огурцы мы используем для unit & integration тестов, считаю что TDD в нашем случае не эффективно. Но возможно, в принципе.
в описании фичи есть сцылка на спек, спек - это обычно формула.
Тест пишет аналист, имплементирует тест второй девелопер.
Он же сверяет спек с имплементацией бизнес-логики первого девелопера. Фактически попутно делая код-ревью.
Затем фиксит баги вместе с первым девелопером по результатам ревью и огурцового теста.
Огурцовый тест вливает в тест-фреймворк "навсегда". т.е выполняется в дженкинс при каждом новом коммите кода.
Пока всё зелёное не будет, релизить неззя.
Таким фрейворком поймано 100500 багов и прочих попутных косяков абсолютно без участия людей.
То что тесты выполняются Дженкинсом при любом пул риквесте, в 2018 по моему мнению это маст хэв, но к сожалению не все разделяют эту идею.
Мне нравится ваш подход, но не очевидно, вот скажем я новый разработчик, добавил фичу в легаси код и сломал один из тестов, где мне искать спецификацию на класс? Это легко и очевидно или надо 10 людей опросить?
Кстати, сейчас у нас такая фундаментальная проблема стоит, продукт, как полагается, большой и разбит на фичи, на каждой фиче свой продакт овнер, и вот когда добавляется что то к существующей логике, всегда первым делом вопрос -‘как что работало и что меняется. Продакт овнер нередко хочет, чтобы разработчик сказал ему, что меняется, однако разработчик может быть новеньким, может не работал над этой фичей и то что он видит в коде, может быть заимплементировано неправильно, с ошибками. Команда ведет чейнджлист, но читать его не сначала картины не даст.
Мое мнение, продукт должен знать продакт овнер от а до я, ну именно касательно конкретных фич. Однако вот явный минус нежелания команды писать нормальные спецификации и сценарии. Есть отдельные документы на каждую фичу от ux, но все так разрозненно и даже если было б в одном документе, по мне гораздо легче читать тест сценарии.