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

User avatar
Sergunka
Уже с Приветом
Posts: 34164
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: 5777
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: 34164
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: 5777
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: 34164
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: 5777
Joined: 13 Feb 2016 18:50
Location: Кемерово

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

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

Sergunka wrote: 10 Sep 2017 21:06Вам напомнить про вашу маму или сами догадаетесь и перестанете обращаться на ты к собеседнику :food:
Напомните
User avatar
Вячеслав Викторович
Уже с Приветом
Posts: 5777
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: 34164
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: 1039
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: 34164
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: 15276
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: 15276
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: 34164
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: 1039
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 чтобы график показать, а другие пишут юай автотесты на код, который не изменится никогда. Смысла ноль, но все заняты.
Если бы вы умели писать хороший код, то никаких умственных усилий прикладывать не приходилось бы.

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