L’assurance de la qualité du logiciel consiste à tester la conception de logiciels et la mise en œuvre et de s'assurer qu'il répond à une norme minimale de qualité. Au cœur du processus d'assurance qualité teste, qui est la méthode par laquelle chaque étape du cycle de développement est analysée afin de trouver des défauts, tels que des défaillances ou des problèmes de sécurité. La partie la plus connue du processus d'assurance de la qualité du logiciel est un logiciel et des tests de code, mais il couvre également d'autres aspects du cycle ingénieur. D'autres aspects du génie logiciel qui sont soumis à des analyses de qualité sont les étapes de conception et de mise en œuvre.
Le concept global de l'assurance qualité des logiciels oblige à commencer à la phase de planification du logiciel. Logiciel mal planifiée peut être difficile, voire impossible, d'écrire d'une manière qui répond aux attentes de l'organisation qui l'a envisagé. Gestion de la qualité au stade de la conception consiste à étudier les ramifications des spécifications ou des objectifs du projet, ainsi que les plans de l'organisation pour atteindre leurs objectifs. L'avantage de l'analyse de la qualité lors de la phase de conception, c'est qu'il trouve et élimine les erreurs au début, plutôt que plus tard dans le cycle de développement lorsque des problèmes de conception sont beaucoup plus coûteux à réparer.
Un ingénieur de test de logiciels, également connu en tant qu'analyste de la qualité des logiciels, est la principale personne responsable de la mise en œuvre du processus de test. Cette personne conçoit et exécute les plans de tests qui aideront l'organisation à améliorer la qualité de leurs logiciels. Idéalement, un programmeur ne devrait jamais tester son produit, ce qui signifie que dans un projet, un programmeur et ingénieur de test sont deux personnes différentes.
Les plans de test sont une partie essentielle du système d'assurance de la qualité, en particulier la phase de tests de logiciels. Le but de plans de test est de déterminer les conditions qui marquent le succès ou l'échec de logiciel. Un plan de test typique comprendra une liste complète des programmes et sous-programmes, ou des procédures qui doivent être testés, ainsi que les techniques impliqués dans les tests. Une autre fonction essentielle d'un plan de test est de déterminer quels défauts sont inacceptables. Les plans de test sont généralement conçus avant que le code logiciel lui-même de l'élaboration du projet.
Lorsque les ingénieurs de test écrire des programmes à mettre en œuvre des plans de test, on appelle ces scripts de test. Les scripts de test sont une partie essentielle du processus d'assurance de la qualité des logiciels. Leur but est d'automatiser le test du code existant d'un programme afin de trouver des défauts. En outre, les ingénieurs de test utilisent généralement des outils de tests conçus dans le commerce pour chercher les problèmes potentiels. Les plans de test sont mis en œuvre lors de la phase de codage de développement de logiciels.
Il y a un certain nombre d'étapes importantes impliquées dans la phase de test réel du processus d'assurance de la qualité du logiciel. Il s'agit notamment des tests unitaires, qui évaluent l'intégrité des différentes sections de code logiciel, ainsi que des injections de fautes, qui sont conçus pour étudier la façon dont les programmes répondent à des données erronées. Des mesures supplémentaires comprennent des tests de charge, les tests de stress, qui voit comment un programme fonctionne sous une utilisation intensive, et l'intrusion ou des tests de sécurité pour tester la résistance d'un programme à l'accès non autorisé. Un projet de logiciel est aussi généralement soumis à des tests d'utilisabilité, afin de vérifier que le programme résultant est facile pour les autres à utiliser.
Les spécialistes qui se livrent à des tests de code de logiciel sont généralement séparés en deux groupes, l'un appelé testeurs de la boîte noire et l'autre connu comme boîte blanche ou boîte de verre, les testeurs. Tests de boîte noire est un processus plus superficielle qui commence à l'étape de codage de logiciel et de ne pas examiner tout code informatique sous-jacente. Il examine les possibilités d'utilisation d'un logiciel, la cohérence esthétique, et l'apparition d'erreurs et de défaillances.
Les tests boîte blanche est un processus qui commence dès le début du processus d'assurance de la qualité des logiciels, au stade de la conception. Il comprend la prédiction des problèmes potentiels avant que le code est effectivement écrit, ainsi que la rédaction des plans de test et des scripts de test avancées. Contrairement aux tests de boîte noire, tests boîte blanche implique également l'étude du code informatique sous-jacente.
L'assurance qualité est également valable pour la phase de mise en œuvre du logiciel, qui est lorsque le logiciel est en voie d'achèvement et est installé sur des systèmes informatiques pour l'évaluation. Cette phase est souvent désigné comme test alpha et il se produit lorsque le produit presque fini est installé et testé par le personnel du développeur. Lorsque le logiciel est présenté aux clients potentiels en dehors de l'entreprise, il est appelé bêta-test. Si des défauts apparaissent après le logiciel est publié et un patch doit être développé, les tests de régression est utilisée pour s'assurer que les nouvelles erreurs ne sont pas créés par les mises à jour.