Définition du décalage vers la droite
Dans le modèle Waterfall, les tests sont effectués une fois que toute l'ingénierie a été livrée. Cette stratégie conduit à une mauvaise qualité car bugs est plus difficile à détecter et à corriger, d'où la stratégie "Shift Left" (SL) du principe "Early Testing" [ISTQB 2018] pour s'occuper des tests de manière préventive au lieu de simplement réagir à ce qui est disponible.
Néanmoins, faire trop de choses avant de livrer peut ralentir le flux [Reinertsen 2009] ou peut être tout simplement impossible - aucun pentest n'est possible avant que quelque chose n'ait été déployé.
Cette stratégie de "Shift Right" (SR) concerne également le principe appelé "Testing is context dependent" [ISTQB 2018]. Le test SR consiste à observer et à surveiller le produit dans l'environnement de production, et depuis que les développements sont devenus itératifs avec un déploiement régulier auprès des clients, le test en production est également une sorte de "test précoce" pour la prochaine version à venir et donc une boucle de rétroaction continue pour les développeurs à partir des expériences réelles des utilisateurs.
Le SR est le plus utile dans la culture DevOps car il permet de mélanger les préoccupations des Ops à celles des Devs.
La RS est généralement utilisée pour atteindre, entre autres, les objectifs suivants [Chokshi 2018].
- une amélioration de l'expérience client (Customer eXperience - CX) basée sur les commentaires des utilisateurs
- une possibilité d'automatisation sur un binaire plus stable avec du temps supplémentaire pour l'exécuter une fois que la partie centrale du produit a déjà été couverte par SL.
- une couverture plus large puisque les testeurs ont accès à l'ensemble du produit sans aucune pression de livraison - la RS peut être très utile lorsqu'elle est combinée avec les Dark Launches pour permettre de séparer l'urgence du déploiement et la date de sortie qui peuvent être différentes pour des raisons opérationnelles.
Vous pouvez également utiliser Canary Releasing pour donner à quelques bêta-testeurs le temps de voir comment le système livré fonctionnera sans avoir d'impact sur tous les clients si le lancement a eu un sérieux bug.
Faire de la RS n'empêche pas de faire de la SL, les deux stratégies sont complémentaires et proposent différents types de techniques de test ou en répartissent certaines à la fois dans la SL et la RS ; ainsi, les testeurs peuvent décider laquelle de ces stratégies est la plus appropriée en termes de flux, de risque et de coût de retard.
Puisque la RS se déroule en production, vous pouvez également tirer profit de la réutilisation des données capturées dans la vie réelle pour faire de l'analyse et de la veille économique afin de définir les ensembles de données les plus fréquents pour les futurs critères d'acceptation, notamment dans le cadre des ateliers 3 Amigos ou Example mapping et même utiliser l'IA pour générer des cas de test à partir des journaux [Legeard 2021].
En fait, pour certains, SR et SL ne doivent pas être distingués et sont plutôt considérés comme des "tests continus" ou même des "tests holistiques" [Gregory 2018] [Crispin 2019] [Kozlowicz 2020], parfois appelés "TestOps" [Ahmed 2020] [Dolezel 2020] et encore un autre mot à la mode "Shift Up & Spread" [The QA Lead Team 2021] qui introduit l'écoute, qui introduit l'écoute, la défense et la prise en compte de votre client [Giacometti 2021], qui sont les concepts X-Teams et Yokoten décrits plus tôt en 2002 [Ancona 2002] et [Aimetti 2011] dans le cadre du Toyota Production System.
Impact sur la maturité des tests
L'introduction de la RS peut améliorer considérablement la maturité des tests car elle débloque un grand nombre de pratiques telles que
- Perturbation volontaire du système
- Suivi de la solution pour permettre le Lean Startup
- Crowdtesting [Leicht 2017] ou Test A/B
- Politique de traitement des anomalies
- Feedback des ressources, du métier et du business
- pentests
- et l'utilisation des outils APM
SR est largement soutenu par les sessions Gemba, X-Teams et Yokoten.
Là encore, la maturité des tests a beaucoup à voir avec l'innovation et la créativité. Twitter, par exemple, a créé un outil de test de régression automatisé en production basé sur un proxy qui compare les réponses entre la version actuelle et la suivante déployée en mode Dark Launch [Khanduri 2015].
Le point de vue d'Agilitest sur cette pratique
SR est une pratique intéressante à introduire avec Agilitest car elle peut fournir un certain espace pour l'automatisation des tests de manière prudente : assurer l'automatisation des scripts de test de base pendant le Sprint, permettant éventuellement à Dark Launching d'exécuter des scripts supplémentaires mis à jour ou créés sur certains cas particuliers ou simplement préparer l'ensemble supplémentaire de scripts pour la prochaine version comme scripts de test de régression.
Pour découvrir l'ensemble des pratiques, cliquez ici.
Cartes connexes
Pour aller plus loin
- [Ahmed 2020] : Shamim Ahmed - APR 2020 - "Shift-Right Testing : L'émergence de TestOps" - https://devops.com/shift-right-testing-the-emergence-of-testops/
- [Aimetti 2011] : Fabrice Aimetti - " Comment faire Yokoten ? " - 17/SEP/2011 - https://wikiagile.cesi.fr/index.php?title=Comment_faire_Yokoten_%3F
- [Ancona 2002] : Deborah Ancona, Henrik Bresman et Katrin Kaeufer - AVR 2002 - "L'avantage comparatif des X-Teams" - https://www.researchgate.net/publication/39322924
- [Chokshi 2018] : Jasmine Chokshi - OCT 2018 - "Shift Left and Shift Right in Software Testing" - https://www.qmetry.com/blog/shift-left-and-shift-right-in-software-testing/
- [Crispin 2019] : Lisa Crispin - FEB 2019 - "Shift Left, Shift Right : Qu'est-ce que nous changeons, et pourquoi ?" - https://dzone.com/articles/shift-left-shift-right-what-are-we-shifting-and-wh
- [Dolezel 2020] : Michal Dolezel - JUIN 2020 - "Defining TestOps : Collaborative Behaviors and Technology-driven Workflows Seen as Enablers of Effective Software Testing in DevOps" - https://www.researchgate.net/publication/344070662_Defining_TestOps_Collaborative_Behaviors_and_Technology-driven_Workflows_Seen_as_Enablers_of_Effective_Software_Testing_in_DevOps (en anglais)
- [Giacometti 2021] : Michael Giacometti - c2021 - "Why software development needs to shift up (not left or right)" - https://techbeacon.com/app-dev-testing/why-software-development-needs-shift-not-left-or-right
- [Gregory 2018] : Janet Gregory - AVR 2018 - "Shift Left - Why I Don't Like the Term" - https://janetgregory.ca/shift-left-why-i-dont-like-the-term/ (en anglais)
- [ISTQB 2018] : ISTQB - 2018 - "Certified Tester Foundation - Level Syllabus" - https://www.istqb.org/downloads/category/2-foundation-level-documents.html (en anglais)
- [Khanduri 2015] : Puneet Khanduri - "Diffy Testing services without writing tests" - https://blog.twitter.com/engineering/en_us/a/2015/diffy-testing-services-without-writing-tests
- [Kozlowicz 2020] : Joe Kozlowicz - JUL 2020 - "Shift Left ? A droite ? L'amélioration continue dépend des deux" - https://www.lunavi.com/blog/shift-left-shift-right-continuous-improvement-depends-on-both
- [Legeard 2021] : Bruno Legeard & Julien Botella - APR 2021 - "L'IA au service des tests" - https://www.youtube.com/watch?v=6DqHHUCRLAc
- [Leicht 2017] : Niklas Leicht & Jan Marco Leimeister & Ivo Blohm - MAR 2017 - "Leveraging the Power of the Crowd for Software Testing" - https://www.researchgate.net/publication/31568453
- [Moustier 2019-1] : Christophe Moustier - JUIN 2019 - " Le test en mode agile " - ISBN 978-2-409-01943-2
- [Reinertsen 2009] : Donald G. Reinertsen - 2009 - " Les principes du flux de développement de produits : le développement de produits allégé de deuxième génération " - ISBN 978-1-935401-00-1
- [The QA Lead Team 2021] : Iman Benlekehal - JUIN 2021 - "Se déplacer vers le haut et se répandre : Un nouveau concept de test avec Iman Benlekehal" - https://theqalead.com/topics/shift-up-and-spread-a-new-testing-concept-w-iman-benlekehal/