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.
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.
Véhicule hybrideUn véhicule hybride est un véhicule faisant appel à plusieurs sources d'énergie distinctes pour se mouvoir. Les véhicules hybrides combinent plusieurs sources d'énergie dont souvent l'une est thermique et l'autre électrique. Le principe global très simplifié de ce type de motorisation consiste à profiter des avantages de chaque type de moteur en minimisant leurs inconvénients. Quatre architectures d'hybridation sont possibles : En série : le moteur thermique entraîne un alternateur sans fournir directement de couple à l'essieu, l'alternateur fournissant l’électricité à un moteur électrique.
Symbolic executionIn computer science, symbolic execution (also symbolic evaluation or symbex) is a means of analyzing a program to determine what inputs cause each part of a program to execute. An interpreter follows the program, assuming symbolic values for inputs rather than obtaining actual inputs as normal execution of the program would. It thus arrives at expressions in terms of those symbols for expressions and variables in the program, and constraints in terms of those symbols for the possible outcomes of each conditional branch.
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.
Automatisation de testL'automatisation de test permet de jouer à volonté des tests de régression à la suite de la livraison d'une nouvelle version d'une application. L'automatisation d'un test n'a de sens que si le test répond à un certain nombre de critères : le test est systématique : il doit être exécuté à chaque nouvelle version de l'application. le test est répétitif : il est présent dans de nombreux scénarios de test. le test est automatisable : il est possible techniquement de faire jouer le test par un robot.
Train hybrideUn train hybride est une locomotive, une automotrice ou un train qui utilise système de stockage d'énergie rechargeable (RESS) à bord, placé entre la source principale d'alimentation (souvent un moteur diesel) et le système de traction. Étant donné que la plupart des locomotives diesel sont de type diesel/électrique, elles sont déjà équipées de série de tous les organes d'une transmission hybride à l'exception de la batterie de stockage, ce qui en fait une perspective relativement simple à mettre en œuvre.
Test unitaireEn programmation informatique, le test unitaire (ou « T.U. », ou « U.T. » en anglais) est une procédure permettant de vérifier le bon fonctionnement d'une partie précise d'un logiciel ou d'une portion d'un programme (appelée « unité » ou « module »). Dans les applications non critiques, l'écriture des tests unitaires a longtemps été considérée comme une tâche secondaire. Cependant, les méthodes Extreme programming (XP) ou Test Driven Development (TDD) ont remis les tests unitaires, appelés « tests du programmeur », au centre de l'activité de programmation.
Hybrid vehicle drivetrainHybrid vehicle drivetrains transmit power to the driving wheels for hybrid vehicles. A hybrid vehicle has multiple forms of motive power. Hybrids come in many configurations. For example, a hybrid may receive its energy by burning gasoline, but switch between an electric motor and a combustion engine. Electrical vehicles have a long history combining internal combustion and electrical transmission - as in a diesel–electric power-train - although they have mostly been used for rail locomotives.
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.
Automobile hybride électriqueUne automobile hybride électrique est un véhicule automobile faisant appel à deux types d'énergie embarqués pour se mouvoir, dont l'un est de nature électrique (électrochimique ou électrostatique). L'architecture la plus répandue pour ce type de véhicule hybride associe un moteur électrique à un moteur thermique, généralement à essence. La nature réversible de la partie motrice électrique permet la récupération d'une partie de l'énergie cinétique du véhicule par freinage régénératif.
Véhicule hybride rechargeablevignette|Une Audi A1 rechargeable au salon iMobility 2012 à Stuttgart. Un véhicule hybride rechargeable (VHR) est un véhicule hybride électrique dont la batterie de traction est conçue pour être chargée par branchement à une source d'énergie extérieure. Deux catégories de tels véhicules existent : PHEV (de l'anglais « Plug-in Hybrid Electric Vehicle ») quand les deux motorisations agissent de concert pour animer le véhicule, ou EREV (de l'anglais « Extended Range Electric Vehicles ») quand seul le moteur électrique est connecté aux roues, le moteur thermique ne fournissant de la puissance à un générateur d'électricité que lorsque la batterie d'accumulateurs a besoin d’être rechargée.
Programmation informatiquevignette|Liste d'instructions sur le Commodore 64 La programmation, appelée aussi codage dans le domaine informatique, désigne l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante du développement de logiciels (voire de matériel). L'écriture d'un programme se fait dans un langage de programmation. Un logiciel est un ensemble de programmes (qui peuvent être écrits dans des langages de programmation différents) destiné à la réalisation de certaines tâches par un (ou plusieurs) utilisateurs du logiciel.
Model-based testingvignette|Diagramme du model-based testing Le model-based testing (MBT) est une activité qui permet de concevoir et de dériver (de manière automatique ou non) des cas de tests à partir d'un modèle abstrait et haut niveau du système sous test (SUT). Le modèle est dit abstrait car il offre bien souvent une vue partielle et discrète des comportements attendus d'un logiciel ou d'un système. Sur la base de modèles abstraits, des cas de test peuvent être dérivées sous la forme de suites de tests.
Fault injectionIn computer science, fault injection is a testing technique for understanding how computing systems behave when stressed in unusual ways. This can be achieved using physical- or software-based means, or using a hybrid approach. Widely studied physical fault injections include the application of high voltages, extreme temperatures and electromagnetic pulses on electronic components, such as computer memory and central processing units.
Analyse statique de programmesEn informatique, la notion d’analyse statique de programmes couvre une variété de méthodes utilisées pour obtenir des informations sur le comportement d'un programme lors de son exécution sans réellement l'exécuter. C'est cette dernière restriction qui distingue l'analyse statique des analyses dynamiques (comme le débugage ou le profiling) qui s'attachent, elles, au suivi de l’exécution du programme. L’analyse statique est utilisée pour repérer des erreurs formelles de programmation ou de conception et pour déterminer la facilité ou la difficulté à maintenir le code.
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.
Méthode agilevignette|Daily stand-up, rituel quotidien des méthodes agiles. En ingénierie logicielle, les mettent en avant la collaboration entre des équipes auto-organisées et pluridisciplinaires et leurs clients. Elles s'appuient sur l'utilisation d'un cadre méthodologique léger mais suffisant centré sur l'humain et la communication. Elles préconisent une planification adaptative, un développement évolutif, une livraison précoce et une amélioration continue, et elles encouragent des réponses flexibles au changement.