L’API : une interface comme une autre (qu’on peut tester aussi) Anne-Laure Gaillard Lead QA @Talarian

Anne-Laure Gaillard, Lead QA @Talarian

Les API Web sont devenues omniprésentes

Anne-Laure Gaillard, Lead QA @Talarian

On teste déjà l’interface graphique

On teste déjà l’interface graphique

On teste déjà l’interface graphique “Dans une approche agile, il est recommandé de ne pas attendre d’avoir l’intégralité du processus disponible et de tester ce que l’on a […] en particulier au niveau d’un microservice”

On teste déjà l’interface graphique “[API testing] might produce unexpected results and reveal bugs that would never be found thought UI testing. You can control the tests much more easily that when using UI”

On teste déjà l’interface graphique

Tester l’API, c’est ne pas tester l’expérience utilisateur.

Tester l’API, c’est ne pas tester l’expérience utilisateur.

Tester l’API, c’est ne pas tester l’expérience utilisateur.

Tester l’API, c’est ne pas tester l’expérience utilisateur. “Dans une approche agile, il est recommandé de ne pas attendre d’avoir l’intégralité du processus disponible et de tester ce que l’on a […] en particulier au niveau d’un microservice” Titre : Tests de charge d’un processus métier et disponibilités des microservices

Tester les APIs, c’est technique.

Tester les APIs, c’est technique. Automatisation des tests d’API : 49% QA 28% Dev

Tester les APIs, c’est technique.

Tester les APIs, c’est technique.

T S E R I P A Client Requête HTTP Réponse Serveur

Verbe GET Récupère POST Crée PATCH/PUT Modifie DELETE Supprime … … Param Query Path Request Body Request Headers … Endpoint/URL

Status code 1XX Information 2XX Succès 3XX Redirection 4XX Erreur client 5XX Erreur serveur Réponse JSON

Débuter…

Shift left “A service-based architecture works well with BDD.” “When you design a new service using BDD, you begin by describing the requirements in the form of practical examples of how the service will be used”

Doc review

Requête

Requête

Aller plus loin…

Flow

Automatiser

Automatiser Comment commencer ? “Bien que les compétences techniques existantes soient des atouts pour envisager un virage vers l’automatisation des tests, la motivation des membres de l’équipe est une des clés importantes du succès” “Faites-vous accompagner”

Automatiser Sur le CI dev, QA, fréquence ? “Personne n’accepte qu’une simple fusion de branche prenne plus de 15 minutes” “Des tests automatisés qui n’ont pas trouvé de bug depuis deux sprints peuvent passer d’un rythme quotidien à un rythme hebdomadaire afin de garder un build dans les 10 minutes”

Exploratoire Un chapitre “I don’t think we need to. You convinced me” “Pair ET with other testers.” “Think about the end-user.”

Exploratoire

Aller encore plus loin…

Monitoring

T S E R I P A Client 4XX Erreur client Requête HTTP Réponse Status code Serveur

T S E R I P A Client Requête HTTP Réponse Status code Serveur 5XX Erreur serveur

Monitoring Alerting + Quid des environnements de tests

Sécurité I P A 0 P S 1 A p o W O ity - T r u Sec Broken Level Authorization : Object Object property Broken Authentication Function Unrestricted Access to Sensitive Business Flows Unrestricted Resource Consumption Security Misconfiguration Server Side Request Forgery Hub t i G r u s o f Plus d’in Improper Inventory Management Unsafe Consumption of APIs

Sécurité l e v e L n e k : o r n B o i t a m z i o r Zo Autho bject O

Sécurité Unsafe Consumption of APIs

Performance

Contract Consommateur Consumer Fournisseur Provider

Tester une API Participer à la conception Lire la documentation Tester les requêtes Pour aller plus loin : Monitoring & alerting Attaquer l’API Contrôler les performances Tester les contrats

Les APIs sont partout ! Vous êtes capables de les tester

Quelques références https://www.youtube.com/watch ?v=FPrMPOlqZN4 https://medium.com/manomano -tech/api-exploratory-testing-anopportunity-to-improve-yourapi-testing-d18e125f244d