Où pensez-vous que les bogues logiciels pourraient être à l’origine? Correct, dans le logiciel. Mais où exactement?
Pourquoi arrive-t-il que les programmes ne fonctionnent pas correctement? C’est très simple – ils sont créés et utilisés par les gens. Si l’utilisateur fait une erreur, cela peut entraîner un problème dans le fonctionnement du programme – il est mal utilisé, ce qui signifie qu’il peut ne pas se comporter comme prévu.
Erreur humaine
Une erreur – est une action humaine qui produit un résultat incorrect.
Cependant, les logiciels sont conçus et créés par des personnes qui peuvent (et font) également des erreurs. Cela signifie qu’il y a des défauts dans le logiciel lui-même. Ils sont appelés défauts ou bogues (les deux désignations sont équivalentes). Rappelez-vous – le logiciel est plus qu’un simple code.
Défauts ou Bogues logiciels
Défaut, bogue – une déficience d’un composant ou d’un système pouvant entraîner la défaillance de certaines fonctionnalités. Un défaut découvert lors de l’exécution du programme peut provoquer une défaillance d’un composant individuel ou de l’ensemble du système.
Pendant l’exécution du code du programme, des défauts qui ont été intégrés même pendant son écriture peuvent apparaître: le programme peut ne pas faire ce qu’il devrait, ou vice versa – faire ce qu’il ne devrait pas et un crash se produit.
Défaillance ou crash logiciel
Une défaillance ou un crash est un écart entre le résultat réel du fonctionnement d’un composant ou d’un système et le résultat attendu.
L’échec du programme peut être un indicateur de la présence d’un défaut.
Ainsi, le bogue existe lorsque trois conditions sont remplies simultanément:
- le résultat attendu est connu;
- le résultat réel est connu;
- le résultat réel diffère du résultat attendu.
Il est important de comprendre que tous les bogues ne provoquent pas de plantages – certains d’entre eux peuvent ne pas se manifester et rester inaperçus (ou n’apparaître que dans des circonstances très spécifiques).
Les défaillances peuvent être causées non seulement par des défauts, mais également par des conditions environnementales: par exemple, les rayonnements, les champs électromagnétiques ou la pollution peuvent également affecter le fonctionnement du logiciel et du matériel.
Au total, il existe plusieurs sources de défauts et, par conséquent, de défaillances:
- erreurs dans la spécification, la conception ou la mise en œuvre du système logiciel;
- erreurs d’utilisation du système;
- conditions environnementales défavorables;
- dommages délibérés;
- les conséquences potentielles d’erreurs, de conditions ou d’actions intentionnelles antérieures.
Les défauts peuvent se produire à différents niveaux, et la qualité du système dépendra directement de leur correction et du moment.
Qualité – le degré auquel l’ensemble des caractéristiques inhérentes répond aux exigences.
La qualité logicielle est un ensemble de caractéristiques du logiciel qui reflètent sa capacité à répondre aux besoins énoncés et implicites. L’exigence est un besoin ou une attente établi. Habituellement supposé ou requis.
Dans le premier cas, tout a été fait correctement et nous avons reçu un produit qui répond pleinement aux attentes du client et répond aux critères de qualité.
Dans le second cas, des erreurs ont déjà été commises lors du codage, ce qui a entraîné l’apparition de défauts dans le produit fini. Mais à ce niveau, les bugs sont assez faciles à repérer et à corriger, car nous constatons une non-conformité.
La troisième option est pire – ici des erreurs ont été commises au stade de la conception du système. Cela ne peut être remarqué qu’en effectuant un contrôle approfondi avec la spécification. La correction de tels défauts n’est pas non plus facile – vous devez repenser la conception du produit.
Dans le quatrième cas, les défauts ont été constatés au stade de la formation des exigences; tous les développements ultérieurs et même les tests se sont trompés initialement. Pendant les tests, nous ne trouverons pas de bogues – le programme passera tous les tests, mais il peut être rejeté par le client. Vous en apprendrez plus à ce sujet dans nos cours et certifications d’assurance qualité en ligne.
Classiquement, il y a cinq raisons à l’apparition de défauts dans le code du programme.
- Manque de communication de l’équipe. Souvent, les exigences de l’entreprise n’atteignent tout simplement pas l’équipe de développement. Le client comprend comment il veut voir le produit fini, mais si son idée n’est pas correctement expliquée aux développeurs et aux testeurs, le résultat peut ne pas être comme prévu. Les exigences doivent être disponibles et compréhensibles pour tous les participants au processus de développement de logiciels.
- Complexité du logiciel. Le logiciel moderne se compose de nombreux composants qui sont combinés en systèmes logiciels complexes. Applications multithread, architecture client-serveur et distribuée, bases de données à plusieurs niveaux – les programmes deviennent de plus en plus difficiles à écrire et à maintenir, et plus le travail des programmeurs devient difficile. Et plus le travail est difficile, plus la personne qui l’exécute peut commettre d’erreurs.
- Modifications apportées aux exigences. Même des modifications mineures aux exigences en fin de développement nécessitent beaucoup de travail pour apporter des modifications au système. La conception et l’architecture de l’application changent, ce qui nécessite à son tour des modifications du code source et des principes d’interaction des modules logiciels. Ces changements en cours sont souvent la source de défauts subtils. Néanmoins, les exigences fréquemment changeantes dans les entreprises modernes sont plus la règle que l’exception, de sorte que les tests continus et le contrôle des risques dans de telles conditions sont de la responsabilité directe du département d’assurance qualité.
- Code mal documenté. Il est difficile de maintenir et de modifier un code mal écrit et mal documenté. De nombreuses entreprises ont des règles spéciales pour l’écriture et la documentation du code par les programmeurs. Bien qu’en pratique, il arrive souvent que les développeurs soient obligés d’écrire rapidement des programmes en premier lieu, ce qui affecte la qualité du produit.
- Outils de développement logiciel. Les moteurs de rendu, bibliothèques, compilateurs, générateurs de scripts et autres aides au développement sont également souvent des programmes peu performants et mal documentés qui peuvent devenir une source de défauts dans le produit fini.