Software Quality Definitions
This glossary explains the meaning of key words and phrases that information technology (IT) and business professionals use when discussing software quality and related products. You can find additional definitions by visiting WhatIs.com or using the search box below.
-
#
12-factor app
Twelve-factor app is a methodology for building distributed applications that run in the cloud and are delivered as a service.
-
What is a 3-tier application architecture?
A three-tier application architecture is a modular client-server architecture that consists of a presentation tier, an application tier and a data tier.
-
A
Agile retrospective
An Agile retrospective is a meeting that's held at the end of an iteration in Agile software development.
-
application firewall
An application firewall is an enhanced firewall that limits access by applications to the operating system (OS) of a computer... (Continued)
-
application lifecycle management (ALM)
Application lifecycle management (ALM) is an integrated system of people, tools and processes that supervise a software application from its initial planning and development, through testing and maintenance, and into decommissioning and retirement.
-
application platform
An application platform is a framework of services that applications rely on for standard operations.
-
application security
Application security, or appsec, is the practice of using security software, hardware, techniques, best practices and procedures to protect computer applications from external security threats.
-
artifact (software development)
An artifact is a byproduct of software development that helps describe the architecture, design and function of software.
-
automated testing
Automated testing is a software testing technique that automates the process of validating the functionality of software and ensures it meets requirements before being released into production.
-
What is acceptance testing?
Acceptance testing is a quality assurance (QA) process that determines to what degree an application meets end users' approval.
-
What is Agile software development?
Agile is a type of software development methodology that anticipates the need for flexibility and applies a level of pragmatism to the delivery of the finished product.
-
What is alpha testing?
Alpha testing is the initial phase of validating whether a new product will perform as expected.
-
What is an application?
An application, also referred to as an application program or application software, is a computer software package that performs a specific function directly for an end user or, in some cases, for another application.
-
What is Apache JMeter?
Apache JMeter is open source software for load testing applications and measuring their performance.
-
B
best practice
A best practice is a standard or set of guidelines that is known to produce good outcomes if followed.
-
bug
In computer technology, a bug is a coding error in a computer program.
-
build
In a programming context, a build is a version of a program that, as a rule, is a pre-release version and is identified by a build number rather than by a release number.
-
What is a build server?
A build server, also called a continuous integration server (CI server), is a centralized, stable and reliable environment for building distributed development projects.
-
What is behavior-driven development (BDD)?
Behavior-driven development (BDD) is an Agile software development methodology in which an application is documented and designed around the behavior a user expects to experience when interacting with it.
-
What is black box testing?
Black box testing assesses a system solely from the outside, without the operator or tester knowing what's happening within the system to generate responses to test actions.
-
C
cache thrash
Cache thrash is an issue caused by an ongoing computer activity that fails to progress due to excessive use of resources or conflicts in the caching system.
-
Capability Maturity Model (CMM)
The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process.
-
citizen development
Citizen development is a business process that encourages non-IT-trained employees to become software developers, using IT-sanctioned low-code/no-code (LCNC) platforms to create business applications.
-
collaboration diagram
A collaboration diagram, also known as a communication diagram, is an illustration of the relationships and interactions among software objects in the Unified Modeling Language (UML).
-
continuous quality
Continuous quality is a systematic approach to finding and fixing software defects during all phases of the software development cycle.
-
cookie
A cookie is information that a website puts on a user's computer.
-
cross-browser testing
Cross-browser testing, also called browser testing, is a quality assurance (QA) process that checks whether a web-based application, site or page functions as intended for end users across multiple browsers and devices.
-
cruft
Cruft is the elements of a program, system or product that are either useless, poorly designed or both. In computing, cruft describes areas of redundant, improper or simply badly written code, as well as old or inferior hardware and electronics. Cruft may also be used to describe a group of hackers, like a pod of whales, exultation of larks or murder of crows. (Continued...)
-
What is continuous integration (CI)?
Continuous integration (CI) is a software development practice in which frequent and incremental changes are routinely added (integrated) to the complete codebase immediately after the changes and additions are tested and validated.
-
D
daily stand-up meeting
A daily stand-up meeting is a short organizational meeting that is held each day.
-
debugging
Debugging, in computer programming and engineering, is a multistep process that involves identifying a problem, isolating the source of the problem and then either correcting the problem or determining a way to work around it.
-
development environment
In software, web and mobile application development, the development environment is a workspace with a set of processes and programming tools used to develop the source code for an application or software product.
-
DevOps Dojo
A DevOps Dojo is a place where DevOps team members go for hands-on training.
-
Disciplined Agile Delivery (DAD)
Disciplined Agile Delivery (DAD) is a scalable Agile software delivery framework. It takes a people-first, learning-oriented approach to software development and delivery.
-
software documentation
In the software development process, software documentation is the information that describes the product to the people who develop, deploy and use it.
-
What is dynamic application security testing (DAST)?
Dynamic application security testing (DAST) is the process of analyzing a web application in runtime to identify security vulnerabilities or weaknesses.
-
E
end-to-end testing
End-to-end (E2E) testing is a software testing methodology that verifies the working order of a software product in a start-to-finish process.
-
exception handling
Exception handling is the process of responding to unwanted or unexpected events when a computer program runs.
-
F
fault injection testing
Fault injection testing is a software testing method that deliberately introduces errors to a system to ensure it can withstand and recover from error conditions.
-
feature-driven development (FDD)
Feature-driven development (FDD) is an Agile software development framework that organizes work around product features.
-
functional programming
Functional programming is a programming paradigm that uses functions to construct programs and control how those programs operate.
-
What is a functional specification document?
A functional specification is a formal document used to describe a product's intended capabilities, appearance and interactions with users in detail for software developers.
-
What is finite element analysis (FEA)?
Finite element analysis (FEA) is the process of simulating the behavior of an object or assemblage of objects when it's exposed to specified physical conditions, which can be stable or varying.
-
What is functional testing and how does it work?
Functional testing is a process used to evaluate software during development to ensure that it meets the application's intended requirements and specifications.
-
G
Gantt chart
A Gantt chart is a horizontal bar chart developed as a production control tool in 1917 by Henry L. Gantt, an American engineer and social scientist.
-
garbage in, garbage out (GIGO)
Garbage in, garbage out, or GIGO, refers to the idea that in any system, the quality of output is determined by the quality of the input.
-
green software
Green software, also known as sustainable software, is software that is designed, developed and implemented to limit energy consumption and have minimal environmental impact.
-
H
histogram
A histogram is a type of chart that shows the frequency distribution of data points across a continuous range of numerical values.
-
hybrid application (hybrid app)
A hybrid app is a software application that combines elements of both native apps and web applications.
-
Hypertext Transfer Protocol Secure (HTTPS)
Hypertext Transfer Protocol Secure (HTTPS) is a protocol that secures communication and data transfer between a user's web browser and a website.
-
What is happy path testing?
Happy path testing is a type of software testing that uses known input and produces an expected output.
-
I
impact mapping
Impact mapping is a visual planning technique that aligns project processes with business objectives.
-
integrated development environment (IDE)
An integrated development environment (IDE) is a software suite that consolidates basic tools required to write and test software.
-
iteration
In agile software development, an iteration is a single development cycle, usually measured as one week or two weeks. (Continued...)
-
iterative
In the world of IT and computer programming, the adjective iterative refers to a process where the design of a product or application is improved by repeated review and testing.
-
iterative development
Iterative development is a way of breaking down the software development lifecycle (SDLC) of a large application into smaller chunks.
-
What is integration testing (I&T)?
Integration testing -- also known as integration and testing or I&T -- is a type of software testing in which the different units, modules or components of a software application are tested as a combined entity.
-
J
joint application development (JAD)
Joint application development, frequently shortened to JAD, is a methodology that involves the client or end user in the design and development of a software application through a succession of collaborative workshops called JAD sessions.
-
What is Jenkins and how does it work?
Jenkins is an open source continuous integration/continuous delivery and deployment (CI/CD) automation software DevOps tool written in the Java programming language.
-
What is Jira?
Jira is an application lifecycle management (ALM) and Agile project management tool from Atlassian.
-
L
LDAP injection
LDAP (Lightweight Directory Access Protocol) injection is a type of security exploit that is used to compromise the authentication process used by some websites.
-
Lean software development
Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software.
-
low-code and no-code development platforms
Low-code/no-code development platforms are software development tools and environments that allow enterprise developers and citizen developers to create new applications using drag-and-drop components, linking them together and creating mobile or web apps.
-
M
mob programming
Mob programming is a collaborative approach to software development in which a group of developers work together in real time on one task.
-
model-based testing
Model-based testing (MBT) requires a test team to create a second, lightweight implementation of a software build- typically only the business logic - called the model.
-
model-driven development
Model-driven development (MDD) is a format to write and implement software quickly, effectively and at minimum cost.
-
MoSCoW method
The MoSCoW method is a four-step approach to prioritizing which project requirements provide the best return on investment (ROI).
-
N
native app
A native application is a software program developers build for use on a particular platform or device.
-
NIST (National Institute of Standards and Technology)
NIST (National Institute of Standards and Technology) is a nonregulatory government agency located in Gaithersburg, Md.
-
What is no-code? Everything you need to know
No-code is a software development approach that requires few, if any, programming skills to quickly build an application, website or module that links into an existing system.
-
O
Open Web Application Security Project (OWASP)
The Open Web Application Security Project (OWASP) is a nonprofit foundation that provides guidance on how to develop, purchase and maintain trustworthy and secure software applications.
-
What is offshore software testing?
Offshore software testing is a software development model where an organization outsources the software testing process to a service partner team located in a different country and time zone.
-
P
pair programming
Pair programming is an Agile software development technique originating from Extreme programming (XP) in which two developers team together and work on one computer.
-
performance testing
Performance testing is a testing measure that evaluates the speed, responsiveness and stability of a computer, network, software program or device under a workload.
-
pigs and chickens
Pigs and chickens is an analogy used in the Scrum software development model to define the type of role an attendee can play at a daily scrum meeting.
-
pipeline as code
Pipeline as code is an approach to a continuous integration (CI) pipeline where the pipeline is expressed entirely in computer code.
-
polyglot programming
Polyglot programming is the practice of writing code in multiple languages to capture additional functionality and efficiency not available in a single language.
-
program
In computing, a program is a specific set of ordered operations for a computer to perform.
-
Project Management Professional (PMP)
Project Management Professional (PMP) certification is a qualification program overseen by the Project Management Institute (PMI)... (Continued)
-
What is a PERT chart? And how to use it, with examples
A PERT chart, sometimes called a PERT diagram, is a project management tool used to schedule, organize and coordinate tasks in a project.
-
What is a product owner?
A product owner is a role on a Scrum team that is responsible for the project's outcome.
-
Q
What is a quality gate?
A quality gate is a milestone in an IT project that requires that predefined criteria be met before the project can proceed to the next phase.
-
What is quality assurance (QA)?
Quality assurance (QA) is any systematic process of determining whether a product or service meets specified requirements.
-
R
rapid application development (RAD)
Rapid application development (RAD) is a model based on the concept that higher-quality products can be developed faster through more expedient processes, such as early prototyping, reusing software components and less formality in team communications.
-
rapid mobile app development (RMAD)
Rapid mobile application development (RMAD) uses low-code/no-code programming tools to expedite the application creation process for mobile platforms.
-
regression testing
Regression testing is a type of software test that assesses if changes to an application, or other related software components, introduce defects.
-
release
A release is the distribution of the final version or the newest version of a software application.
-
release plan
In agile software development, a release plan is an evolving flowchart that describes which features will be delivered in upcoming releases. (Continued...)
-
requirements analysis (requirements engineering)
Requirements analysis (requirements engineering) is the process of determining user expectations for a new or modified product.
-
reverse-engineering
Reverse-engineering is the act of dismantling an object to see how it works.
-
runtime
Runtime is a piece of code that implements portions of a programming language's execution model.
-
S
Scrum
Scrum is a framework for project management that emphasizes teamwork, accountability and iterative progress toward a well-defined goal.
-
sequence diagram
A sequence diagram is one of the multiple types of system interaction diagrams used within Unified Modeling Language (UML) to visually represent interactions between the objects that live within a system.
-
session ID
A session ID, also called a session token, is a unique identifier that a web server assigns to a user for the duration of the current session.
-
smoke testing
Smoke testing, also called build verification testing or confidence testing, is a software testing method that is used to determine if a new software build is ready for the next testing phase.
-
soak testing
Soak testing is a type of performance testing that gauges how an application handles a growing number of users or increasingly taxing tasks over an extended period of time.
-
Software Process Improvement and Capability Determination (SPICE)
Software Process Improvement and Capability Determination (SPICE) is an international framework to assess software development processes.
-
software requirements specification (SRS)
A software requirements specification (SRS) is a comprehensive description of the intended purpose and environment for software under development. The SRS fully describes what the software will do and how it will be expected to perform... (Continued)
-
software toolchain
A software toolchain is a set of software development tools used simultaneously to complete complex software development tasks or to deliver a software product.
-
source code analysis
Source code analysis is the automated testing of source code for the purpose of debugging a computer program or application before it is distributed or sold.