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.
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.
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.
Test de régressionUn 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.
Tests systèmeLes tests système de logiciel ou de matériel réfèrent à un processus de test d'un système intégré afin d'évaluer sa conformité aux exigences spécifiées. Les tests système appartiennent à la classe des tests de type boîte noire, et en tant que tels, ne devraient exiger aucune connaissance de la conception interne du code ou de la logique. En règle générale, les tests système prennent comme entrée tous les composants logiciels « intégrés » (ayant réussi les tests d'intégration) mais aussi le système logiciel lui-même intégré à n'importe quel système matériel compatible.
Test utilisateurUn test utilisateur, ou test d’utilisabilité, est une méthode permettant d'évaluer un produit en le faisant tester par des utilisateurs. Le plus souvent, il s'agit de produits du domaine informatique (par exemple : un logiciel ou un site web) dans le cadre de l'intervention ergonomique. Elle est considérée comme une démarche indispensable dans la conception de produit, car la plus efficace pour évaluer l'ergonomie d'une application ou d'un site web.
Test de validationUn test de validation est un type de test informatique qui permet de vérifier si toutes les exigences client, décrites dans le document de spécification du logiciel, sont respectées. Les tests de validation se décomposent généralement en plusieurs phases : Validation fonctionnelle : les tests fonctionnels assurent que les différents modules ou composants implémentent correctement les exigences client. Ces tests peuvent être de type valide, invalide, inopportuns, etc.
API testingAPI testing is a type of software testing that involves testing application programming interfaces (APIs) directly and as part of integration testing to determine if they meet expectations for functionality, reliability, performance, and security. Since APIs lack a GUI, API testing is performed at the message layer. API testing is now considered critical for automating testing because APIs now serve as the primary interface to application logic and because GUI tests are difficult to maintain with the short release cycles and frequent changes commonly used with Agile software development and DevOps.
Data-driven testingData-driven testing (DDT), also known as table-driven testing or parameterized testing, is a software testing methodology that is used in the testing of computer software to describe testing done using a table of conditions directly as test inputs and verifiable outputs as well as the process where test environment settings and control are not hard-coded. In the simplest form the tester supplies the inputs from a row in the table and expects the outputs which occur in the same row.
Assurance qualité logicielleL’assurance qualité logicielle (AQL) est un ensemble d'activités planifiées et systématiques de toutes les actions nécessaires pour fournir une assurance suffisante de la qualité logicielle d'un nouveau logiciel ou d'une nouvelle version d'un logiciel est conforme aux exigences et aux attentes établies. Les pratiques d'AQL varient selon le modèle d'affaire et l'industrie où le logiciel est utilisé. La norme IEEE 730 décrit le contenu nécessaire dans un plan d'AQL pour un logiciel.
Système de management de la qualitéUn système de management de la qualité (SMQ) ou système de gestion de la qualité (SGQ) (en anglais quality management system) est l'ensemble des activités par lesquelles l’organisme définit, met en œuvre et revoit sa politique et ses objectifs qualité conformément à sa stratégie. Le SMQ d'un organisme est constitué de processus corrélés et interactifs utilisant des ressources pour atteindre les résultats visés et fournir de la valeur (produit, service, etc.).
Qualité logicielleEn informatique et en particulier en génie logiciel, la qualité logicielle est une appréciation globale d'un logiciel, basée sur de nombreux indicateurs. La complétude des fonctionnalités, la correction et précision des résultats, la fiabilité, la tolérance de pannes, la facilité et la flexibilité de son utilisation, la simplicité, l'extensibilité, la compatibilité et la portabilité, la facilité de correction et de transformation, la performance, la cohérence et l'intégrité des informations qu'il contient sont tous des facteurs de qualité.
Management de la qualitévignette|La roue de Deming illustre le processus d'amélioration continue, l'un des principes fondamentaux du management de la qualité. Le management de la qualité, ou gestion de la qualité, est une discipline du management regroupant l'ensemble des concepts et méthodes visant à satisfaire les clients d'un organisme (en général les entreprises, associations, organismes publics) et à fournir des produits et services correspondant à leurs attentes.
Assurance qualitéOn désigne par assurance qualité un moyen d'obtenir confiance dans l'assurance de la qualité c'est-à-dire dans l'aptitude de la société ou de l'organisation à satisfaire le niveau de qualité désiré. Le terme « assurance qualité » qui élide les articles naturellement présents dans la langue française est très commun du fait que le concept a été importé (anglicisme) de la langue anglaise où l'on parle de Quality assurance. Le terme assurance a donc ici la valeur de confiance que lui donne la langue anglaise.
Software requirements specificationA software requirements specification (SRS) is a description of a software system to be developed. It is modeled after the business requirements specification (CONOPS). The software requirements specification lays out functional and non-functional requirements, and it may include a set of use cases that describe user interactions that the software must provide to the user for perfect interaction.
Quality engineeringQuality engineering is the discipline of engineering concerned with the principles and practice of product and service quality assurance and control. In software development, it is the management, development, operation and maintenance of IT systems and enterprise architectures with a high quality standard. Quality engineering is the discipline of engineering that creates and implements strategies for quality assurance in product development and production as well as software development.
Business requirementsBusiness requirements, also known as stakeholder requirements specifications (StRS), describe the characteristics of a proposed system from the viewpoint of the system's end user like a CONOPS. Products, systems, software, and processes are ways of how to deliver, satisfy, or meet business requirements. Consequently, business requirements are often discussed in the context of developing or procuring software or other systems. Three main reasons for such discussions: A common practice is to refer to objectives, or expected benefits, as 'business requirements.
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.
Censure d'InternetLa censure d'Internet, appelée aussi cybercensure, désigne les limitations de l'information disponible par l'intermédiaire de ce réseau, pratiquée en général au niveau des États, parfois à l'encontre des droits de l'homme. En effet, bien que la Déclaration universelle des droits de l'homme fasse de l'accès à l'information un droit indéniable (article 19), certains États ou entreprises semblent, comme pour d'autres médias, vouloir réguler Internet.
Software development processIn software engineering, a software development process is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.