Qu'est-ce que l'assurance qualité logicielle?

  • L'assurance de la qualité des logiciels (SQA) est l'ensemble des activités visant à garantir la qualité des logiciels en cours de développement. Des études ont montré que 98% des projets ont finalement échoué sur le marché soit pour les raisons suivantes, comme le temps estimé, le changement des exigences, un coût plus élevé que prévu ou un coût de maintenance élevé. Il est donc très important de garder à l'esprit les différents paramètres avant le développement du logiciel afin de minimiser le risque d'échec.
  • Pour minimiser le risque de défaillance des logiciels sur le marché, l'assurance qualité des logiciels est apparue.
  • Elle implique un ensemble d'activités, de processus, de procédures et de normes qui conviennent au projet. Il couvre toutes les normes de qualité des logiciels, depuis la collecte des exigences jusqu'au développement, la publication et la maintenance de ceux-ci.
  • SQA fonctionne en parallèle avec le cycle de vie du développement de logiciels qui vérifie régulièrement que le logiciel en cours de développement doit répondre à ses normes à chaque étape afin que les problèmes puissent être évités dans les premiers stades plutôt que de les traiter après la fin du projet.
  • SQA inclut l'audit, la formation, la définition de processus et la mise en œuvre comme ses principales activités. Une fois le processus défini, SQA commence à trouver la faiblesse et les moyens de corriger ces faiblesses pour un meilleur logiciel.

Activités d'assurance qualité des logiciels

Vous trouverez ci-dessous certaines des activités de l'Assurance Qualité Logicielle.

1. Définition du point de contrôle

L'équipe SQA définit les points de contrôle après des intervalles de temps spécifiques afin de vérifier la progression, la qualité, les performances du logiciel et si le travail de qualité du logiciel est effectué à temps conformément au calendrier et aux documents.

2. Mesurer l'impact du changement

Pour un défaut signalé par QA et corrigé par le développeur, il est très important de retester la correction de défaut et de vérifier si le défaut corrigé n'introduit pas de nouveaux défauts dans le logiciel de travail. Pour cela, les métriques de test sont maintenues et observées par les gestionnaires et les développeurs pour vérifier les nouveaux défauts générés par l'introduction de nouvelles fonctionnalités ou la correction de tout défaut.

3. Avoir une stratégie de tests multiples

Il ne faut pas se fier à une seule approche et stratégie de test pour tester les logiciels. Une stratégie de test multiple doit être implémentée dans le logiciel afin de la tester sous différents angles et couvrir tous les domaines. Pour un test de sécurité de site Web de commerce électronique, un test de performance, un test de charge, un test de base de données, tout doit être fait pour assurer une meilleure qualité du logiciel.

4. Tenue des registres et des rapports

Il est important de conserver tous les dossiers et documents de l'AQ et de les partager de temps à autre avec les parties prenantes. Cas de test exécutés, cycles de test, défauts enregistrés, défauts corrigés, cas de test créés, modification des exigences d'un client pour un cas de test spécifique, tout doit être correctement documenté pour référence future.

5. Gérer de bonnes relations

La gestion de bonnes relations entre les testeurs et les développeurs joue un rôle important dans le projet. Comme le rôle du développeur et du testeur se contredisent, cela ne doit pas être pris à un niveau personnel. L'objectif principal des deux équipes doit être la livraison de projets de bonne qualité avec un minimum de risques d'échec.

6. Plan de gestion SQA

Cela comprend la recherche de la manière la plus efficace dont l'AQQ fonctionnera dans le nouveau projet. Pensez aux stratégies SQA, aux processus de génie logiciel qui pourraient être mis en œuvre selon les exigences du projet et les compétences individuelles des membres de l'équipe.

Composants du système SQA

Les composants SQA peuvent être classés en 6 classes:

1. Composantes d'avant-projet

Cela garantit que l'engagement du projet a été clairement défini en ce qui concerne l'estimation du temps, la clarification des exigences des clients, le budget total du projet, l'évaluation des risques de développement, le personnel total requis pour ce projet particulier. Il garantit également que les plans de développement et de qualité ont été clairement définis.

2. Composantes du cycle de vie des projets logiciels

Cette composante comprend l'examen, les opinions d'experts, les tests de logiciels, les composants de maintenance des logiciels. Dans le cycle de vie de développement de projet, il comprend des composants tels que des revues, des avis d'experts et la recherche de défauts dans la conception et la programmation de logiciels tandis que dans le cycle de vie de maintenance logicielle, il comprend des composants de maintenance spécialisés et des composants de cycle de vie de développement pour améliorer les tâches de maintenance.

3. Composants d'infrastructure pour la prévention et l'amélioration des erreurs

Cette composante comprend la formation du personnel, la certification, la gestion de la configuration, les mesures préventives et correctives afin de réduire le taux d'erreurs dans un logiciel basé sur l'expérience SQA accumulée de l'organisation.

4. Composants de gestion SQA

Cette classe comprend des métriques de qualité logicielle, des coûts de qualité logicielle, qui comprennent le contrôle des activités de maintenance et de développement et l'introduction d'une implication managériale afin de réduire le risque de qualité, de calendrier et de budget dans le projet.

5. Composantes de la normalisation, de la certification et de l'évaluation du système SQA

L'objectif principal de cette classe est l'utilisation des connaissances internationales professionnelles qui aident à la coordination entre les différents systèmes de qualité de l'organisation au niveau professionnel.

6. Organisation des composants humains SQA

Cette base comprend des gestionnaires, des testeurs et d'autres praticiens SQA qui sont intéressés par SQA. L'objectif principal est de soutenir et d'initier les activités SQA, d'en détecter les lacunes / écarts et de suggérer des améliorations pour cela.

Normes d'assurance qualité des logiciels

Plusieurs organisations, instituts nationaux et internationaux participent à l'élaboration des normes SQA. Les organisations et instituts principaux qui y participent sont les suivants:

  1. IEEE
  2. POINT
  3. ISO
  4. ANSI
  5. EIA
  6. IEC

Les normes SQA sont essentiellement divisées en deux catégories:

1. Norme d'assurance qualité des logiciels, connue sous le nom de normes de gestion de la qualité.

Exemple: ISO 9000-3, CMM (Capability Maturity Model).

Ils se concentrent sur l'infrastructure de l'organisation, le système SQA, les exigences laissant le choix des outils et des méthodes de test à une organisation. Leur objectif standard est «quoi» atteindre. Il garantit que les organisations atteignent une qualité de logiciel acceptable.

2. Normes de processus de développement de projets logiciels, appelées normes de processus de projet.

Exemple: ISO / CEI 12207 IEEEStd 1012-1998.

Ils se concentrent sur les méthodologies qui doivent être mises en œuvre dans le développement et la maintenance des logiciels. Il se concentre sur «comment» performer. Il comprend les exigences de documentation de conception, les étapes à suivre, les tests de logiciels à effectuer et les problèmes de révision et de révision de la conception.

Techniques SQA

Il existe plusieurs techniques SQA. Certains d'entre eux sont mentionnés ci-dessous:

1. Révision

Lors de la révision, une réunion est tenue par les parties prenantes internes et externes pour examiner l'ensemble du projet qui analyse l'ensemble du logiciel et s'il trouve un problème, distingue s'il s'agit de tests, de développement, d'exigence ou d'une conception.L'objectif principal est de mesurer la qualité de logiciels et s’assurer qu’ils répondent ou non aux attentes des clients.

2. Audit

En audit, l'ensemble du produit de travail et toutes les données sont inspectés par les parties prenantes pour vérifier s'il suit ou non les processus standard.

3. Tests fonctionnels

Lors des tests fonctionnels, la fonctionnalité de l'ensemble du logiciel est testée, qu'il fonctionne comme prévu ou non. Il vérifie «ce que fonctionne le système» sans savoir «comment fonctionne le système». C'est comme le test en boîte noire d'une application dans laquelle l'utilisateur connaît la sortie attendue sans savoir comment elle est produite.

4. Normalisation

Il garantit que tout dans le logiciel doit être standardisé, c'est-à-dire qu'il suit toutes les normes, soit les normes de documentation, de développement, de contrôle qualité. Il réduit l'ambiguïté et améliore ainsi la qualité des logiciels.

5. Inspection du code

L'inspection du code est l'un des types d'examen les plus formels dont le principal objectif est de trouver des défauts dans le code et de mettre en évidence les problèmes dans l'inspection du code est dirigé par un modérateur qualifié plutôt que par l'auteur du code. La réunion a des critères d'entrée et de sortie appropriés. Les utilisateurs doivent avoir une préparation complète avant la réunion afin d'avoir une connaissance complète des documents et tout avant de soulever leurs points.

6. Procédures pas à pas

La procédure pas à pas du logiciel est une sorte de processus informel et généralement elle est initiée par l'auteur pour lire le document ou le code et les membres pairs y notent leurs suggestions ou erreurs et les soumettent. Il n'est pas formellement documenté comme une inspection et un modérateur n'est pas nécessaire lors de la réunion. Son objectif principal est de connaître l'état d'avancement du code jusqu'à ce jour et de recueillir des suggestions de pairs pour une meilleure qualité des logiciels.

7. Stress Testing

Des tests de résistance sont effectués pour vérifier le fonctionnement du système sous forte charge. Ces tests jouent un rôle important dans la qualité du logiciel car dans les applications de commerce électronique, les tests de stress et de charge sont effectués correctement afin de tester la capacité du logiciel (combien de nombres maximum d'utilisateurs peuvent accéder à une application à la fois).

8. Inspection de conception

L'inspection de conception est effectuée pour vérifier les différents domaines du logiciel à l'aide de la liste de contrôle comme la conception fonctionnelle et d'interface, les conventions, les exigences générales et la conception, la traçabilité des exigences, la logique, le couplage et la cohésion.

Avantages de SQA

Discutons des avantages de SQA.

1. Augmente la confiance du client

Un contrôle de qualité approprié à différents niveaux de logiciels tels que la revue, l'inspection, l'audit, etc. et avec la participation des parties prenantes internes et externes augmente la confiance des clients dans la soumission des rapports hebdomadaires du défaut et des mesures des exigences contribue également beaucoup à assurer le client que le travail est effectué à temps.

2. SQA permet d'économiser de l'argent

Les défauts détectés à un stade précoce soit dans la collecte des exigences, le code, les tests sont faciles et rentables pour une SQA appropriée effectuée à plusieurs niveaux, ce qui contribue à réduire ces risques, car un maximum de défauts a été découvert et résolu dans les premiers stades et économise donc de l'argent pour réparer le problème. logiciel défectueux après avoir été présenté au client, ce qui peut nuire à la réputation de l'entreprise, aux utilisateurs et aux clients également.

3. Augmentez la satisfaction de vos clients

L'implication en temps opportun du client dans le développement et les tests de logiciels augmente la satisfaction des clients que le logiciel de qualité est développé et selon les exigences et la prise de suggestions entre les deux augmente la satisfaction des clients.

4. Favorise la productivité et l'efficacité

Lorsque le développement et les tests sont effectués en parallèle, les défauts détectés tôt juste après le développement d'un module unique et corrigés par les développeurs en temps opportun permettent à tout le monde de travailler en paix et de manière plus productive plutôt que d'être chargé de plusieurs bogues à la fois après l'achèvement. de l'ensemble du logiciel.

5. Empêche les urgences imprévues

Lors du développement d'un logiciel d'entreprise, les enjeux sont également très importants. Étant donné que le logiciel traite un grand nombre de données sensibles du client, il doit fonctionner comme prévu sans coupures de courant, corruption ou pannes de communication. Le logiciel doit être testé très rigoureusement afin qu'il fonctionne comme prévu.

6. Réduit les conflits avec les clients de fin de session

Il existe de nombreux cas de désaccord du client et des organisations plus tard concernant le changement des exigences, du temps et du budget fixés au démarrage entraînant l'annulation du projet, la perte d'argent et la mauvaise impression de l'entreprise sur le marché (perte du client cela créerait une mauvaise réputation). Dans SQA, tout est fixé au démarrage du projet et documenté correctement sans aucune ambiguïté afin qu'aucun conflit ne survienne

Inconvénients de SQA

Voyons les inconvénients de SQA.

1. Parfois difficile à mettre en œuvre

Étant donné que SQA définit toutes les activités et actions qui doivent être prises à chaque étape du développement logiciel de manière très détaillée, il devient parfois difficile de mettre en œuvre chaque activité et processus en cours de développement. Ainsi, la personne sait que ce serait bénéfique mais se concentrer sur chaque étape en détail devient difficile lorsqu'elle travaille en grandes équipes.

2. Consommer du temps

La mise en œuvre de chaque action dans SQA prend beaucoup de temps et parfois, elle gaspille plus de temps dans la documentation et les réunions plutôt que de travailler sur le développement et les tests réels des logiciels.

3. Coût élevé

Grâce à la mise en œuvre de la SQA, bien que le coût de la correction des bogues dans les étapes ultérieures puisse être réduit en les trouvant et en les corrigeant au démarrage uniquement, mais pour les petits projets avec un petit budget, il est très difficile de mettre en œuvre la SQA car le nombre de ressources augmente dans le projet fait de même le budget d'un projet. Pour les petits projets, l'embauche de toute l'équipe d'AQ et la mise en œuvre de l'AQS entraînent une augmentation drastique du coût d'un projet.

Conclusion

SQA est une activité générale qui couvre l'ensemble du projet tout au long du cycle de vie du logiciel, depuis la collecte des exigences jusqu'à la maintenance du projet. Il couvre toutes les activités et processus à différentes étapes du développement de logiciels afin de garantir que les logiciels livrés soient de haute qualité et à risque minimum afin de réussir sur le marché et de répondre aux attentes des clients et des clients.

Articles recommandés

Ceci est un guide pour l'assurance qualité des logiciels. Nous discutons ici des activités, composants, avantages et inconvénients de l'AQS. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Principes de test de logiciels
  2. Cycle de vie des tests de logiciels
  3. Logiciel Agile
  4. Assurance qualité vs contrôle qualité
  5. Techniques de test de la boîte noire