Automatiseurs Schrödinger

Description d'article


Est-il nécessaire pour une entreprise de mettre en avant les compétences d'un ingénieur en automatisation et sont-elles si uniques?


L'article décrit comment, au sein de l'entreprise, avec les équipes d'automatisation existantes, les compétences ont été révisées, ce qui a fait apparaître le paradoxe «Il y a une équipe, mais pas de compétences». Le résultat de l'examen a été qu'il n'y avait plus d'équipes d'automatisation.


Objet de l'article


Racontez l'expérience et les raisons de prendre certaines décisions.


ATTENTION: Toutes les solutions ont été élaborées au sein d'une certaine entreprise, en tenant compte des spécificités des projets

Structure de l'article


  • Description de l'objet testé, du projet, des équipes;
  • Formulation d'objectifs pour un système avec autotests et leur solution;
  • Formulation des compétences nécessaires pour atteindre les objectifs;
  • Résumant.

Description de l'objet testé, du projet, des équipes


Pile: C #, SpecFlow (BddFy), sélénium


Objet de test: Systèmes pour les compagnies d'assurance automobile en Amérique. Tous les systèmes ont des zones d'administration pour configurer des applications, des API de repos pour que les clients puissent écrire eux-mêmes des portails, une application pour créer une politique et effectuer des paiements, et une application pour générer des rapports. Toutes les pièces doivent être couvertes de 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. Vous ne pouvez pas fusionner une branche dans la branche principale si des tests y tombent;
  3. "Branches principales toujours vertes".

Si ces règles ne sont pas respectées, l'équipe d'automatisation sera constamment dans les conditions de course et les équipes de développement n'auront pas confiance dans les autotests.


Les approches décrites ont été mises en œuvre dans plusieurs projets de l'entreprise et fonctionnent avec succès depuis six mois. Peut-être que le passé ne suffit pas pour tirer des conclusions, mais à l'heure actuelle, il n'y a pas de conditions préalables pour changer l'approche.


All Articles