Bug (informatique)vignette|upright=1|Le Mac triste : écran indiquant un code erreur sur les premières versions du MacIntosh d'Apple. En informatique, un bug (prononcé en français : ) ou bogue est un défaut de conception d'un programme informatique à l'origine d'un dysfonctionnement. La gravité du dysfonctionnement peut aller de bénigne, causant par exemple des défauts d'affichage mineurs à majeure, tels un plantage du système pouvant entraîner de graves accidents, par exemple la destruction en vol de la première fusée Ariane 5, en 1996.
Serveur webvignette|Serveurs de la Wikimedia Foundation. Un serveur web est soit un logiciel de service de ressources web (serveur HTTP), soit un serveur informatique (ordinateur) qui répond à des requêtes du World Wide Web sur un réseau public (Internet) ou privé (intranet), en utilisant principalement le protocole HTTP. Un serveur informatique peut être utilisé à la fois pour servir des ressources du Web et pour faire fonctionner en parallèle d'autres services liés, comme l'envoi de courriers électroniques, l'émission de flux en streaming, le stockage de données dans des bases de données, le transfert de fichiers par .
Automatic bug fixingAutomatic bug-fixing is the automatic repair of software bugs without the intervention of a human programmer. It is also commonly referred to as automatic patch generation, automatic bug repair, or automatic program repair. The typical goal of such techniques is to automatically generate correct patches to eliminate bugs in software programs without causing software regression. Automatic bug fixing is made according to a specification of the expected behavior which can be for instance a formal specification or a test suite.
DébogueurUn débogueur ou débugueur (de l'anglais debugger) est un logiciel qui aide un développeur à analyser les bugs d'un programme. Pour cela, il permet d'exécuter le programme pas-à-pas , d'afficher la valeur des variables à tout moment et de mettre en place des points d'arrêt sur des conditions ou sur des lignes du programme. Il s'agit de l'application à la programmation informatique du processus de troubleshooting. Le programme à déboguer est exécuté à travers le débogueur et s'exécute normalement.
Analyse dynamique de programmesthumb|Logo de Valgrind. Outil permettant de profiler du code. L'analyse dynamique de programme (dynamic program analysis ou DPA), est une forme d'analyse de programme qui nécessite leur exécution. Elle permet d'étudier le comportement d'un programme informatique et les effets de son exécution sur son environnement. Appliquée dans un environnement physique ou virtuel, elle est souvent utilisée pour profiler des programmes. Que ce soit pour retirer des informations sur le temps d'utilisation du processeur, l'utilisation de la mémoire ou encore l'énergie dépensée par le programme.
DebuggingIn computer programming and software development, debugging is the process of finding and resolving bugs (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, , monitoring at the application or system level, memory dumps, and profiling. Many programming languages and software development tools also offer programs to aid in debugging, known as debuggers.
JettyEclipse Jetty est un serveur HTTP et un moteur de servlet entièrement fondé sur la technologie Java. Jetty est un logiciel libre distribué selon les termes de la licence Apache 2.0. Il est utilisé par plusieurs autres projets populaires comme les serveurs d'applications JBoss et Geronimo. En raison de sa petite taille, il convient parfaitement pour fournir des services web une fois embarqué dans une application Java. Depuis 2009, le développement du noyau est hébergé par la fondation Eclipse.
Apache HTTP ServerLe logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. Jusqu'en avril 2019, ce fut le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Apache est apparu en . Au début, il s'agissait d'une collection de correctifs et d'additions au serveur NCSA HTTPd 1.2, qui était dans le domaine public et le serveur HTTP alors le plus répandu. De cette origine, de nombreuses personnes affirment que le nom Apache vient de a patchy server, soit « un serveur rafistolé ».
Program analysisIn computer science, program analysis is the process of automatically analyzing the behavior of computer programs regarding a property such as correctness, robustness, safety and liveness. Program analysis focuses on two major areas: program optimization and program correctness. The first focuses on improving the program’s performance while reducing the resource usage while the latter focuses on ensuring that the program does what it is supposed to do.
Stepping (debugging)Program animation or stepping refers to the debugging method of executing code one instruction or line at a time. The programmer may examine the state of the program, machine, and related data before and after execution of a particular line of code. This allows the programmer to evaluate the effects of each statement or instruction in isolation, and thereby gain insight into the behavior (or misbehavior) of the executing program. Nearly all modern IDEs and debuggers support this mode of execution.
Runtime verificationRuntime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties. Some very particular properties, such as datarace and deadlock freedom, are typically desired to be satisfied by all systems and may be best implemented algorithmically. Other properties can be more conveniently captured as formal specifications.
DésassembleurUn désassembleur est un programme informatique qui traduit du langage machine (un fichier exécutable) en langage assembleur (aussi désigné sous le nom de langage « bas niveau »). Cette opération, le désassemblage, est l'inverse de celle effectuée par un programme assembleur, l'assemblage. Il est possible de désassembler le code machine généré par un compilateur de langage haut-niveau (C/C++, Delphi, etc.), mais on n'obtiendra pas le code source du langage d'origine, juste la correspondance en assembleur du code machine.
Machine analytiqueLa machine analytique (analytical engine en anglais) est une machine à calculer programmable imaginée en 1834 par le mathématicien anglais Charles Babbage. Il ne la réalisera jamais (sauf pour un prototype inachevé), mais il passera le reste de sa vie à la concevoir dans les moindres détails. Le plus jeune de ses fils, Henry Babbage, en construira l'unité centrale (le moulin) et l'imprimante de 1880 à 1910.
Peine de mortupright=1.5|vignette|Application de la peine de mort dans le monde en 2021. La peine de mort, ou peine capitale, est une peine prévue par la loi consistant à exécuter une personne ayant été reconnue coupable d'une faute qualifiée de « crime capital ». La sentence est prononcée par le pouvoir judiciaire à l'issue d'un procès. En l'absence d'un procès, ou dans les cas où celui-ci n'est pas réalisé par une institution reconnue, on parle d'exécution sommaire, d'acte de vengeance ou de justice privée.
BourreauUn bourreau est un exécuteur des arrêts de justice chargé d'infliger des peines corporelles ou la peine de mort. Le bourreau peut également être appelé « exécuteur des hautes œuvres ». Son titre a évolué au cours des siècles, de la dénomination péjorative de « bourrel » à celle plus institutionnelle d'« exécuteur de la haute justice » lorsqu'il est reconnu comme un agent du pouvoir judiciaire à part entière.
Vérification de modèlesthumb|308x308px|Principe du model checking. En informatique, la vérification de modèles, ou model checking en anglais, est le problème suivant : vérifier si le modèle d'un système (souvent informatique ou électronique) satisfait une propriété. Par exemple, on souhaite vérifier qu'un programme ne se bloque pas, qu'une variable n'est jamais nulle, etc. Généralement, la propriété est écrite dans un langage, souvent en logique temporelle. La vérification est généralement faite de manière automatique.
Test (informatique)vignette|Une programmeuse écrivant du code Java avec JUnit. En informatique, un test désigne une procédure de vérification partielle d'un système. Son objectif principal est d'identifier un nombre maximal de comportements problématiques du logiciel. Il permet ainsi, dès lors que les problèmes identifiés seront corrigés, d'en augmenter la qualité. D'une manière plus générale, le test désigne toutes les activités qui consistent à rechercher des informations quant à la qualité du système afin de permettre la prise de décisions.
Chaise électriquevignette|La première chaise électrique, qui a été utilisée pour exécuter William Kemmler en 1890. La chaise électrique est un instrument d'application de la peine de mort par électrocution, inventé et utilisé aux États-Unis (et aussi aux Philippines par le passé). Elle a été mise au point à la fin des années 1880 par l'ingénieur électricien Harold P. Brown et le dentiste à la demande de Thomas Edison (afin de discréditer le courant alternatif par rapport au continu dans le cadre de la guerre des courants), alors que les États-Unis cherchaient une alternative moins cruelle et plus efficace à la pendaison.
Fuite de mémoireEn informatique, une fuite de mémoire est un bogue expliqué par une occupation croissante et non contrôlée ou non désirée de la taille des données résidentes en mémoire, ce qui entraine la saturation de la mémoire de l’ordinateur. Dans un programme qui stocke régulièrement de nouvelles données en mémoire, la cause la plus classique d'un tel bogue est l'absence de désallocation (de libération) de l'espace utilisé lorsque ces objets ne sont plus référencés.
Profilage de codeEn informatique, le profilage de code (ou code profiling en anglais) consiste à analyser l'exécution d'un logiciel afin de connaitre son comportement à l'exécution. Le profilage de code permet de contrôler lors de l'exécution d'un logiciel : la liste des fonctions appelées et le temps passé dans chacune d'elles ; l'utilisation processeur ; l'utilisation mémoire. en rajoutant des instructions au code source originel qui permettent de mesurer le comportement du logiciel lors de l'exécution.