Software testing and quality

138 articles

General

ISO/IEC 25010

ISO/IEC 25010 is an international standard in the SQuaRE series defining a product quality model for software and ICT products, with nine characteristics including security, maintainability, and safety.

General

ISO/IEC 9126

ISO/IEC 9126 is an international standard for software product quality, first published in 1991. It defined six quality characteristics, including functionality, reliability, and usability, before being replaced in 2012.

General

ISSTA

ISSTA, the ACM SIGSOFT International Symposium on Software Testing and Analysis, is an annual ACM conference on software testing and program analysis, rated rank A in CORE and CCF A.

General

k6 (software)

k6 is an open-source load testing tool by Load Impact, released in 2017, written in Go and scripted in JavaScript to test APIs, microservices, and websites.

General

Kludge

Kludge, also spelled kluge, is an informal computing and electronics term for an inelegant, patched-together solution that works, popularized by Jackson Granholm's 1962 Datamation article.

General

Legacy code

Legacy code is existing source code a team must keep working while changing it, defined by Michael Feathers in 2004 as simply code without automated tests.

General

Legacy system

A legacy system, also called legacy software, is an existing computer system whose continued use creates burden or risk, typically because its technology is obsolete or unsupported.

General

libFuzzer

libFuzzer is a coverage-guided, in-process, evolutionary fuzzing engine that is part of the LLVM project, used by Google's OSS-Fuzz service to test over 1000 open source projects.

General

List of system quality attributes

The list of system quality attributes covers measurable properties of software that are not functions of the system, such as performance, security, modifiability, availability, and usability, cataloged in the ISO/IEC 25010 standard.

General

List of unit testing frameworks

The list of unit testing frameworks, also known as a comparison of unit testing frameworks, covers libraries like JUnit, pytest, Jest, and GoogleTest that descend from Kent Beck's xUnit architecture.

General

Maintainability index

The maintainability index is a composite software metric combining size, complexity, and documentation measures into a single number, proposed by Oman and Hagemeister in 1992.

General

Mean time to recovery

Mean time to recovery (MTTR) is a reliability metric, also read as mean time to repair or resolve, measuring the average time to restore a system after failure.

General

Memory leak

A memory leak is memory a program has allocated but can no longer release or use, so consumption grows until performance degrades or the program fails.

General

Metamorphic testing

Metamorphic testing is a software testing technique that checks whether outputs of multiple related executions satisfy metamorphic relations, letting testers check programs that lack a test oracle.

General

Model-based testing

Model-based testing (MBT) is a software testing method that derives test cases automatically from a behavioral model of a system and executes them against it.

General

Modified condition/decision coverage

Modified condition/decision coverage (MC/DC) is a software testing criterion, introduced by Chilenski and Miller in 1994, requiring each condition to independently affect its decision's outcome.

General

Mutation testing

Mutation testing is a software testing technique that measures the strength of a test suite by injecting small artificial defects, called mutants, and checking whether the tests kill them.

General

Operational profile (software)

An operational profile is a quantitative characterization of how a software system will be used, listing its operations and their probabilities of occurrence; John D. Musa introduced the concept.

General

Performance testing

Performance testing is a software testing practice that measures an application's responsiveness, reliability, scalability, and resource consumption under a workload of concurrent service requests, using types such as load, stress, spike, and endurance testing.

General

Porting

Porting, also called a software port, is the process of adapting software to run in a different computing environment, such as another operating system, while preserving its behavior.

General

Program slicing

Program slicing is a software engineering technique that extracts the statements affecting a variable's value at a program point, used mainly for debugging and testing.

General

Property-based testing

Property-based testing is a software testing approach in which developers state general properties a program should satisfy, and tools check them against large numbers of generated inputs.

General

Race condition

A race condition, also called a race hazard, is a software defect in which a program's behavior depends on the uncontrolled timing of concurrent events, often causing errors in multithreaded code.

General

Random testing (software testing)

Random testing is a software testing method that samples inputs at random from a program's input domain, records failing inputs, and quantifies reliability statistically when no input fails.

General

Regression testing

Regression testing is testing performed after software or its environment is modified, checking that unchanged parts still work and that no new defects were introduced.

General

Reproducible Builds

Reproducible builds are a software assurance property where identical source code, build environment, and instructions yield bit-for-bit identical binaries, letting independent parties detect compromised build pipelines.

General

Robot Framework

Robot Framework is an open-source, keyword-driven automation framework with a readable plain-text syntax, used for acceptance testing and robotic process automation and implemented in Python and supported by the Robot Framework Foundation.

General

Robustness testing

Robustness testing is a black-box software testing method that checks how a system behaves under invalid inputs and stressful conditions, using a weak oracle that only requires the software not to crash or hang.

General

Rubber duck debugging

Rubber duck debugging, also called rubberducking, is a debugging method in which a programmer explains code aloud, line by line, to an inanimate object like a rubber duck.

General

Runtime monitoring

Runtime monitoring, also known as runtime verification, observes a running program's execution against formally specified properties and produces verdicts, alarms, or recovery actions, with monitors able to steer the system into a safe state.