En 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. L'environnement de test SUnit pour le langage Smalltalk est créé en par Kent Beck. En 1997, Kent Beck rencontre Erich Gamma avec lequel il crée JUnit qui, par sa popularité, entraînera la création de nombreux frameworks de tests unitaires, cet ensemble se nomme xUnit. A la même époque, ATTOL Unit test est développé, puis utilisé par Sextant Avionique en 1998 On écrit un test pour confronter une réalisation à sa spécification. Le test définit un critère d'arrêt (état ou sorties à l'issue de l'exécution) et permet de statuer sur le succès ou sur l'échec d'une vérification. Grâce à la spécification, on est en mesure de faire correspondre un état d'entrée donné à un résultat ou à une sortie. Le test permet de vérifier que la relation d'entrée / sortie donnée par la spécification est bel et bien réalisée. La méthode XP préconise d'écrire les tests en même temps, ou même avant la fonction à tester (Test Driven Development). Ceci permet de définir précisément l'interface du module à développer. Les tests sont exécutés durant tout le développement, permettant de visualiser si le code fraîchement écrit correspond au besoin. Lors d'une modification d'un programme, les tests unitaires signalent les éventuelles régressions. En effet, certains tests peuvent échouer à la suite d'une modification, il faut donc soit réécrire le test pour le faire correspondre aux nouvelles attentes, soit corriger l'erreur se situant dans le code.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (32)
EE-530: Test of VLSI systems
Test of VLSI Systems covers theoretical knowledge related to the major algorithms used in VLSI test, and design for test techniques. Basic knowledge related to computer-aided design for test technique
ME-443: Hydroacoustic for hydropower plants
Introduction to pressure wave propagation phenomena in hydraulic circuits, water hammer calculations, transient behaviour of hydroelectric plants, 1D numerical simulation of the dynamic behaviour of F
BIO-210: Applied software engineering for life sciences
We learn and apply software engineering principles to program projects in Python. Projects cover problems in life sciences, and will be developed over the course of the semester.
Afficher plus
Publications associées (32)

Performance Comparison of Cables With Partial Transposition

Pierluigi Bruzzone, Kamil Sedlák, Federica Demattè, Chiara Frittitta

The need of full transposition of the current carrying elements (strands) in large cables is frequently retained as top design criterion for conductors operating in pulsed mode. However, when the transposition error, i.e., the inductance difference among t ...
Piscataway2024

High-Resolution Modeling Without Computation Slowdown for PETALE in CROCUS

Andreas Pautz, Vincent Pierre Lamirand, Thomas Jean-François Ligonnet, Axel Guy Marie Laureau

In a collaboration between Ecole Polytechnique Fédérale de Lausanne (EPFL) and CEA, in the fall of 2020, the experimental Programme d’Étude en Transmission de l’Acier Lourd et ses Eléments (PETALE) was successfully carried out in the CROCUS reactor of EPFL ...
2024

Seismic Testing of Adjacent Interacting Masonry Structures – Analysis of a Blind Prediction

Katrin Beyer, Igor Tomic, Andrea Penna

Masonry aggregates, which emerged as layouts of cities and villages became denser, make up historical centres all over the world. In these aggregates, neighbouring structures may share structural walls that are joined at the interfaces by mortar or interlo ...
Springer2024
Afficher plus
Concepts associés (26)
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.
Test driven development
Test-Driven Development (TDD), ou développement piloté par les tests en français, est une méthode de développement de logiciel qui consiste à concevoir un logiciel par des itérations successives très courtes (ou petits pas), telles que chaque itération est accomplie en formulant un sous-problème à résoudre sous forme d'un test avant d'écrire le code source correspondant, et où le code est continuellement remanié dans une volonté de simplification. À l'origine, il s'agissait simplement d'écrire les tests avant de coder, et cette méthode s'appelait le Test-First Design.
Test de régression
Un test de régression, ou test de non-régression, est un test ayant pour but de détecter les régressions introduites dans un logiciel après un changement effectué dans celui-ci. Une régression est un défaut qui se produit après une modification d'un logiciel lorsque des fonctionnalités existantes ne sont plus réalisées aussi bien qu'avant.
Afficher plus

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.