what is software quality assurance
Qu'est-ce que l'assurance qualité logicielle?
Assurance qualité des logiciels (SQA) est un processus qui garantit que tous les processus, méthodes, activités et éléments de travail du génie logiciel sont surveillés et sont conformes aux normes définies. Ces normes définies peuvent être une ou une combinaison de tout comme ISO 9000, modèle CMMI, ISO15504, etc.
SQA intègre tous les processus de développement logiciel, de la définition des exigences au codage jusqu'à la publication. Son objectif premier est d'assurer la qualité.
Ce que vous apprendrez:
- Plan d'assurance qualité logicielle
- Activités SQA
- Normes d'assurance qualité logicielle
- Éléments de l'assurance qualité logicielle
- SQA Techniques
- Conclusion
- lecture recommandée
Plan d'assurance qualité logicielle
Abrégé en SQAP, le plan d'assurance qualité logicielle comprend les procédures, techniques et outils utilisés pour s'assurer qu'un produit ou service est conforme aux exigences définies dans le SRS (spécification des exigences logicielles).
Le plan identifie les responsabilités AQ d'une équipe, énumère les domaines qui doivent être revus et audités. Il identifie également les produits de travail SQA.
Le document du plan SQA comprend les sections ci-dessous:
- Section d'objet
- Section de référence
- Section de gestion de la configuration logicielle
- Section des rapports de problèmes et des actions correctives
- Section outils, technologies et méthodologies
- Section de contrôle de code
- Registres: section de collecte, de maintenance et de conservation
- Méthodologie de test
Activités SQA
Voici la liste des activités SQA:
# 1) Création d'un plan de gestion SQA:
L'activité principale consiste à établir un plan approprié concernant la manière dont l'AQS sera réalisée dans votre projet.
En plus de l'approche SQA que vous allez suivre, des activités d'ingénierie qui seront menées, et cela inclut également de vous assurer que vous avez un bon mélange de talents dans votre équipe.
# 2) Définition des points de contrôle:
L'équipe SQA met en place différents points de contrôle selon lesquels elle évalue la qualité des activités du projet à chaque point de contrôle / étape du projet. Cela garantit une inspection de qualité régulière et un travail conforme au calendrier.
# 3) Appliquer les techniques de génie logiciel:
L'application de certaines techniques d'ingénierie logicielle aide un concepteur de logiciel à atteindre des spécifications de haute qualité. Pour recueillir des informations, un concepteur peut utiliser des techniques telles que les entretiens et FAST (Functional Analysis System Technique).
Plus tard, sur la base des informations recueillies, le concepteur du logiciel peut préparer l'estimation du projet en utilisant des techniques telles que WBS (structure de répartition du travail), SLOC (ligne de code source) et estimation FP (point fonctionnel).
# 4) Exécution des examens techniques formels:
Erreur de référence indéfinie c ++
Un FTR est effectué pour évaluer la qualité et la conception du prototype.
Dans ce processus, une réunion est organisée avec le personnel technique pour discuter des exigences de qualité réelles du logiciel et de la qualité de conception du prototype. Cette activité aide à détecter les erreurs dans la phase précoce du SDLC et réduit l'effort de reprise dans les phases ultérieures.
# 5) Avoir une stratégie multi-tests:
Par stratégie multi-tests, nous entendons qu'il ne faut pas s'appuyer sur une approche de test unique, mais que plusieurs types de tests doivent être effectués afin que le logiciel puisse être testé correctement sous tous les angles pour garantir une meilleure qualité.
# 6) Application du respect du processus:
Cette activité insiste sur la nécessité de respecter les processus pendant le processus de développement logiciel. Le processus de développement doit également respecter les procédures définies.
Cette activité est un mélange de deux sous-activités qui sont expliquées en détail ci-dessous:
(i) Évaluation du produit:
Cette activité confirme que le produit logiciel répond aux exigences qui ont été découvertes dans le plan de gestion de projet. Il garantit que les normes établies pour le projet sont correctement suivies.
(ii) Surveillance du processus:
Cette activité vérifie si les étapes correctes ont été suivies pendant le développement du logiciel. Cela se fait en comparant les étapes réellement effectuées aux étapes documentées.
# 7) Contrôle du changement:
Dans cette activité, nous utilisons un mélange de procédures manuelles et d'outils automatisés pour avoir un mécanisme de contrôle des changements.
En validant les demandes de changement, en évaluant la nature du changement et en contrôlant l'effet du changement, on s'assure que la qualité du logiciel est maintenue pendant les phases de développement et de maintenance.
# 8) Mesurer l'impact du changement:
Si un défaut est signalé par l'équipe QA, l'équipe concernée corrige le défaut.
Après cela, l'équipe QA doit déterminer l'impact du changement apporté par cette correction de défaut. Ils doivent tester non seulement si le changement a corrigé le défaut, mais également si le changement est compatible avec l'ensemble du projet.
À cette fin, nous utilisons des mesures de qualité logicielle qui permettent aux gestionnaires et aux développeurs d'observer les activités et les changements proposés du début à la fin du SDLC et d'initier des actions correctives le cas échéant.
# 9) Réalisation d'audits SQA:
L'audit SQA inspecte l'ensemble du processus SDLC réel, puis le compare au processus établi.
Il vérifie également que tout ce qui a été signalé par l'équipe dans les rapports de situation a été effectivement effectué ou non. Cette activité expose également tout problème de non-conformité.
# 10) Tenir des registres et des rapports:
Il est essentiel de conserver la documentation nécessaire relative à l'AQS et de partager les informations requises sur l'AQS avec les parties prenantes. Les résultats des tests, les résultats des audits, les rapports d'examen, la documentation des demandes de changement, etc. doivent être conservés pour référence future.
# 11) Gérez de bonnes relations:
En fait, il est très important de maintenir l'harmonie entre le QA et l'équipe de développement.
On entend souvent dire que les testeurs et les développeurs se sentent souvent supérieurs les uns aux autres. Cela doit être évité car cela peut affecter la qualité globale du projet.
Normes d'assurance qualité logicielle
En général, SQA peut exiger la conformité à une ou plusieurs normes.
Certaines des normes les plus populaires sont présentées ci-dessous:
ISO 9000: Cette norme est basée sur sept principes de gestion de la qualité qui aident les organisations à s’assurer que leurs produits ou services sont alignés sur les besoins des clients ».
7 principes d'ISO 9000 sont décrits dans l'image ci-dessous:
comment transformer une vidéo youtube en fichier wav
Niveau CMMI: CMMI signifie Intégration du modèle de maturité des capacités . Ce modèle a été créé en génie logiciel. Il peut être utilisé pour diriger l'amélioration des processus dans un projet, un service ou une organisation entière.
5 niveaux CMMI et leurs caractéristiques sont décrits dans l'image ci-dessous:
Une organisation est évaluée et reçoit une note de niveau de maturité (1-5) en fonction du type d'évaluation.
Intégration du modèle de maturité de test (TMMi): Basé sur CMMi, ce modèle se concentre sur les niveaux de maturité dans la gestion et les tests de la qualité des logiciels.
5 niveaux TMMi sont représentés dans l'image ci-dessous:
Au fur et à mesure qu'une organisation évolue vers un niveau de maturité plus élevé, elle atteint une plus grande capacité à produire des produits de haute qualité avec moins de défauts et répondant étroitement aux exigences de l'entreprise.
Éléments de l'assurance qualité logicielle
Il y a 10 éléments essentiels de SQA qui sont énumérés ci-dessous pour votre référence:
- Normes de génie logiciel
- Revues et audits techniques
- Test de logiciels pour le contrôle qualité
- Collecte et analyse des erreurs
- La gestion du changement
- Programmes éducatifs
- Gestion des fournisseurs
- Gestion de la sécurité
- Sécurité
- Gestion des risques
SQA Techniques
Il existe plusieurs techniques pour SQA. L'audit est la principale technique largement adoptée. Cependant, nous avons également quelques autres techniques importantes.
Les diverses techniques SQA comprennent:
- Audit: L'audit implique l'inspection des produits du travail et de ses informations connexes pour déterminer si l'ensemble de processus standard a été suivi ou non.
- Révision : Une réunion au cours de laquelle le produit logiciel est examiné par les parties prenantes internes et externes afin d'obtenir leurs commentaires et leur approbation.
- Inspection du code: C'est le type d'examen le plus formel qui effectue des tests statiques pour trouver des bogues et éviter la croissance de défauts dans les étapes ultérieures. Elle est effectuée par un médiateur / pair formé et est basée sur des règles, une liste de contrôle, des critères d'entrée et de sortie. Le réviseur ne doit pas être l'auteur du code.
- Inspection de conception: L'inspection de la conception est effectuée à l'aide d'une liste de contrôle qui inspecte les domaines ci-dessous de la conception logicielle:
- Exigences générales et conception
- Spécifications fonctionnelles et d'interface
- Conventions
- Traçabilité des exigences
- Structures et interfaces
- Logique
- Performance
- Traitement des erreurs et récupération
- Testabilité, extensibilité
- Couplage et cohésion
- Simulation: La simulation est un outil qui modélise la situation réelle afin d'examiner virtuellement le comportement du système étudié.
- Test fonctionel: C'est une technique d'AQ qui vérifie ce que fait le système sans considérer comment il le fait. Ce type de test de boîte noire se concentre principalement sur le test des spécifications ou des fonctionnalités du système.
- Standardisation: La normalisation joue un rôle crucial dans l'assurance qualité. Cela diminue l'ambiguïté et les conjectures, garantissant ainsi la qualité.
- Analyse statique: Il s'agit d'une analyse logicielle effectuée par un outil automatisé sans exécuter réellement le programme. Cette technique est très utilisée pour l'assurance qualité des logiciels médicaux, nucléaires et aéronautiques. Les métriques logicielles et l'ingénierie inverse sont des formes populaires d'analyse statique.
- Procédures pas à pas: La procédure pas à pas logicielle ou la procédure pas à pas de code est une sorte de revue par les pairs où le développeur guide les membres de l'équipe de développement pour parcourir le produit et soulever des questions, suggérer des alternatives, faire des commentaires concernant d'éventuelles erreurs, des violations de normes ou tout autre problème.
- Test de chemin: C'est un technique de test de boîte blanche où la couverture complète de la branche est assurée en exécutant chaque chemin indépendant au moins une fois.
- Test de stress: Ce type de test est effectué pour vérifier la robustesse d'un système en le testant sous forte charge, c'est-à-dire au-delà des conditions normales.
- Six Sigma: Six Sigma est une approche d'assurance qualité qui vise des produits ou services presque parfaits. Il est largement appliqué dans de nombreux domaines, y compris les logiciels. Le principal objectif de six sigma est l'amélioration des processus afin que le logiciel produit soit à 99,76% sans défaut.
Conclusion
SQA est une activité parapluie qui est utilisée tout au long du cycle de vie du logiciel.
L’assurance qualité des logiciels est très importante pour que votre produit ou service logiciel réussisse sur le marché et soit à la hauteur des attentes du client.
Il existe diverses activités, normes et techniques que vous devez suivre pour vous assurer que le logiciel livrable est de haute qualité et correspond étroitement aux besoins de l'entreprise.
J'espère que vous auriez une idée claire du concept de Software Quality Assurance grâce à cet article informatif !!
lecture recommandée
- Test de logiciels et certifications d'assurance qualité - Partie 2
- Quels sont les attributs de qualité?
- Faux Dieu de la qualité contre les vrais humains - Qui est responsable de la qualité des logiciels?
- Différence entre l'assurance qualité et le contrôle qualité (AQ vs CQ)
- Guide de CV de test logiciel parfait (avec exemple de CV de testeur de logiciel)
- Comment utiliser la technique Poka-Yoke (Mistake Proofing) pour améliorer la qualité du logiciel
- Compréhension mutuelle dans les tests: une clé pour fournir un logiciel de qualité
- Emploi d'assistant QA en test logiciel