L'assurance qualité logicielle (SQA) est définie comme une approche bien planifiée et systématique pour évaluer la qualité des logiciels. Il vérifie le respect des normes, processus et procédures des produits logiciels. L'AQS comprend le processus systématique visant à garantir que les normes et les procédures sont établies et suivies tout au long du cycle de vie du développement logiciel et du cycle de test.
L'objectif principal de Testing est d'identifier les bogues dans le système le plus tôt possible, car la correction précoce des défauts est moins coûteuse. Selon les chiffres d'une étude, si des bogues sont trouvés après la publication, ils deviennent plus coûteux à corriger et ils ont également un impact sur la confiance des utilisateurs finaux envers l'application.
Une étude IBM montre qu'il est 100 fois plus coûteux de corriger les défauts détectés après la sortie de l'application
- En résumé, l'assurance qualité des logiciels est importante car elle permet de:
- S'assurer que le projet répond aux exigences
- Prévenez, détectez et corrigez rapidement les défauts
- Minimiser les risques du projet
- Augmentez la fiabilité du produit
- Améliorez l'expérience de l'utilisateur final
- Test et conformité aux normes
- Gestion des versions et contrôle des versions
- Réduction des coûts de développement
- Réduction des coûts de maintenance
Avantages des tests
- Réduction du temps de mise sur le marché
- Haute qualité
- Des ressources de test à la pointe de la technologie
- Ressourcement flexible
- Focus sur les priorités stratégiques
Les activités d'AQS ont lieu à chaque étape du cycle de vie du développement. Les étapes sont classées dans les domaines de la collecte des exigences, de la conception du système, du codage et des tests et enfin de la publication.
- Vérification - Processus d'évaluation d'un système ou d'un composant pour déterminer si les produits d'une phase de développement donnée satisfont aux conditions imposées au début de cette phase.
- Validation - Processus d'évaluation d'un système ou d'un composant pendant ou à la fin du processus de développement pour déterminer s'il répond à des exigences spécifiques
Au cours des étapes d'analyse des exigences, de conception et de codage du développement de l'application, les sorties de chaque étape doivent être mesurées, surveillées et gérées afin que chaque sortie puisse être vérifiée par rapport à ses critères de sortie prédéfinis. Lorsque l'application finale a terminé les étapes de codage et d'intégration, elle doit être validée par rapport aux exigences de l'application d'origine et approuvée par la haute direction comme ayant réussi les tests de validation. A chaque étape du développement de cette application, les efforts de développement doivent être améliorés dans la mesure du possible afin d'améliorer la qualité et de rester compétitif.
La différence entre la vérification, la validation et la mesure de la qualité logicielle
Un effort de vérification efficace doit montrer que toutes les exigences ont été exécutées correctement, cela se fait en testant les exigences par rapport à la livraison du produit. Ces tests peuvent être réexécutés pour obtenir les mêmes résultats si le système est modifié ultérieurement.
La vérification montre qu'un produit satisfait à ses exigences spécifiées à des jalons prédéfinis au cours du cycle de vie du développement. La validation vérifie que le système répond aux exigences du client à la fin du cycle de vie de développement.
La validation est le processus d'évaluation du produit final pour vérifier si l'application répond aux attentes et aux exigences du client. C'est un mécanisme dynamique de validation et de test du produit réel. Les tests de validation utilisent des méthodes telles que les tests de boîte noire (fonctionnels), les tests de boîte grise et les tests de boîte blanche (structurels), etc.
La qualité du logiciel produit dans chaque processus ou modèle est décrite en termes de nombre de défauts créés. En règle générale, les mesures les plus courantes pour les défauts sont:
- Nombre total de cas de test
- Nombre de cas de test réussis
- Nombre de cas de test ayant échoué
- Nombre de cas de test bloqués
- Nombre de défauts trouvés
- Nombre de défauts acceptés
- Nombre de défauts rejetés
- Nombre de défauts différés
- Nombre de défauts critiques
- Nombre d'heures de test prévues
- Nombre d'heures de test réelles
- Nombre de bogues détectés après la livraison
Les différentes activités de l'assurance qualité sont les suivantes:
- Maintenir la qualité du projet selon les spécifications et les exigences de l'entreprise.
- Prévention des défauts et méthodes formelles pour d'autres techniques de prévention des défauts.
- Réduction des défauts.
- Inspection, revues formelles et informelles: détection et élimination directe des défauts sans exécuter le scénario du projet
- Test du projet pour l'observation des échecs et la suppression des bogues.
- Identification des risques.
- Techniques et méthodes de suivi des défauts.
- Tolérance aux pannes logicielles.
- Remarques finales et mise à jour des rapports.
Pourquoi l'assurance qualité du logiciel est très importante
- Point de vue de l'utilisateur : l'assurance qualité de l'application logicielle est bonne pour voir l'application du point de vue de l'utilisateur final et créer un scénario en fonction de celui-ci.
- Défaut lors de la phase de test : il est bon de trouver les problèmes à un stade précoce et de les résoudre avant que le client ne les trouve en production, par exemple.
- Risque du projet : l'assurance qualité au début d'un projet joue un rôle clé dans l'atténuation des risques qui ont été identifiés lors des phases de spécification.
- Fiabilité : augmente la confiance des utilisateurs finaux lorsqu'ils trouvent que l'application fonctionne selon leurs attentes. Même un scénario négatif grâce à un échec complet augmente la confiance de l'utilisateur final et rend l'application intelligente.
- Facilite l'utilisateur final : il aide l'utilisateur final à effectuer des tâches commerciales sans avoir aucune connaissance technique de l'application. Les applications facilement compréhensibles ont plus d'utilisateurs que les applications traditionnelles.
- Security Breach Prevention : il aide les développeurs de logiciels à protéger les données utilisateur dans l'environnement de production et à détecter toute fuite de données dans l'environnement de test.
- Compréhension de la charge : cela aide à comprendre l'application fonctionnant sous simulation et à résoudre les problèmes après avoir compris la charge réelle du système dans l'environnement de production.
- Automatisation : tester le logiciel dans le but de réduire les efforts de test, de fournir des capacités plus rapidement et de manière plus abordable. Cela aide à créer des logiciels de meilleure qualité avec moins d'effort.