Schrödinger Automators

Article description


Is it necessary for a company to highlight the competencies of an automation engineer and are they so unique?


The article describes how, within the company, with existing automation teams, a review of competencies took place, as a result of which the paradox “There is a team, but no competencies” appeared. The result of the review was that there were no more automation teams.


Purpose of the article


Tell the experience and reasons for making certain decisions.


WARNING: All solutions were worked out within a certain company, taking into account the specifics of the projects

Article structure


  • Description of the tested object, project, teams;
  • Formulation of goals for a system with autotests and their solution;
  • Formulation of competencies necessary to achieve the goals;
  • Summarizing.

Description of the tested object, project, teams


Stack: C #, SpecFlow (BddFy), Selenium


Test Object: Systems for auto insurance companies in America. All systems have admin areas for setting up applications, rest api so that customers can write portals themselves, an application for creating a policy and making payments, and an application for generating reports. All parts must be covered with tests.


, . , QA. , . . 4000 , environment. . 15% broken( ).



- main branch. :


  • . , , , /, ;
  • . 4 . , 4 (48 — ).
  • .


, , . , HttpContext, claims, . , , , . .



:


  • ;
  • , ;

:


  1. CI . Cake(C# Make), . , ;
  2. , extension-;
  3. Selenoid GoGrid Router – CI/CD .

:


  1. solution ;
  2. solution analyzer ;
  3. MSBuild ;
  4. .

, , Controller/ View DI . , , /. Rest . : « , ». , UI — . 5 .


C


:


  1. DI . DI Must-Have feature , , , . ;
  2. ScenarioContext. , . , , , . ;
  3. . , , — SQL Server ;
  4. SOLID . , .

, – (), . , . 99.9 % , , , . , 3 4000 . , staging, .



: , . , , . – .
:


  • , BDD Framework. SpecFlow , .net core. , SpecFlow , ;
  • CQRS . UserActivity(UserActivity, UserActivityHandler, UserActivityResult) CheckAssertions (CheckAssertions, CheckAssertionsHandler);
  • Command Dispatcher(Mediator) . , .

:
:


image


UserActivityHander Handle:


image


, Command Dispatcher , :


  1. Handle , ,
    ;
  2. UserActivity , .

, (, ) , .



, , , , (CLR, , , , DI), , (Selenium, Selenoid, Specflow), , , .



, . . :


  1. feature , ;
  2. You cannot merge a branch in the main branch if tests fall in it;
  3. "Ever green main branches".

If these rules are not met, then the automation team will be constantly in the race conditions and the development teams will not have confidence in the autotests.


The described approaches have been implemented in several projects of the company and have been successfully operating for six months. Perhaps the past tense is not enough to draw conclusions, but at present there are no prerequisites for changing the approach.


All Articles