Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not necessarily limited to: analyzing the product requirements for completeness and correctness in various contexts like industry perspective, business perspective, feasibility and viability of implementation, usability, performance, security, infrastructure considerations, etc. reviewing the product architecture and the overall design of the product Working with product developers on improvement in coding techniques, design patterns, and tests that can be written as part of code based on various techniques like boundary conditions, etc. executing a program or application with the intent of examining behavior reviewing the deployment infrastructure and associated scripts and automation take part in production activities by using monitoring and observability techniques Software testing can provide objective, independent information about the quality of software and the risk of its failure to users or sponsors. Software testing can determine the correctness of software under the assumption of some specific hypotheses (see the hierarchy of testing difficulty below), but testing cannot identify all the failures within the software. Instead, it furnishes a criticism or comparison that compares the state and behavior of the product against test oracles — principles or mechanisms by which someone might recognize a problem. These oracles may include (but are not limited to) specifications, contracts, comparable products, past versions of the same product, inferences about intended or expected purpose, user or customer expectations, relevant standards, applicable laws, or other criteria. The primary purpose of testing is to detect software failures so that defects may be discovered and corrected.

About this result
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.
Related courses (32)
CS-214: Software construction
Learn how to design and implement reliable, maintainable, and efficient software using a mix of programming skills (declarative style, higher-order functions, inductive types, parallelism) and fundam
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
CS-510: Topics in software security
Memory corruption and type safety flaws dominate the threat landscape. We will approach current research from three dimensions: sanitization (finding flaws through runtime monitors); fuzzing (testing
Show more
Related lectures (218)
Hydraulic Transients of Turbines: Hydroacoustic Modeling
Explores hydraulic turbine modeling, stability, and historical development, emphasizing the selection criteria for Francis turbines.
Testing Actor Systems
Explores testing actor systems, including verifying observable effects and interacting with parent actors.
GoogleTest, Pytest, Git Submodule/Subtree, Python os.path
Covers Google Test, Pytest, Git submodule/subtree, and Python file manipulation.
Show more
Related publications (523)

To Infinity, and Beyond (Coverage)

Ahmad Hazimeh

The pursuit of software security and reliability hinges on the identification and elimination of software vulnerabilities, a challenge compounded by the vast and evolving complexity of modern systems. Fuzzing has emerged as an indispensable technique for b ...
EPFL2024

Impact of microwave beam scattering by density fluctuations on the electron-cyclotron power deposition profile in tokamaks

Stefano Coda, Joan Decker, Oleg Krutkin, Umesh Kumar, Jean Arthur Cazabonne

Electron-cyclotron waves are a tool commonly used in tokamaks, in particular to drive current. Their ability to drive current in a very localized manner renders them an optimal tool for MHD mode mitigation. However, such applications require high accuracy ...
Bristol2024

Dangerous acquaintances: the interplay between type IV pili and the type VI secretion system during Vibrio cholerae's environmental lifestyle

Simon Bernhard Otto

Cholera, caused by the bacterium Vibrio cholerae, has affected humanity throughout history and still impacts millions of people every year. Apart from being a human pathogen, V. cholerae is a common member of the aquatic environment. Due to this natural re ...
EPFL2024
Show more
Related concepts (64)
Unit testing
In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures—are tested to determine whether they are fit for use. It is a standard step in development and implementation approaches such as Agile. Before unit testing, capture and replay testing tools were the norm. In 1997, Kent Beck and Erich Gamma developed and released JUnit, a unit test framework that became popular with Java developers.
Software documentation
Software documentation is written text or illustration that accompanies computer software or is embedded in the source code. The documentation either explains how the software operates or how to use it, and may mean different things to people in different roles. Documentation is an important part of software engineering. Types of documentation include: Requirements – Statements that identify attributes, capabilities, characteristics, or qualities of a system. This is the foundation for what will be or has been implemented.
Acceptance testing
In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met. It may involve chemical tests, physical tests, or performance tests. In systems engineering, it may involve black-box testing performed on a system (for example: a piece of software, lots of manufactured mechanical parts, or batches of chemical products) prior to its delivery.
Show more

Graph Chatbot

Chat with Graph Search

Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.

DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.