Ce qui donne l'automatisation des tests

Lors de la création de solutions informatiques, les erreurs coûtent cher, ceci est particulièrement visible en médecine, où la vie humaine dépend de la qualité des logiciels, ou en banque, où de grandes pertes financières sont possibles. L'automatisation des tests vous permet d'organiser un contrôle constant de la qualité des produits. Voyons dans quels cas cela est nécessaire.

Certaines entreprises croient à tort que l'automatisation est une perte de temps et d'argent, d'autres - qu'il s'agit d'une tendance cool et d'une «pilule» pour toutes les maladies. Considérez où se situe le juste milieu et quel est le point de l'automatisation.



Pourquoi tester


La moindre erreur dans le logiciel menace d'énormes coûts. Mieux les processus de développement sont construits, plus les risques sont faibles. Cependant, si nous nous tournons vers les faits, nous constatons que même des géants tels que Google, Microsoft ou les grandes banques font des erreurs.

Par exemple, l'un des fameux «accidents» du monde financier s'est produit à la First National Bank de Chicago à la fin des années 90: du jour au lendemain, les comptes clients ont augmenté de façon déraisonnable de 900 millions de dollars. Ensuite, le vice-président senior de la banque, James Lancaster, a admis qu'il s'agissait d'une «erreur logicielle dans l'ordinateur» - que, heureusement, personne n'a eu le temps d'utiliser.

Des erreurs coûteuses se produisent dans d'autres secteurs qui ne sont apparemment pas directement liés aux TI. Un exemple bien connu est l'accident lors du lancement de la technologie spatiale, en particulier, en 2017, Roscosmos a perdu un satellite d' une valeur de 2,6 milliards de roubles.

Lorsque vous travaillez avec des solutions informatiques à grande échelle, par exemple des systèmes de banque à distance (RBS), il est important de tester en permanence non seulement le fonctionnement des fonctionnalités individuelles, mais également leur interaction. Dans des conditions de délais serrés, lorsque les principales banques mettent à jour leurs applications chaque mois, il est impossible de tout vérifier manuellement - au moins, il n'y aura pas assez de temps pour cela.

Lors de la création de produits informatiques pour les entreprises, deux approches sont généralement combinées:

  • effectuer des contrôles manuellement avec l'aide de spécialistes QA (Quality Assurance) ;
  • combiner les tests manuels et l'automatisation des principaux cas de test, avec l'aide d'experts de SDET (Software Development Engineer in Test) .

Le travail du spécialiste SDET se situe à la frontière de trois domaines - développement, QA et DevOps, couvrant à la fois la rédaction directe de tests automatiques et d'autres tâches. Par exemple, SDET peut configurer CI pour fournir et déployer automatiquement des applications, maintenir la documentation et organiser les processus. Cependant, dans cet article, nous considérons un aspect - l'automatisation des tests.

Ce qui donne l'automatisation


C'est l'une des directions assez nouvelles du développement, entourée d'un grand nombre de mythes. Le plus souvent, une entreprise se tourne vers l'automatisation, estimant qu'elle:

  1. résoudra tous les problèmes de publication de logiciels de qualité;
  2. permettra de refuser les tests manuels;
  3. nécessaire simplement parce que c'est une «tendance cool»;
  4. accélérer la publication des versions;
  5. augmentera la couverture des plates-formes et des versions des systèmes d'exploitation pendant les tests.

De toute évidence, les trois premières déclarations sont excessivement catégoriques et, comme c'est souvent le cas, erronées: pour garantir la qualité d'un produit informatique, il est important de considérer un complexe de nombreux paramètres, et pas seulement l'automatisation des tests.

À leur tour, les deux dernières déclarations sont vraiment vraies: une automatisation des tests compétente permet à la fois d'accélérer les versions et d'augmenter la couverture des cas. Dans le même temps, l'assurance qualité manuelle et l'automatisation sont, en règle générale, tout aussi importantes et sont utilisées en combinaison. De plus, chaque projet est individuel, et parfois l'automatisation n'est pas nécessaire.

Quand l'automatisation est requise


  • Application à grande échelle avec de nombreuses fonctions commerciales
  • Durée de vie significative de l'application (à partir de 1 an ou plus)
  • Implémentation de CI / CD, sorties régulières + un petit nombre de spécialistes QA

Tâches d'automatisation


En règle générale, nous engageons des experts SDET pour résoudre les problèmes suivants:

  • Automatisation des contrôles de routine et fréquents, réduisant la charge des spécialistes de l'assurance qualité.
  • Suivi des principales fonctions de l'application et suivi des modifications du produit.
  • La possibilité de tester avec un grand nombre d'appareils, de versions de navigateur et de systèmes d'exploitation.
  • Tester les performances des applications dans des conditions de travail simultané avec une grande quantité de données et d'utilisateurs.

Résultats


L'automatisation aide à créer un équilibre:

  • vérifier manuellement ce qui nécessite une attention humaine (généralement jusqu'à 25% des cas);
  • Automatisez d'autres cas.

Dans le même temps, l'automatisation à long terme réduit à la fois les coûts de test et les risques associés au facteur humain.

De plus, si nécessaire, vous pouvez accélérer les versions. Par exemple, si vous devez vérifier environ 400 cas dans un sprint de développement, la vérification manuelle prendra jusqu'à deux semaines et les autotests peuvent être effectués la nuit et analysés en 4 heures.

Grâce à l'automatisation, une entreprise a la possibilité à tout moment de s'assurer que les fonctions clés du système fonctionnent correctement et de vérifier les erreurs (et s'il y en a, quelles sont-elles).

Exemple


Supposons qu'en ce moment, dans une banque mobile, vous devez parcourir jusqu'à 700 cas, chacun de 70 à 100 fois par an. Moins de 25% des cas nécessitent une vérification manuelle, les 75% restants peuvent être automatisés.

Temps consacré à la vérification manuelle:

- 30 heures

Temps d'automatisation:

Un essai de nuit dure 8 heures, mais sans intervention humaine, il n'est donc pas pris en compte.

Autres coûts de temps:

  • 8 heures pour la vérification manuelle des cas qui ne peuvent pas être couverts par des auto-tests (25%);
  • 6 heures pour l'analyse des résultats, ainsi que, si nécessaire, pour la vérification des échecs (jusqu'à 10% des tests).

Total: l' automatisation des tests peut réduire le temps passé de 30 à 14 heures .

Bien sûr, chaque cas a ses propres caractéristiques, le temps passé peut donc être différent. Nous analysons en permanence le temps nécessaire à la rédaction de tests automatiques, le support, l'analyse des résultats.

En moyenne, l'automatisation économise au moins 30 à 50% du temps , ce qui vous permet d'allouer plus de temps, par exemple, pour développer et améliorer le produit.

Fonctionnement de l'automatisation des tests


Chaque entreprise informatique a ses propres caractéristiques dans les tests d'automatisation, comme dans les autres processus de travail. Chez SimbirSoft, nous adhérons aux méthodes suivantes qui vous aident à construire rapidement un travail avec les projets de nos clients.

Le processus de test commence par l'élaboration d'une stratégie - un plan de test, la base de la compilation des cas de test individuels. Pour automatiser SDET, les ingénieurs choisissent des scénarios clés, fréquemment utilisés, de l'utilisateur travaillant avec le produit - ces scénarios donnent environ 80% de la valeur commerciale.

Après cela, nous créons la base pour d'autres autotests, mettons en place des stands et un flux de travail pour travailler avec eux, CI pour exécuter régulièrement des tests sur différentes branches. Nous choisissons les approches de préparation des données de test que nous utiliserons (API, accès aux bases de données, génération de données synthétiques, utilisation des données de vente). Les ingénieurs SDET rédigent des tests qui couvrent les scénarios clés d'utilisation du produit, analysent les résultats et la nécessité d'une automatisation supplémentaire.

Nous développons des tests automatisés en utilisant tous les langages de programmation les plus populaires - Java, Python, Kotlin, etc. Nos principaux outils et technologies sont Appium, TestNG | JUnit, RobotFramework | Pytest, sélénium | Senenide, Allure, TeamCity, Jenkins, JMeter.

Les tests qui doivent être automatisés en premier lieu dépendent des caractéristiques d'un produit particulier. La plupart des entreprises automatisent les tests de fumée, les tests de régression pour vérifier les fonctionnalités prêtes à l'emploi et les cas pour vérifier divers paramètres (par exemple, les données valides et invalides lors de l'enregistrement).

Dans notre pratique, nous construisons des processus d'automatisation de tests déjà au début du développement, en parallèle avec des tests manuels. Ce travail n'est pas ponctuel, il est en cours, notamment sur de grands projets, notamment bancaires.

Pour résumer


L'équilibre des tests manuels et automatisés vous permet de surveiller en permanence la qualité du produit informatique. Certains projets sont vérifiés manuellement, d'autres tâches peuvent être résolues avec plus de succès à l'aide de l'automatisation. Les tests manuels sont utilisés dans les cas où les personnes sont irremplaçables, par exemple, si vous avez besoin d'une localisation, d'une description des erreurs, de tests d'utilisabilité manuels. Dans les petits projets, les développeurs écrivent souvent des tests.

Des tests manuels en conjonction avec l'automatisation sont effectués lors de la création de grands produits informatiques, où plusieurs équipes travaillent (par exemple, dans des applications bancaires), où il existe des algorithmes complexes et une logique métier. Cette méthode permet de créer des processus de test de produit et de réduire le risque d'erreurs coûteuses, ce qui est particulièrement important lorsque vous travaillez dans un calendrier de publication serré.

Merci de votre attention! Nous espérons que l'article vous a été utile!

Source: https://habr.com/ru/post/fr477670/


All Articles