Автотестер. Какие нынче требования?

ystar
Уже с Приветом
Posts: 1029
Joined: 27 Apr 2014 17:13
Location: USA

Re: Автотестер. Какие нынче требования?

Post by ystar »

stenking wrote: 09 Sep 2017 15:55
valchkou wrote: 09 Sep 2017 07:08 Но нам нужна типа система, (боюсь слова платформа) на которую можно натравить ручных тестеров и они смогут чего то там начать автоматизировать. Потому что если их на травить на селениум то ничего не получится так как для начала им нужно стать жава программистами.
Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на 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"
Т.е. в теории после того как всё настроено то можно взять ручных тестеров которые нафигачат тысячу таких кейсов. Но на практике это работает плохо - мозги никто не отменял и будет много г-на а мало пользы.
В приличном обществе такой код не показывайте.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Автотестер. Какие нынче требования?

Post by АццкоМото »

ystar wrote: 10 Sep 2017 03:16
АццкоМото wrote: 08 Sep 2017 22:59
valchkou wrote: 08 Sep 2017 22:13 Интересно что наиболее полно в состоянии покрыть нашу систему и современные распределенные системы вообще.
А в этом плане рацуха такая. Нужно смотреть на а) наиболее часто изменяемый код б) изменяемый из-за внесённых ошибок в) наиболее часто ломаемый из-за внесённых изменений

Б и В могут показаться (и даже оказаться на практике!) одним и тем же, но это разное. Если сумеете собрать метрики и приоритизировать работу тестирования так, чтобы это код покрывать, как бык овцу, а остальному — присовывать вяленький тестик по остаточному принципу, будете круты нии.. тащемта, очень круты. Но это на стыке дева и кюэй, в отдельности редко тянут

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

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

unit test - 50%
api test - 30%
ui - 20%
Вы живёте в перевёрнутом мире: да, удобнее всего покрыть тестами неизменяющийся безбажный код, высеченный в мраморе. Только смысла ноль.
Мат на форуме запрещен, блдж!
ystar
Уже с Приветом
Posts: 1029
Joined: 27 Apr 2014 17:13
Location: USA

Re: Автотестер. Какие нынче требования?

Post by ystar »

АццкоМото wrote: 10 Sep 2017 05:10
ystar wrote: 10 Sep 2017 03:16
АццкоМото wrote: 08 Sep 2017 22:59
valchkou wrote: 08 Sep 2017 22:13 Интересно что наиболее полно в состоянии покрыть нашу систему и современные распределенные системы вообще.
А в этом плане рацуха такая. Нужно смотреть на а) наиболее часто изменяемый код б) изменяемый из-за внесённых ошибок в) наиболее часто ломаемый из-за внесённых изменений

Б и В могут показаться (и даже оказаться на практике!) одним и тем же, но это разное. Если сумеете собрать метрики и приоритизировать работу тестирования так, чтобы это код покрывать, как бык овцу, а остальному — присовывать вяленький тестик по остаточному принципу, будете круты нии.. тащемта, очень круты. Но это на стыке дева и кюэй, в отдельности редко тянут

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

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

unit test - 50%
api test - 30%
ui - 20%
Вы живёте в перевёрнутом мире: да, удобнее всего покрыть тестами неизменяющийся безбажный код, высеченный в мраморе. Только смысла ноль.
немного не правильно выразился.
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.

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

И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.

Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Автотестер. Какие нынче требования?

Post by stenking »

Юнит тесты часто смысла имеют мало. Точнее они наверное нужны если вы пишите библиотеку или фраимворк но если у вас основной функционал это работа с базой то юнит тут бесполезный.
Бога нет.
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

XpoH wrote: 09 Sep 2017 01:39
valchkou wrote: 08 Sep 2017 22:13
nyekimov wrote: 08 Sep 2017 21:30 А такие есть в Чикагах? Не так чтобы в объявлении, а на местах?

Нанять хотите? Из своих тестеров не хочет никто прогрессировать или вообще пока нет тестеров и решили обзавестись?
а нам в идеале нужен эксперт уже сейчас, который не будет ходить кругами и наступать на грабли, а просто придет все настроит, всех построит.На данный момент инетересует на чем пишут автотестеры, чтобы хотябы сформировать заяву руководству.
знаю например селениум, огурец питон. Кроме того мы уже пытаемся пользовать селениум, но пока не глубоко завязли.
Интересно что наиболее полно в состоянии покрыть нашу систему и современные распределенные системы вообще.
стоить будет как сеньор-помидор.
такие всем нужны, какая вероятность того что вы ему понравитесь?
селениум это одно, бб тесты это другое.
TestNG, rest-assured и тд.
для интеграционных тестов Testcontainers.
Gatling+JMeter.
А Вы Testcontainers пользуетесь? Как впечатление?
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

ystar wrote: 10 Sep 2017 03:24
stenking wrote: 09 Sep 2017 15:55
valchkou wrote: 09 Sep 2017 07:08 Но нам нужна типа система, (боюсь слова платформа) на которую можно натравить ручных тестеров и они смогут чего то там начать автоматизировать. Потому что если их на травить на селениум то ничего не получится так как для начала им нужно стать жава программистами.
Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на 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
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5737
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Автотестер. Какие нынче требования?

Post by Вячеслав Викторович »

Sergunka wrote: 10 Sep 2017 20:08
ystar wrote: 10 Sep 2017 03:24
stenking wrote: 09 Sep 2017 15:55
valchkou wrote: 09 Sep 2017 07:08 Но нам нужна типа система, (боюсь слова платформа) на которую можно натравить ручных тестеров и они смогут чего то там начать автоматизировать. Потому что если их на травить на селениум то ничего не получится так как для начала им нужно стать жава программистами.
Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на 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_
довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок. :)
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов. :crazy:
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

Вячеслав Викторович wrote: 10 Sep 2017 20:27
Sergunka wrote: 10 Sep 2017 20:08
ystar wrote: 10 Sep 2017 03:24
stenking wrote: 09 Sep 2017 15:55
valchkou wrote: 09 Sep 2017 07:08 Но нам нужна типа система, (боюсь слова платформа) на которую можно натравить ручных тестеров и они смогут чего то там начать автоматизировать. Потому что если их на травить на селениум то ничего не получится так как для начала им нужно стать жава программистами.
Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на 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_
довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок. :)
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов. :crazy:
Да ладно покажите свой огурец - впечатлите так сказать публику :good:

Что-то должно быть интеллектуальное навроде Then "json1" equals "json2" :great:
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5737
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Автотестер. Какие нынче требования?

Post by Вячеслав Викторович »

Sergunka wrote: 10 Sep 2017 20:51
Вячеслав Викторович wrote: 10 Sep 2017 20:27
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_
довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок. :)
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов. :crazy:
Да ладно покажите свой огурец - впечатлите так сказать публику :good:

Что-то должно быть интеллектуальное навроде Then "json1" equals "json2" :great:
ну типа того. только не json сравнивают, а обьекты через рефлект.
Я не с ветрянными мельницами работаю, поэтому показать не могу. посодют.
но ты и так всё понял. :twisted:
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

Вячеслав Викторович wrote: 10 Sep 2017 21:00
Sergunka wrote: 10 Sep 2017 20:51
Вячеслав Викторович wrote: 10 Sep 2017 20:27
Sergunka wrote: 10 Sep 2017 20:08
ystar wrote: 10 Sep 2017 03:24
В приличном обществе такой код не показывайте.
Я тоже огурцы посмотрел похохотал - даже и на джуниор не тянет

Вот обычный огурец из проекта

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_
довольно тупо. ))) огурцы у нас хранят expected result в json файлах. тогда сравнивать в ассертах проще.
если у тебя в бизнес обьекте 1000 атрибутов, то в твоей таблице будет 1000 колонок. :)
мда это будет довольно тупо выглядеть. Представляю удивлённые глаза бизнисьменов. :crazy:
Да ладно покажите свой огурец - впечатлите так сказать публику :good:

Что-то должно быть интеллектуальное навроде Then "json1" equals "json2" :great:
ну типа того. только не json сравнивают, а обьекты через рефлект.
Я не с ветрянными мельницами работаю, поэтому показать не могу. посодют.
но ты и так всё понял. :twisted:
Я прерасно понял, что Вы даже не удосужились ни разу поговорить с легал департаментом и прояснить вопрос за что Вас компания может уволить. Но тем не менее приятно поговорить с очередным джуниором о проблемах огурцов и как огурцы в таблице могут содержать миллионы параметров просто указывая не сами значения, а ссылки на хранилища этих параметров к примеру на тот же S3 bucket на Амазоне.

P.S. Вам напомнить про вашу маму или сами догадаетесь и перестанете обращаться на ты к собеседнику :food:
Кнопка "!" работает лучше упоминания чьей-то мамы.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5737
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Автотестер. Какие нынче требования?

Post by Вячеслав Викторович »

Sergunka wrote: 10 Sep 2017 21:06Вам напомнить про вашу маму или сами догадаетесь и перестанете обращаться на ты к собеседнику :food:
Напомните
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5737
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Автотестер. Какие нынче требования?

Post by Вячеслав Викторович »

Вячеслав Викторович wrote: 10 Sep 2017 21:18
Sergunka wrote: 10 Sep 2017 21:06Вам напомнить про вашу маму или сами догадаетесь и перестанете обращаться на ты к собеседнику :food:
Напомните
ну я сам напомню.
мерзавец писал 20 Nov 2016 03:21:
"И насколько я припоминаю ни Вас, ни Вашу маму я не трахал так, что давайте без фамильярностей."
сегодня мерзавец пишет:
"Вам напомнить про вашу маму или сами догадаетесь и перестанете обращаться на ты к собеседнику :food:"
Моя мама умерла много лет назад. Странно, что такие мерзавцы остаются абсолютно безнаказанными.
У этого мерзавца есть семья, дети, друзья, знакомые, коллеги и неужели они не видят насколько этот человек - мерзавец?
Ваш оппонент уже понёс наказание год назад за процитированный пост, неделю бана. А вот вы продолжаете ему тыкать и выносить обсуждение его личностных характеристик на публику, что является грубым нарушением правил. Пока предупреждение.
PrettyVacant
Уже с Приветом
Posts: 1355
Joined: 07 Jul 2012 04:07

Re: Автотестер. Какие нынче требования?

Post by PrettyVacant »

ystar wrote: 10 Sep 2017 03:21 Существуют и найти можно. Стоимость на уровень Senior девелопера. Но знания должны быть как и со стороны программирования, так и со стороны QA, по сути такой человек должен знать побольше senior девелопера.
КМК такие перцы не только очень редки, но и не задерживаются надолго в этом состоянии - уходят или в начальники, или в чистые программисты. Нестабильный изотоп, короче. Труд слишком тяжелый, нервный и неблагодарный в контексте работы в организации, куда проще или руками водить, или по клаве стучать без затей.
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

PrettyVacant wrote: 10 Sep 2017 23:23
ystar wrote: 10 Sep 2017 03:21 Существуют и найти можно. Стоимость на уровень Senior девелопера. Но знания должны быть как и со стороны программирования, так и со стороны QA, по сути такой человек должен знать побольше senior девелопера.
КМК такие перцы не только очень редки, но и не задерживаются надолго в этом состоянии - уходят или в начальники, или в чистые программисты. Нестабильный изотоп, короче. Труд слишком тяжелый, нервный и неблагодарный в контексте работы в организации, куда проще или руками водить, или по клаве стучать без затей.
На самом деле ставить процесс и имплементировать фреймворк это задача тех лида при полной поддержке продакт оунера. В большинстве случаев процесс настолько нестабильный, что даже потеря одного серьезного девелопера может стопорнуть процесс или вообще его разрушить. Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
"A patriot must always be ready to defend his country against his government." Edward Abbey
ystar
Уже с Приветом
Posts: 1029
Joined: 27 Apr 2014 17:13
Location: USA

Re: Автотестер. Какие нынче требования?

Post by ystar »

Sergunka wrote: 10 Sep 2017 20:08
ystar wrote: 10 Sep 2017 03:24
stenking wrote: 09 Sep 2017 15:55
valchkou wrote: 09 Sep 2017 07:08 Но нам нужна типа система, (боюсь слова платформа) на которую можно натравить ручных тестеров и они смогут чего то там начать автоматизировать. Потому что если их на травить на селениум то ничего не получится так как для начала им нужно стать жава программистами.
Нет такого. Ты же вроде умный а хочешь каких-то сказок. Что бы что-то там оттестировать нужно вначале создать кучи сложных фейковых данных, потом прокликать много экранов которые все работают на 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 - самое то было бы, не учитывая остального.
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

ystar wrote: 11 Sep 2017 02:11 property files c линками на json - самое то было бы, не учитывая остального.
Покажите как это выглядит в деле, пожалуйста?
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Автотестер. Какие нынче требования?

Post by АццкоМото »

ystar wrote: 10 Sep 2017 18:06
немного не правильно выразился.
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.

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

И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.

Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
Неправильно в вашем представлении чуть более, чем все.
Нет никаких повсеместно применимых правил типа "юнит тестами должно быть покрыто все". Нет четко определенного правила покрывать ли часто меняющийся код автотестами или нет. В каждом случае прикладывается умственное усилие и принимаются решения, что имеет смысл, что — нет. И что можно сейчас себе позволить. Это если есть кому это умственное усилие прикладывать. А если нет — то одни гребцы поднимают покрытие юнит тестами с 80% до 90 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Автотестер. Какие нынче требования?

Post by АццкоМото »

Sergunka wrote: 11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?
Мат на форуме запрещен, блдж!
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

АццкоМото wrote: 11 Sep 2017 03:07
Sergunka wrote: 11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?
Ну, дык на огурцах описывается acceptance criteria, что фактически является ДоД. На самом деле с ДоД можно разобраться и без огурцов, но если нет покрытия по сценариям более 80% то рефакторинг проекта хрен сделаешь.
"A patriot must always be ready to defend his country against his government." Edward Abbey
ystar
Уже с Приветом
Posts: 1029
Joined: 27 Apr 2014 17:13
Location: USA

Re: Автотестер. Какие нынче требования?

Post by ystar »

АццкоМото wrote: 11 Sep 2017 03:01
ystar wrote: 10 Sep 2017 18:06
немного не правильно выразился.
весь код должен быть покрыт unit тестами, вне зависимости, как часто он изменяется.
вот api и ui, как показывает мой опыт и опыт коллег, не имеет смысле покрывать автотестами, если код меняется очень часто, то автотестеры не будут успевать все поддерживать. Теоретически можно иметь достаточное количество автотестеров, чтобы все успевать параллельно менять, либо заставлять девелоперов все автотесты менять. Но теория это теория, на практике - ресурсы сильно ограничены.

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

И как показывает практика, девелоперы далеки достаточно от тестирования в большинстве своем.

Хороший инструмент для определения чего автоматить, чего можно на потом оставить - с ошибкой в 20-30%.
Неправильно в вашем представлении чуть более, чем все.
Нет никаких повсеместно применимых правил типа "юнит тестами должно быть покрыто все". Нет четко определенного правила покрывать ли часто меняющийся код автотестами или нет. В каждом случае прикладывается умственное усилие и принимаются решения, что имеет смысл, что — нет. И что можно сейчас себе позволить. Это если есть кому это умственное усилие прикладывать. А если нет — то одни гребцы поднимают покрытие юнит тестами с 80% до 90 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
Если бы вы умели писать хороший код, то никаких умственных усилий прикладывать не приходилось бы.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Автотестер. Какие нынче требования?

Post by АццкоМото »

Sergunka wrote: 11 Sep 2017 03:14
АццкоМото wrote: 11 Sep 2017 03:07
Sergunka wrote: 11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?
Ну, дык на огурцах описывается acceptance criteria, что фактически является ДоД. На самом деле с ДоД можно разобраться и без огурцов, но если нет покрытия по сценариям более 80% то рефакторинг проекта хрен сделаешь.
AT и DoD — совершенно разные вещи
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Автотестер. Какие нынче требования?

Post by АццкоМото »

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 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
Если бы вы умели писать хороший код, то никаких умственных усилий прикладывать не приходилось бы.
Видимо, я таки умею писать хороший код. Потому что умственные усилия — это не про вас.
Мат на форуме запрещен, блдж!
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Автотестер. Какие нынче требования?

Post by Sergunka »

АццкоМото wrote: 11 Sep 2017 03:43
Sergunka wrote: 11 Sep 2017 03:14
АццкоМото wrote: 11 Sep 2017 03:07
Sergunka wrote: 11 Sep 2017 01:33Более того не всякий продакт оунер грамотно понимает концепцию сценариев и тем более вряд ли начнет писать огурцы для definition of done обычно это еще один чел в команде кто это делает Technical Product Manager (TPM) В реале получается команда должна быть больше десяти человек чтоб процесс пошел.
А какое отношение могут иметь огурцы к definition of done? Dod это же примерно "коцаный тикет канает за отмазку, некоцаный тикет — гнилой базар". Ну или что то типа "фича считается готовой, если проходит х % юнит тестов, у процентов автотестов, нет критических багов и докУмент жжж подписан начальником транспортного цеха". А то, что можно описать огурцами — acceptance criteria. У вас не так?
Ну, дык на огурцах описывается acceptance criteria, что фактически является ДоД. На самом деле с ДоД можно разобраться и без огурцов, но если нет покрытия по сценариям более 80% то рефакторинг проекта хрен сделаешь.
AT и DoD — совершенно разные вещи
Ну, да как достаточные и необходимые условия. В большинстве ситуаций как правило ни того ни другого продакт оунер выдавить не может и мычит в духе сделайте мне хорошо или сделайте мне json в пропертях :D
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5737
Joined: 13 Feb 2016 18:50
Location: Кемерово

Re: Автотестер. Какие нынче требования?

Post by Вячеслав Викторович »

АццкоМото 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.
Но как бенефит - качество кода всегда под контролем. При техническом рефакторинге или изменении бизнес логики, побочные эффекты сразу видны через огурцовые репорты.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Автотестер. Какие нынче требования?

Post by АццкоМото »

Sergunka wrote: 11 Sep 2017 05:33
Ну, да как достаточные и необходимые условия. В большинстве ситуаций как правило ни того ни другого продакт оунер выдавить не может и мычит в духе сделайте мне хорошо или сделайте мне json в пропертях :D
Я ещё раз призываю, разберись, что такое definition of done, это не про огурцы или продает оунера. Дод может быть вообще один на весь проект. И он не транслируется в огурцы. Acceptance criteria — одни на историю и в огурцы могут быть транслированы.
Мат на форуме запрещен, блдж!

Return to “Работа и Карьера в IT”