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.
Software agingIn software engineering, software aging is the tendency for software to fail or cause a system failure after running continuously for a certain time, or because of ongoing changes in systems surrounding the software. Software aging has several causes, including the inability of old software to adapt to changing needs or changing technology platforms, and the tendency of software patches to introduce further errors. As the software gets older it becomes less well-suited to its purpose and will eventually stop functioning as it should.
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.
Bug logiciel inhabituelEn programmation informatique, un bug logiciel inhabituel est un bug considéré comme très difficile à détecter et à réparer. Il en existe plusieurs types souvent désignés d'après le nom de scientifiques qui ont découvert des principes non intuitifs. Selon la nature, la probabilité d'apparition ou la gravité, on trouve ainsi : Schrödinbug ; Heisenbug ; Bohr bug ; Mandelbug. Un schrödinbug (ou schroedinbug, graphie beaucoup plus courante en anglais) est un bug qui n'est pas découvert et non gênant pour les utilisateurs, mais qui apparaît après que quelqu'un a relu le code source ou utilise le logiciel d'une façon non habituelle.
Environnement d'exécutionUn environnement d'exécution ou runtime est un logiciel responsable de l'exécution des programmes informatiques écrits dans un langage de programmation donné. Un runtime offre des services d'exécution de programmes tels que les entrées-sorties, l'arrêt des processus, l'utilisation des services du système d'exploitation, le traitement des erreurs de calcul, la génération d'événements, l'utilisation de services offerts dans un autre langage de programmation, le débogage, le profilage et le ramasse-miette.
FuzzingLe fuzzing (ou test à données aléatoires) est une technique pour tester des logiciels. L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Si le programme échoue (par exemple en plantant ou en générant une erreur), alors il y a des défauts à corriger. Exemples de points d'entrée d'un programme : Fichiers Périphériques (clavier, souris, etc.) Variables d'environnement Réseau Limitation des ressources (mémoire, disque dur, temps CPU, etc.) etc.
Système héritéUn système hérité, système patrimonial ou système obsolète (en anglais : legacy system) est un matériel ou un logiciel continuant d'être utilisé dans une organisation (entreprise ou administration), alors qu'il est supplanté par des systèmes plus modernes. L'obsolescence de ces systèmes et leur criticité les rendent difficilement remplaçables sans engendrer des projets coûteux et risqués. Par exemple, les banques et assurances qui ont informatisé leur traitement des informations dans les années 1970 ont des applications qui tournent avec du code hérité souvent en COBOL ou en Fortran.
Exécution (informatique)En informatique, l'exécution est le processus par lequel un ordinateur ou une machine virtuelle met en œuvre les instructions d'un programme. Les instructions du programme entraînent des séquences d'actions élémentaires sur la machine d'exécution. Les effets qu'entraînent ces actions sont conformes à la sémantique des instructions du programme. Un programme en cours d'exécution est appelé un processus. L’exécution symbolique permet d'explorer les chemins d'exécution possibles d'un programme informatique à partir des symboles contenus dans son code source.
Ubuntu (système d'exploitation)Ubuntu (prononciation : , ʊˈbʊntuː) est un système d’exploitation GNU/Linux fondé sur Debian. Il est développé, commercialisé et maintenu pour les ordinateurs individuels (desktop), les serveurs (Server) et les objets connectés (Core) par la société Canonical. Ubuntu est disponible en deux versions, une qui évolue tous les six mois, et une version LTS, pour qui évolue tous les deux ans. Ubuntu se définit comme « un système d'exploitation utilisé par des millions de PC à travers le monde » et avec une interface « simple, intuitive, et sécurisée ».
Brave (navigateur web)Brave (bɹeɪv) est un navigateur web open source gratuit disponible sur Windows, macOS et Linux ainsi que sur iOS et Android. Il a pour objectif de protéger la vie privée de ses utilisateurs en bloquant par défaut les pisteurs et en permettant la navigation via le réseau Tor. Le logiciel, construit sur Chromium, est développé par l’entreprise Brave Software depuis 2016. thumb|Brendan Eich, fondateur de la Mozilla Foundation et créateur de Brave Software. Brave a été créé par Brendan Eich, également cofondateur de Mozilla Firefox et créateur du JavaScript.
Windows 10Windows 10 est un système d'exploitation de la famille Windows NT développé par la société américaine Microsoft. Officiellement présenté le , il est disponible publiquement depuis le . Bien que le système s'appelle , il s'agit de la version NT 6.4 pour les versions jusqu’à la « Technical Preview », la première version de Windows NT 6 étant Windows Vista. est ainsi une ultime version de ; néanmoins, depuis la version finale, il porte bel et bien le numéro en lieu et place de 6.4. Il est le successeur de .
RootkitUn rootkit ou simplement « kit » (aussi appelé « outil de dissimulation d'activité », « maliciel furtif », « trousse administrateur pirate »), est un ensemble de techniques mises en œuvre par un ou plusieurs logiciels, dont le but est d'obtenir et de pérenniser un accès (généralement non autorisé) à un ordinateur le plus furtivement possible, à la différence d'autres logiciels malveillants. Le terme peut désigner la technique de dissimulation ou plus généralement un ensemble particulier d'objets informatiques mettant en œuvre cette technique.
Compilation à la voléeLa compilation à la volée (aussi connue sous les noms de traduction dynamique, compilation juste-à-temps ou compilation JAT ; en anglais, just-in-time compilation ou JIT compilation), en programmation informatique, est une technique visant à améliorer la performance de systèmes bytecode-compilés par la traduction de bytecode en code machine natif au moment de l'exécution. La compilation à la volée se fonde sur deux anciennes idées : la compilation de bytecode et la compilation dynamique.
NetBSDthumb|Filiation des systèmes Unix. NetBSD est un système d'exploitation libre de type Unix BSD dérivé de 386BSD et de Net/2 (4.3BSD-Lite). NetBSD est entièrement fondé sur des logiciels libres, la plupart des composants étant soumis à la Licence BSD. Le système détient le record sur le nombre d'architectures compatibles ; il peut en effet être utilisé sur plus de cinquante architectures différentes. Cette portabilité est un point central du projet, si bien que sa devise est que face à tout ordinateur, on peut déclarer : « Bien sûr, cela fonctionne avec NetBSD » (de l'anglais « Of course it runs NetBSD »).
USBL'USB (de l'anglais, « Universal Serial Bus ») est une norme de bus informatique en série qui sert à connecter des périphériques informatiques à un ordinateur ou à tout type d'appareil prévu à cet effet (tablette, smartphone). Le bus USB permet de connecter des périphériques « à chaud » (quand l'ordinateur est en marche) et en bénéficiant du plug and play qui reconnaît automatiquement le périphérique. Il peut alimenter les périphériques peu gourmands en énergie (clé USB, disques SSD) et, pour ses dernières versions à prise USB Type-C, des appareils réclamant plus de puissance ( en version standard, au maximum).
Joint Test Action GroupLe JTAG (pour Joint Test Action Group) est le nom de la norme IEEE 1149.1 intitulée « Standard Test Access Port and Boundary-Scan Architecture », qui été normalisée en 1990. Le terme JTAG, désignant le groupe de travail qui a conçu la norme, est abusivement (mais très largement) utilisé au lieu du terme générique Boundary Scan, ou du sigle TAP (Test Access Port, port d'accès de test). La technique de boundary scan (littéralement, « scrutation des frontières ») est conçue pour faciliter et automatiser le test des cartes électroniques numériques.
Environnement de développementEn programmation informatique, un environnement de développement est un ensemble d'outils qui permet d'augmenter la productivité des programmeurs qui développent des logiciels. Il comporte un éditeur de texte destiné à la programmation, des fonctions qui permettent, par pression sur un bouton, de démarrer le compilateur ou l'éditeur de liens ainsi qu'un débogueur en ligne, qui permet d'exécuter ligne par ligne le programme en cours de construction. Certains environnements sont dédiés à un langage de programmation en particulier.