Nos
articles

Le point sur les formations dédiées à l'automatisation des tests - 24/04/2019

Nous devons améliorer la situation actuelle concernant les formations dédiées à l’automatisation des tests qui sont relativement performantes à court terme mais sous optimales à long terme. Pour cela nous devons reconnaître ce qu’est réellement l’automatisation des tests :

1)     Une activité supportant le test logiciel et les testeurs, et non pas une activité destinée à les remplacer.

2)     Une activité de développement logiciel

L’automatisation : une activité pour les testeurs

Pour former de bons ingénieurs en automatisation des tests, nous devrions leur apprendre ce que le test logiciel est vraiment. C’est à ce prix qu’ils pourront identifier où l’automatisation des tests peut être utile dans le cycle de développement logiciel, quelles activités de tests sont potentiellement automatisables ou facilement automatisables. 

Devient-t-on spécialiste en médecine sans avoir une formation de base très solide ? La communauté des testeurs devrait faire la même chose que la communauté médicale.

Testeurs : (ré)apprenez à coder

Une fois que vous avez reconnu que l’automatisation des tests est une activité de développement logiciel vous devez convenir que de bons automaticiens de tests doivent avoir de bonnes bases en conception et développement comme la conception orientée objet basique, la revue de code, la gestion des versions ou l’intégration continue.

Nous ne disons pas que vous devez devenir des experts, nous disons simplement que si vous voulez créer des solutions d’automatisation des tests solides, fiables et maintenables, la connaissance des bases évoquées précédemment est une obligation. Ne vous laissez pas abuser par les superbes présentations marketing des vendeurs de solutions d’automatisation : même les solutions supposées « no code » nécessitent d’avoir de bonnes bases en développement pour les rendre robustes.

Il existe bien d’autres connaissances qui ne sont pas transmises lors des formations standards. Par exemples, comment déterminer ce qui est automatisable, ce qu’on doit automatiser, où comment déterminer ce qui est automatisable et ce qui ne l’est pas avec tel ou tel outil, quelles sont les outils s’intégrant le mieux dans vos processus de développement et de tests ? L’acquisition de connaissances en conception/développement et sur les processus de test, vous aidera grandement à répondre à ces questions.

Conclusion

Si nous voulons « changer » la manière de former les ingénieurs en automatisation des tests, nous devons perdre nos fixations sur les outils et commencer à mieux cerner ce qu’est réellement l’automatisation des tests : un art qui demande beaucoup plus que la simple connaissance d’une batterie d’outils, un art qui demande des connaissances solides en développement logiciels et processus de test. C’est uniquement à cette condition que cette discipline pourra atteindre les objectifs attendus par toutes les parties prenantes.

Heureusement nous ne sommes pas les seuls à penser de cette manière. Nous devons réagir, et le plus tôt sera le mieux. C’est pour cette raison que Kerware proposera bientôt, une nouvelle formation, déclinable sur 3 langages (Java, C#, Python), intitulée :  "Testeurs : (Ré)apprendre à développer pour automatiser vos tests". 

Olivier CHARLES - Consultant KERWARE

Le test de performance avec dispersion des résultats - 26/09/2019

 Bien souvent le cahier des charges applicatif recense  une exigence de performance. Si  tel est le cas, celle-ci doit être bien définie : valeur cible attendue, contexte d'évaluation, méthode de validation des résultats. Plus que la mise en œuvre de la technique d'évaluation de la performance, c'est la mise en place d'un modèle représentatif qui est délicat. 

Aussi, lorsque les mesures sont quasi-constantes quelques tests suffisent pour se déterminer, par contre quand il y a dispersion des mesures,  il est nécessaire de réaliser de nombreuses histoires et d'en faire une analyse statistique. 

L’exemple qui suit met en œuvre un test d’hypothèse (test du  khi-deux) appliqué aux résultats d'un test de performance pour lequel il y a dispersion des résultats, et qui a nécessité de réaliser a minima 1000 histoires, d'automatiser les tests et d'instrumenter pour générer un journal des temps de réponse.

Le problème posé est le suivant : Dans un contexte transactionnel, l'exigence de performance requiert lors de la validation des transactions un temps de réponse de moyenne 1 seconde avec un écart-type 0.4 (indication de la dispersion), ceci avec un niveau de confiance de 95%. On se laisse donc 5% d'incertitude.

Le test d'hypothèse : Les résultats des tests conduisent à obtenir une loi de probabilité empirique. Cette loi empirique s’ajuste t-elle avec la loi normale N(1 , 0.4) de moyenne 1 seconde et d’écart-type 0.4 représentant la cible à atteindre et ceci avec un niveau de confiance de 95%, soit  5% de risque d’être en dessus ?

 Et l’on a

 Comme le Khi-deux calculé est inférieur au  khi-deux théorique on accepte l’hypothèse d’ajustement, c’est bien la décision prise dans l’exercice ci-après. 

Par contre, ce test d’hypothèse ne nous renseigne pas sur plus de niveau de confiance parce que notre khi-deux calculé est bien inférieur aux seuils de risque plus faibles, donc il n’est pas nécessaire de s’y aventurer. Cela nous dit aussi que parmi les 5% de risque, il y a 1% de chance d’être au-dessus de 18.48. 

 Ci-après, à titre d’exemple, la forme de la courbe du khi-deux pour 5 de degrés de liberté (densité de probabilité asymétrique autour de la moyenne de 5).

Il y a ici un papier intéressant et un petit outil en javascript qui met en œuvre le test du khi-deux.

Michel MAURICE - Consultant KERWARE