В приличном обществе такой код не показывайте.stenking wrote: ↑09 Sep 2017 15:55Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на Angular. Потом всё почистить и тыды.
Т.е. это всё самое что ни на есть погромирование. Поэтому или все пограмисты пишут тесты или ты делаешь отдел из одного умного и 4-х средних) Просто найти чувака который с НУЛЯ тебе сделает такую системы нельзя. Точнее такие люди есть но денег они захотят вполне себе около твоих
На чём ты это делаешь не так уж важно.
Я меня вот так оно. Притом если посмотреть то видно что внутри куча лишних шагов, лейбл кривыми руками поставленные
Т.е. в теории после того как всё настроено то можно взять ручных тестеров которые нафигачат тысячу таких кейсов. Но на практике это работает плохо - мозги никто не отменял и будет много г-на а мало пользы.Code: Select all
Feature: Password restore User forgot their password, and attempts to restore Scenario: Given I am on the page "/" When I click on the button "to-sign-up" Then I see login form When I fill name with "test-password" and email with "test-password@хххххххх.com" And I click on the button "sign-up" And I wait few seconds Then I see in the url "/projects" When I click on the button "logout" Then I see in the url "/login" And I click on the button "restore-password" And I fill email field with my email And I click on the button "restore-password" Given I see in mailbox the latest message with QA label "reset-password" When I click on the link "reset-password" in the latest message Then I see login form When I fill password field with "123123123" And I click on the button "reset" And I wait few seconds Then I see in the url "/projects" When I click on the button "logout" When I fill email and password with my credentials And I click on the button "log-in" And I wait few seconds Then I see in the url "/projects" And I see "projects"
Автотестер. Какие нынче требования?
-
- Уже с Приветом
- Posts: 1039
- Joined: 27 Apr 2014 17:13
- Location: USA
Re: Автотестер. Какие нынче требования?
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Автотестер. Какие нынче требования?
Вы живёте в перевёрнутом мире: да, удобнее всего покрыть тестами неизменяющийся безбажный код, высеченный в мраморе. Только смысла ноль.ystar wrote: ↑10 Sep 2017 03:16АццкоМото wrote: ↑08 Sep 2017 22:59А в этом плане рацуха такая. Нужно смотреть на а) наиболее часто изменяемый код б) изменяемый из-за внесённых ошибок в) наиболее часто ломаемый из-за внесённых изменений
Б и В могут показаться (и даже оказаться на практике!) одним и тем же, но это разное. Если сумеете собрать метрики и приоритизировать работу тестирования так, чтобы это код покрывать, как бык овцу, а остальному — присовывать вяленький тестик по остаточному принципу, будете круты нии.. тащемта, очень круты. Но это на стыке дева и кюэй, в отдельности редко тянут
наиболее часто изменяемый код - это не самый лучший выбор для автоматизации, так как выхлопа будет мало, а работы много.
будет так -> вы поменяли код -> автотестеры пока разобрались и поменяли автотесты -> вы опять поменяли код и к этому времени автотесты прошли раза три-четыре и уже не актуальны. (если это конечно не критический код и компонент системы).
а вот, покрыть автотестами стабильный код - самое оно, и автотесты - один раз написал и забыл, и если кто-то что-то изменит или поломает сразу будет видно.
Сразу надо код покрывать юнит тестами и апи -> тесты быстрые, стабильные, и место поломки будет быстро находится и локализироваться.
Web UI тесты -> долгие и нестабильные и причину поломки не всегда сразу найдешь.
unit test - 50%
api test - 30%
ui - 20%
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 1039
- Joined: 27 Apr 2014 17:13
- Location: USA
Re: Автотестер. Какие нынче требования?
немного не правильно выразился.АццкоМото wrote: ↑10 Sep 2017 05:10Вы живёте в перевёрнутом мире: да, удобнее всего покрыть тестами неизменяющийся безбажный код, высеченный в мраморе. Только смысла ноль.ystar wrote: ↑10 Sep 2017 03:16АццкоМото wrote: ↑08 Sep 2017 22:59А в этом плане рацуха такая. Нужно смотреть на а) наиболее часто изменяемый код б) изменяемый из-за внесённых ошибок в) наиболее часто ломаемый из-за внесённых изменений
Б и В могут показаться (и даже оказаться на практике!) одним и тем же, но это разное. Если сумеете собрать метрики и приоритизировать работу тестирования так, чтобы это код покрывать, как бык овцу, а остальному — присовывать вяленький тестик по остаточному принципу, будете круты нии.. тащемта, очень круты. Но это на стыке дева и кюэй, в отдельности редко тянут
наиболее часто изменяемый код - это не самый лучший выбор для автоматизации, так как выхлопа будет мало, а работы много.
будет так -> вы поменяли код -> автотестеры пока разобрались и поменяли автотесты -> вы опять поменяли код и к этому времени автотесты прошли раза три-четыре и уже не актуальны. (если это конечно не критический код и компонент системы).
а вот, покрыть автотестами стабильный код - самое оно, и автотесты - один раз написал и забыл, и если кто-то что-то изменит или поломает сразу будет видно.
Сразу надо код покрывать юнит тестами и апи -> тесты быстрые, стабильные, и место поломки будет быстро находится и локализироваться.
Web UI тесты -> долгие и нестабильные и причину поломки не всегда сразу найдешь.
unit test - 50%
api test - 30%
ui - 20%
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.
И да, у нас с вами, возможно разное представление, о том, что подразумевается в частом меняющемся коде.
И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.
Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
-
- Уже с Приветом
- Posts: 14455
- Joined: 26 May 2006 02:39
Re: Автотестер. Какие нынче требования?
Юнит тесты часто смысла имеют мало. Точнее они наверное нужны если вы пишите библиотеку или фраимворк но если у вас основной функционал это работа с базой то юнит тут бесполезный.
Бога нет.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
А Вы Testcontainers пользуетесь? Как впечатление?XpoH wrote: ↑09 Sep 2017 01:39стоить будет как сеньор-помидор.valchkou wrote: ↑08 Sep 2017 22:13а нам в идеале нужен эксперт уже сейчас, который не будет ходить кругами и наступать на грабли, а просто придет все настроит, всех построит.На данный момент инетересует на чем пишут автотестеры, чтобы хотябы сформировать заяву руководству.
знаю например селениум, огурец питон. Кроме того мы уже пытаемся пользовать селениум, но пока не глубоко завязли.
Интересно что наиболее полно в состоянии покрыть нашу систему и современные распределенные системы вообще.
такие всем нужны, какая вероятность того что вы ему понравитесь?
селениум это одно, бб тесты это другое.
TestNG, rest-assured и тд.
для интеграционных тестов Testcontainers.
Gatling+JMeter.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
Я тоже огурцы посмотрел похохотал - даже и на джуниор не тянетystar wrote: ↑10 Sep 2017 03:24В приличном обществе такой код не показывайте.stenking wrote: ↑09 Sep 2017 15:55Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на Angular. Потом всё почистить и тыды.
в теории после того как всё настроено то можно взять ручных тестеров которые нафигачат тысячу таких кейсов. Но на практике это работает плохо - мозги никто не отменял и будет много г-на а мало пользы.
Вот обычный огурец из проекта
Code: Select all
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Wind Farm and Turbines
As an ADS Modeler,
I am able to create/update/delete model elements and query using Graph Expression Language
# @RunJustThisTest
Scenario: Create and query Wind Turbine
Given the wind farms table _WT_
| uri | name | owner | lat | lng |
| /windfarm/100 | San Ramon | GE | 37.767 |-121.9606 |
| /windfarm/101 | Lake Berryessa | GE | 38.586 |-122.275 |
And the manufacture table _WT_
| uri | name | address |
| /manufacture/100 | GE Energy | 4200 Wildwood Parkway, Atlanta, GA 30339 USA |
| /manufacture/101 | Alstom Power | 3, Avenue André Malraux , 92309 Levallois-Perret Cedex, France |
And the wind turbines table _WT_
| uri |name | parent |manufacture |model | frequency | power |towerType | hubHeight | rotorDiameter | bladeType | ratedWindSpeed | certification | lat | lng |
| /windturbine/100 | 100 | /windfarm/100 | /manufacture/100 | SLE | 50/60 | 1.5 | MTS | 65 | 77 | GE40 | 14 | | 37.7670002 |-121.96057 |
| /windturbine/101 | 101 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.5 | MTS | 80 | 82.5 | GE40 | 11.5 | | 37.768 |-121.9605667 |
| /windturbine/102 | 102 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.6 | MTS | 100 | 82.5 | GE403 | 14 | IEC 61400-1 | 37.7670002 |-121.9606 |
When a user queries a list of wind farms _WT_
Then a list of wind farms should be returned _WT_
| /windfarm/100 |
| /windfarm/101 |
When a user queries a list of wind turbine manufatures _WT_
Then a list of wind turbine manufatures should be returned _WT_
| /manufacture/100 |
| /manufacture/101 |
When a user queries a list of wind turbines _WT_
Then a list of wind turbines should be returned _WT_
| /windturbine/100 |
| /windturbine/101 |
| /windturbine/102 |
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_
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 5777
- Joined: 13 Feb 2016 18:50
- Location: Кемерово
Re: Автотестер. Какие нынче требования?
довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.Sergunka wrote: ↑10 Sep 2017 20:08Я тоже огурцы посмотрел похохотал - даже и на джуниор не тянетystar wrote: ↑10 Sep 2017 03:24В приличном обществе такой код не показывайте.stenking wrote: ↑09 Sep 2017 15:55Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на Angular. Потом всё почистить и тыды.
в теории после того как всё настроено то можно взять ручных тестеров которые нафигачат тысячу таких кейсов. Но на практике это работает плохо - мозги никто не отменял и будет много г-на а мало пользы.
Вот обычный огурец из проекта
Code: Select all
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Wind Farm and Turbines As an ADS Modeler, I am able to create/update/delete model elements and query using Graph Expression Language # @RunJustThisTest Scenario: Create and query Wind Turbine Given the wind farms table _WT_ | uri | name | owner | lat | lng | | /windfarm/100 | San Ramon | GE | 37.767 |-121.9606 | | /windfarm/101 | Lake Berryessa | GE | 38.586 |-122.275 | And the manufacture table _WT_ | uri | name | address | | /manufacture/100 | GE Energy | 4200 Wildwood Parkway, Atlanta, GA 30339 USA | | /manufacture/101 | Alstom Power | 3, Avenue André Malraux , 92309 Levallois-Perret Cedex, France | And the wind turbines table _WT_ | uri |name | parent |manufacture |model | frequency | power |towerType | hubHeight | rotorDiameter | bladeType | ratedWindSpeed | certification | lat | lng | | /windturbine/100 | 100 | /windfarm/100 | /manufacture/100 | SLE | 50/60 | 1.5 | MTS | 65 | 77 | GE40 | 14 | | 37.7670002 |-121.96057 | | /windturbine/101 | 101 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.5 | MTS | 80 | 82.5 | GE40 | 11.5 | | 37.768 |-121.9605667 | | /windturbine/102 | 102 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.6 | MTS | 100 | 82.5 | GE403 | 14 | IEC 61400-1 | 37.7670002 |-121.9606 | When a user queries a list of wind farms _WT_ Then a list of wind farms should be returned _WT_ | /windfarm/100 | | /windfarm/101 | When a user queries a list of wind turbine manufatures _WT_ Then a list of wind turbine manufatures should be returned _WT_ | /manufacture/100 | | /manufacture/101 | When a user queries a list of wind turbines _WT_ Then a list of wind turbines should be returned _WT_ | /windturbine/100 | | /windturbine/101 | | /windturbine/102 | 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_
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок.
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
Да ладно покажите свой огурец - впечатлите так сказать публикуВячеслав Викторович wrote: ↑10 Sep 2017 20:27довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.Sergunka wrote: ↑10 Sep 2017 20:08Я тоже огурцы посмотрел похохотал - даже и на джуниор не тянетystar wrote: ↑10 Sep 2017 03:24В приличном обществе такой код не показывайте.stenking wrote: ↑09 Sep 2017 15:55Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на Angular. Потом всё почистить и тыды.
в теории после того как всё настроено то можно взять ручных тестеров которые нафигачат тысячу таких кейсов. Но на практике это работает плохо - мозги никто не отменял и будет много г-на а мало пользы.
Вот обычный огурец из проекта
Code: Select all
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Wind Farm and Turbines As an ADS Modeler, I am able to create/update/delete model elements and query using Graph Expression Language # @RunJustThisTest Scenario: Create and query Wind Turbine Given the wind farms table _WT_ | uri | name | owner | lat | lng | | /windfarm/100 | San Ramon | GE | 37.767 |-121.9606 | | /windfarm/101 | Lake Berryessa | GE | 38.586 |-122.275 | And the manufacture table _WT_ | uri | name | address | | /manufacture/100 | GE Energy | 4200 Wildwood Parkway, Atlanta, GA 30339 USA | | /manufacture/101 | Alstom Power | 3, Avenue André Malraux , 92309 Levallois-Perret Cedex, France | And the wind turbines table _WT_ | uri |name | parent |manufacture |model | frequency | power |towerType | hubHeight | rotorDiameter | bladeType | ratedWindSpeed | certification | lat | lng | | /windturbine/100 | 100 | /windfarm/100 | /manufacture/100 | SLE | 50/60 | 1.5 | MTS | 65 | 77 | GE40 | 14 | | 37.7670002 |-121.96057 | | /windturbine/101 | 101 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.5 | MTS | 80 | 82.5 | GE40 | 11.5 | | 37.768 |-121.9605667 | | /windturbine/102 | 102 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.6 | MTS | 100 | 82.5 | GE403 | 14 | IEC 61400-1 | 37.7670002 |-121.9606 | When a user queries a list of wind farms _WT_ Then a list of wind farms should be returned _WT_ | /windfarm/100 | | /windfarm/101 | When a user queries a list of wind turbine manufatures _WT_ Then a list of wind turbine manufatures should be returned _WT_ | /manufacture/100 | | /manufacture/101 | When a user queries a list of wind turbines _WT_ Then a list of wind turbines should be returned _WT_ | /windturbine/100 | | /windturbine/101 | | /windturbine/102 | 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_
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок.
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов.
Что-то должно быть интеллектуальное навроде Then "json1" equals "json2"
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 5777
- Joined: 13 Feb 2016 18:50
- Location: Кемерово
Re: Автотестер. Какие нынче требования?
ну типа того. только не json сравнивают, а обьекты через рефлект.Sergunka wrote: ↑10 Sep 2017 20:51Да ладно покажите свой огурец - впечатлите так сказать публикуВячеслав Викторович wrote: ↑10 Sep 2017 20:27довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.Sergunka wrote: ↑10 Sep 2017 20:08Я тоже огурцы посмотрел похохотал - даже и на джуниор не тянетystar wrote: ↑10 Sep 2017 03:24В приличном обществе такой код не показывайте.stenking wrote: ↑09 Sep 2017 15:55
Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на Angular. Потом всё почистить и тыды.
в теории после того как всё настроено то можно взять ручных тестеров которые нафигачат тысячу таких кейсов. Но на практике это работает плохо - мозги никто не отменял и будет много г-на а мало пользы.
Вот обычный огурец из проекта
Code: Select all
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Wind Farm and Turbines As an ADS Modeler, I am able to create/update/delete model elements and query using Graph Expression Language # @RunJustThisTest Scenario: Create and query Wind Turbine Given the wind farms table _WT_ | uri | name | owner | lat | lng | | /windfarm/100 | San Ramon | GE | 37.767 |-121.9606 | | /windfarm/101 | Lake Berryessa | GE | 38.586 |-122.275 | And the manufacture table _WT_ | uri | name | address | | /manufacture/100 | GE Energy | 4200 Wildwood Parkway, Atlanta, GA 30339 USA | | /manufacture/101 | Alstom Power | 3, Avenue André Malraux , 92309 Levallois-Perret Cedex, France | And the wind turbines table _WT_ | uri |name | parent |manufacture |model | frequency | power |towerType | hubHeight | rotorDiameter | bladeType | ratedWindSpeed | certification | lat | lng | | /windturbine/100 | 100 | /windfarm/100 | /manufacture/100 | SLE | 50/60 | 1.5 | MTS | 65 | 77 | GE40 | 14 | | 37.7670002 |-121.96057 | | /windturbine/101 | 101 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.5 | MTS | 80 | 82.5 | GE40 | 11.5 | | 37.768 |-121.9605667 | | /windturbine/102 | 102 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.6 | MTS | 100 | 82.5 | GE403 | 14 | IEC 61400-1 | 37.7670002 |-121.9606 | When a user queries a list of wind farms _WT_ Then a list of wind farms should be returned _WT_ | /windfarm/100 | | /windfarm/101 | When a user queries a list of wind turbine manufatures _WT_ Then a list of wind turbine manufatures should be returned _WT_ | /manufacture/100 | | /manufacture/101 | When a user queries a list of wind turbines _WT_ Then a list of wind turbines should be returned _WT_ | /windturbine/100 | | /windturbine/101 | | /windturbine/102 | 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_
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок.
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов.
Что-то должно быть интеллектуальное навроде Then "json1" equals "json2"
Я не с ветрянными мельницами работаю, поэтому показать не могу. посодют.
но ты и так всё понял.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
Я прерасно понял, что Вы даже не удосужились ни разу поговорить с легал департаментом и прояснить вопрос за что Вас компания может уволить. Но тем не менее приятно поговорить с очередным джуниором о проблемах огурцов и как огурцы в таблице могут содержать миллионы параметров просто указывая не сами значения, а ссылки на хранилища этих параметров к примеру на тот же S3 bucket на Амазоне.Вячеслав Викторович wrote: ↑10 Sep 2017 21:00ну типа того. только не json сравнивают, а обьекты через рефлект.Sergunka wrote: ↑10 Sep 2017 20:51Да ладно покажите свой огурец - впечатлите так сказать публикуВячеслав Викторович wrote: ↑10 Sep 2017 20:27довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.Sergunka wrote: ↑10 Sep 2017 20:08Я тоже огурцы посмотрел похохотал - даже и на джуниор не тянет
Вот обычный огурец из проекта
Code: Select all
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Wind Farm and Turbines As an ADS Modeler, I am able to create/update/delete model elements and query using Graph Expression Language # @RunJustThisTest Scenario: Create and query Wind Turbine Given the wind farms table _WT_ | uri | name | owner | lat | lng | | /windfarm/100 | San Ramon | GE | 37.767 |-121.9606 | | /windfarm/101 | Lake Berryessa | GE | 38.586 |-122.275 | And the manufacture table _WT_ | uri | name | address | | /manufacture/100 | GE Energy | 4200 Wildwood Parkway, Atlanta, GA 30339 USA | | /manufacture/101 | Alstom Power | 3, Avenue André Malraux , 92309 Levallois-Perret Cedex, France | And the wind turbines table _WT_ | uri |name | parent |manufacture |model | frequency | power |towerType | hubHeight | rotorDiameter | bladeType | ratedWindSpeed | certification | lat | lng | | /windturbine/100 | 100 | /windfarm/100 | /manufacture/100 | SLE | 50/60 | 1.5 | MTS | 65 | 77 | GE40 | 14 | | 37.7670002 |-121.96057 | | /windturbine/101 | 101 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.5 | MTS | 80 | 82.5 | GE40 | 11.5 | | 37.768 |-121.9605667 | | /windturbine/102 | 102 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.6 | MTS | 100 | 82.5 | GE403 | 14 | IEC 61400-1 | 37.7670002 |-121.9606 | When a user queries a list of wind farms _WT_ Then a list of wind farms should be returned _WT_ | /windfarm/100 | | /windfarm/101 | When a user queries a list of wind turbine manufatures _WT_ Then a list of wind turbine manufatures should be returned _WT_ | /manufacture/100 | | /manufacture/101 | When a user queries a list of wind turbines _WT_ Then a list of wind turbines should be returned _WT_ | /windturbine/100 | | /windturbine/101 | | /windturbine/102 | 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_
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок.
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов.
Что-то должно быть интеллектуальное навроде Then "json1" equals "json2"
Я не с ветрянными мельницами работаю, поэтому показать не могу. посодют.
но ты и так всё понял.
P.S. Вам напомнить про вашу маму или сами догадаетесь и перестанете обращаться на ты к собеседнику
Кнопка "!" работает лучше упоминания чьей-то мамы.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 5777
- Joined: 13 Feb 2016 18:50
- Location: Кемерово
-
- Уже с Приветом
- Posts: 5777
- Joined: 13 Feb 2016 18:50
- Location: Кемерово
Re: Автотестер. Какие нынче требования?
ну я сам напомню.
мерзавец писал 20 Nov 2016 03:21:
"И насколько я припоминаю ни Вас, ни Вашу маму я не трахал так, что давайте без фамильярностей."
сегодня мерзавец пишет:
"Вам напомнить про вашу маму или сами догадаетесь и перестанете обращаться на ты к собеседнику "
Моя мама умерла много лет назад. Странно, что такие мерзавцы остаются абсолютно безнаказанными.
У этого мерзавца есть семья, дети, друзья, знакомые, коллеги и неужели они не видят насколько этот человек - мерзавец?
Ваш оппонент уже понёс наказание год назад за процитированный пост, неделю бана. А вот вы продолжаете ему тыкать и выносить обсуждение его личностных характеристик на публику, что является грубым нарушением правил. Пока предупреждение.
-
- Уже с Приветом
- Posts: 1355
- Joined: 07 Jul 2012 04:07
Re: Автотестер. Какие нынче требования?
КМК такие перцы не только очень редки, но и не задерживаются надолго в этом состоянии - уходят или в начальники, или в чистые программисты. Нестабильный изотоп, короче. Труд слишком тяжелый, нервный и неблагодарный в контексте работы в организации, куда проще или руками водить, или по клаве стучать без затей.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
На самом деле ставить процесс и имплементировать фреймворк это задача тех лида при полной поддержке продакт оунера. В большинстве случаев процесс настолько нестабильный, что даже потеря одного серьезного девелопера может стопорнуть процесс или вообще его разрушить. Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.PrettyVacant wrote: ↑10 Sep 2017 23:23КМК такие перцы не только очень редки, но и не задерживаются надолго в этом состоянии - уходят или в начальники, или в чистые программисты. Нестабильный изотоп, короче. Труд слишком тяжелый, нервный и неблагодарный в контексте работы в организации, куда проще или руками водить, или по клаве стучать без затей.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 1039
- Joined: 27 Apr 2014 17:13
- Location: USA
Re: Автотестер. Какие нынче требования?
и это тоже лучше не показывать.Sergunka wrote: ↑10 Sep 2017 20:08Я тоже огурцы посмотрел похохотал - даже и на джуниор не тянетystar wrote: ↑10 Sep 2017 03:24В приличном обществе такой код не показывайте.stenking wrote: ↑09 Sep 2017 15:55Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на Angular. Потом всё почистить и тыды.
в теории после того как всё настроено то можно взять ручных тестеров которые нафигачат тысячу таких кейсов. Но на практике это работает плохо - мозги никто не отменял и будет много г-на а мало пользы.
Вот обычный огурец из проекта
Code: Select all
Feature: Support to create/update/delete Open Model Asset Data Service (ADS) based on Wind Farm and Turbines As an ADS Modeler, I am able to create/update/delete model elements and query using Graph Expression Language # @RunJustThisTest Scenario: Create and query Wind Turbine Given the wind farms table _WT_ | uri | name | owner | lat | lng | | /windfarm/100 | San Ramon | GE | 37.767 |-121.9606 | | /windfarm/101 | Lake Berryessa | GE | 38.586 |-122.275 | And the manufacture table _WT_ | uri | name | address | | /manufacture/100 | GE Energy | 4200 Wildwood Parkway, Atlanta, GA 30339 USA | | /manufacture/101 | Alstom Power | 3, Avenue André Malraux , 92309 Levallois-Perret Cedex, France | And the wind turbines table _WT_ | uri |name | parent |manufacture |model | frequency | power |towerType | hubHeight | rotorDiameter | bladeType | ratedWindSpeed | certification | lat | lng | | /windturbine/100 | 100 | /windfarm/100 | /manufacture/100 | SLE | 50/60 | 1.5 | MTS | 65 | 77 | GE40 | 14 | | 37.7670002 |-121.96057 | | /windturbine/101 | 101 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.5 | MTS | 80 | 82.5 | GE40 | 11.5 | | 37.768 |-121.9605667 | | /windturbine/102 | 102 | /windfarm/100 | /manufacture/100 | XLE | 50/60 | 1.6 | MTS | 100 | 82.5 | GE403 | 14 | IEC 61400-1 | 37.7670002 |-121.9606 | When a user queries a list of wind farms _WT_ Then a list of wind farms should be returned _WT_ | /windfarm/100 | | /windfarm/101 | When a user queries a list of wind turbine manufatures _WT_ Then a list of wind turbine manufatures should be returned _WT_ | /manufacture/100 | | /manufacture/101 | When a user queries a list of wind turbines _WT_ Then a list of wind turbines should be returned _WT_ | /windturbine/100 | | /windturbine/101 | | /windturbine/102 | 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_
property files c линками на json - самое то было бы, не учитывая остального.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
Покажите как это выглядит в деле, пожалуйста?
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Автотестер. Какие нынче требования?
Неправильно в вашем представлении чуть более, чем все.ystar wrote: ↑10 Sep 2017 18:06
немного не правильно выразился.
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.
И да, у нас с вами, возможно разное представление, о том, что подразумевается в частом меняющемся коде.
И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.
Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
Нет никаких повсеместно применимых правил типа "юнит тестами должно быть покрыто все". Нет четко определенного правила покрывать ли часто меняющийся код автотестами или нет. В каждом случае прикладывается умственное усилие и принимаются решения, что имеет смысл, что — нет. И что можно сейчас себе позволить. Это если есть кому это умственное усилие прикладывать. А если нет — то одни гребцы поднимают покрытие юнит тестами с 80% до 90 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Автотестер. Какие нынче требования?
А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?Sergunka wrote: ↑11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
Ну, дык на огурцах описывается acceptance criteria, что фактически является ДоД. На самом деле с ДоД можно разобраться и без огурцов, но если нет покрытия по сценариям более 80% то рефакторинг проекта хрен сделаешь.АццкоМото wrote: ↑11 Sep 2017 03:07А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?Sergunka wrote: ↑11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 1039
- Joined: 27 Apr 2014 17:13
- Location: USA
Re: Автотестер. Какие нынче требования?
Если бы вы умели писать хороший код, то никаких умственных усилий прикладывать не приходилось бы.АццкоМото wrote: ↑11 Sep 2017 03:01Неправильно в вашем представлении чуть более, чем все.ystar wrote: ↑10 Sep 2017 18:06
немного не правильно выразился.
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.
И да, у нас с вами, возможно разное представление, о том, что подразумевается в частом меняющемся коде.
И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.
Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
Нет никаких повсеместно применимых правил типа "юнит тестами должно быть покрыто все". Нет четко определенного правила покрывать ли часто меняющийся код автотестами или нет. В каждом случае прикладывается умственное усилие и принимаются решения, что имеет смысл, что — нет. И что можно сейчас себе позволить. Это если есть кому это умственное усилие прикладывать. А если нет — то одни гребцы поднимают покрытие юнит тестами с 80% до 90 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Автотестер. Какие нынче требования?
AT и DoD — совершенно разные вещиSergunka wrote: ↑11 Sep 2017 03:14Ну, дык на огурцах описывается acceptance criteria, что фактически является ДоД. На самом деле с ДоД можно разобраться и без огурцов, но если нет покрытия по сценариям более 80% то рефакторинг проекта хрен сделаешь.АццкоМото wrote: ↑11 Sep 2017 03:07А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?Sergunka wrote: ↑11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Автотестер. Какие нынче требования?
Видимо, я таки умею писать хороший код. Потому что умственные усилия — это не про вас.ystar wrote: ↑11 Sep 2017 03:27Если бы вы умели писать хороший код, то никаких умственных усилий прикладывать не приходилось бы.АццкоМото wrote: ↑11 Sep 2017 03:01Неправильно в вашем представлении чуть более, чем все.ystar wrote: ↑10 Sep 2017 18:06
немного не правильно выразился.
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.
И да, у нас с вами, возможно разное представление, о том, что подразумевается в частом меняющемся коде.
И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.
Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
Нет никаких повсеместно применимых правил типа "юнит тестами должно быть покрыто все". Нет четко определенного правила покрывать ли часто меняющийся код автотестами или нет. В каждом случае прикладывается умственное усилие и принимаются решения, что имеет смысл, что — нет. И что можно сейчас себе позволить. Это если есть кому это умственное усилие прикладывать. А если нет — то одни гребцы поднимают покрытие юнит тестами с 80% до 90 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Автотестер. Какие нынче требования?
Ну, да как достаточные и необходимые условия. В большинстве ситуаций как правило ни того ни другого продакт оунер выдавить не может и мычит в духе сделайте мне хорошо или сделайте мне json в пропертяхАццкоМото wrote: ↑11 Sep 2017 03:43AT и DoD — совершенно разные вещиSergunka wrote: ↑11 Sep 2017 03:14Ну, дык на огурцах описывается acceptance criteria, что фактически является ДоД. На самом деле с ДоД можно разобраться и без огурцов, но если нет покрытия по сценариям более 80% то рефакторинг проекта хрен сделаешь.АццкоМото wrote: ↑11 Sep 2017 03:07А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?Sergunka wrote: ↑11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 5777
- Joined: 13 Feb 2016 18:50
- Location: Кемерово
Re: Автотестер. Какие нынче требования?
У нас написано бизнес аналистами где-то полторы тыщи огурцовых сценариев, кототые покрывают всю значимую бизнес логику.АццкоМото wrote: ↑11 Sep 2017 03:01Неправильно в вашем представлении чуть более, чем все.ystar wrote: ↑10 Sep 2017 18:06
немного не правильно выразился.
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.
И да, у нас с вами, возможно разное представление, о том, что подразумевается в частом меняющемся коде.
И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.
Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
Нет никаких повсеместно применимых правил типа "юнит тестами должно быть покрыто все". Нет четко определенного правила покрывать ли часто меняющийся код автотестами или нет. В каждом случае прикладывается умственное усилие и принимаются решения, что имеет смысл, что — нет. И что можно сейчас себе позволить. Это если есть кому это умственное усилие прикладывать. А если нет — то одни гребцы поднимают покрытие юнит тестами с 80% до 90 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
несколько тысяч бизнес обьектов для этих сценариев, хранятся в json формате
Да это непросто поддерживать, для этого необходимы соответствующие инструменты, которые позволяют вносить структурные изменения и мигрировать с одной версии бизнес обьектов на другую.
Кроме того ещё на этапе создания сценариев, нужно предоставить возможность бизнес аналистам просто и легко получать соответствующие бизнес обьекты в json формате.
Для этого написаны соответствующие REST services для JsonFactory.
Но как бенефит - качество кода всегда под контролем. При техническом рефакторинге или изменении бизнес логики, побочные эффекты сразу видны через огурцовые репорты.
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Автотестер. Какие нынче требования?
Я ещё раз призываю, разберись, что такое definition of done, это не про огурцы или продает оунера. Дод может быть вообще один на весь проект. И он не транслируется в огурцы. Acceptance criteria — одни на историю и в огурцы могут быть транслированы.
Мат на форуме запрещен, блдж!