NFR à tester

Planification

Les Exigences Non Fonctionnelles font partie des US pour avoir un incrément produit potentiellement déployable

Planification

Le concept d'exigences non fonctionnelles (NFR)

Tout le monde connaît les exigences et les tests fonctionnels. Cependant, les exigences non fonctionnelles (NFR) semblent être la clé de produits adorables, surtout s'il y a des concurrents sur le marché.

La culture influence beaucoup les NFRs [Moustier 2019-1] [Moustier 2020] :

  • Les services bancaires favoriseraient grandement la sécurité
  • Les jeux se concentrent beaucoup sur l'expérience de l'utilisateur.
  • Les dispositifs médicaux fourniraient également un tas de NFR, que ce soit sur les matériaux, les méthodes de travail, la robustesse, la sécurité des personnes, ...

Comme référence, la norme [ISO 25010 2011] est couramment citée. Cette norme est basée sur huit "caractéristiques" :

  • Portabilité Adaptabilité, installabilité, remplaçabilité.
  • Maintenabilité : Modularité ; Réutilisabilité ; Analysabilité ; Modifiabilité ; Testabilité
  • Sécurité : Confidentialité ; Intégrité ; Non-répudiation ; Responsabilité ; Authenticité.
  • Fiabilité Maturité ; Disponibilité ; Tolérance aux fautes ; Récupérabilité.
  • Adéquation fonctionnelle : Complétude, Exactitude et Pertinence fonctionnelles.
  • Efficacité de la performance : Comportement temporel ; Utilisation des ressources ; Capacité.
  • Compatibilité Coexistence ; Interopérabilité.
  • Utilisabilité : Appropriation ; Reconnaissance ; Apprentissage ; Exploitation; Protection contre les erreurs de l'utilisateur ; Esthétique de l'interface utilisateur ; Accessibilité.

Il existe différents types de NFR à tester qui peuvent être complétés par d'autres caractéristiques. Il faut un certain temps pour s'occuper des NFRs. La vision SRE, DevOps de Google prévoit que les développeurs ne doivent pas passer plus de 50% de leur temps sur les nouvelles fonctionnalités [Beyer 2016]. Le reste de leur temps est affecté à l'aide aux Ops, c'est-à-dire aux questions d'opérabilité et de maintenabilité. Pour aider la gouvernance, SRE introduit le "budget d'erreur" pour aider le Product Owner (PO) à équilibrer les nouvelles fonctionnalités avec la dette technique.

Le NFR a également un impact important sur l'architecture. Ces exigences dites " Architecturally Significant Requirements " (ASR) [Chen 2013] doivent alors être connues le plus tôt possible pour limiter les refactorings profonds.

Le NRF est une question de :

  • culture des groupes et des individus
  • expérience sur le terrain de l'entreprise et des utilisateurs finaux qui peut être acquise par le biais de promenades Gemba ou du Design Thinking

En fait, les NFR représentent fortement la culture de l'organisation ; par exemple, les entreprises qui se soucient beaucoup de fournir des "produits verts" comme base de référence devraient inclure des tests pour déterminer dans quelle mesure une pièce donnée devrait également être verte. Il serait dommage qu'une pièce rejette des tonnes de CO2 ou implique des matériaux hautement toxiques dans son processus...

Impact du NFR sur la maturité des tests

Le traitement de NFR est quelque chose qui devrait avoir un impact sur chaque activité du cycle de vie du développement logiciel. Dans une configuration agile, le NFR ne doit pas être traité de manière échelonnée, une fois que toute la version est prête. Cette question doit être traitée "en continu", c'est-à-dire qu'elle doit être incluse dans toutes les activités. Par exemple : 

  • SAFe introduit le NFR comme partie d'une description d'epic [SAFe 2021-34].
  • L'architecture doit prendre en compte les RAS le plus tôt possible [Moustier 2019-1].
  • Les quatre quadrants du test comprennent deux quadrants sur le NFR [Crispin 2021].

C'est la raison pour laquelle le NFR a un impact à la fois sur le DoR et le DoD; cependant, gérer tout type de NFR à la fois est tout simplement impossible dès le départ et il serait insensé qu'un MVP prenne en charge 1M d'utilisateurs dès le départ si le produit ne doit pas être follement viral sur le marché de masse. Heureusement, il apparaît qu'un NFR est généralement progressif [Larman 2010]. Cette propriété permet une adoption progressive (disons, passer de 1k Utilisateurs à 10k Utilisateurs) qui est habituellement alignée avec les produits nouvellement déployés sur le marché. Pour l'instant, le renforcement d'un ENF devrait se refléter dans les mises à jour du DoR et du DoD.

Le point de vue d'Agilitest sur les exigences non fonctionnelles (NFR)

Par Agilitest, ils savent combien les NFR sont cruciaux. C'est pourquoi le produit peut être branché à un outil de mesure de performance tel qu'Octoperf[Agilitest 2020].

Pour découvrir l'ensemble des pratiques, cliquez ici.

Pour aller plus loin

  • [ISO 25010 2011] : Publication de normes BSI - "Ingénierie des systèmes et des logiciels - Exigences et évaluation de la qualité des systèmes et des logiciels (SQuaRE) - Modèles de qualité des systèmes et des logiciels" - BS ISO/IEC 25010:2011
  • [Larman 2010] : Craig Larman, Bas Vodde - " Practices for Scaling Lean & Agile Development - Large, Multisite, and Offshore Product Development with Large-Scale Scrum " - Addison-Wesley - 2010 - ISBN-13 : 978-0-321-63640-9
© Christophe Moustier - 2021