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 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.

  • 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).

  • cookie

    A cookie is information that a website puts on a user's computer.

  • 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.

  • 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

    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.

  • 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.

  • program

    In computing, a program is a specific set of ordered operations for a computer to perform.

  • 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.

  • 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 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.

  • spike testing

    Spike testing is a type of performance testing in which an application receives a sudden and extreme increase or decrease in load.

  • spiral model

    The spiral model is a systems development lifecycle (SDLC) method used for risk management that combines the iterative development process model with elements of the waterfall model.

  • SQL injection (SQLi)

    A SQL injection (SQLi) is a technique that attackers use to gain unauthorized access to a web application database by adding a string of malicious code to a database query.

  • SSADM (Structured Systems Analysis and Design Method)

    SSADM (Structured Systems Analysis and Design Method) is a widely used computer application development method in the United Kingdom, where its use is often specified as a requirement for government computing projects.

  • staging environment

    A staging environment (stage) is a nearly exact replica of a production environment for software testing.

  • static testing

    Static testing is a software testing method that examines a program -- along with any associated documents -- but does not require the program to be executed.

  • structured programming (modular programming)

    Structured programming, or modular programming, is a programming paradigm that facilitates the creation of programs with readable code and reusable components.

  • synthetic monitoring

    Synthetic monitoring is the use of software to simulate user interactions with a system.

  • What is a software requirements specification (SRS)?

    A software requirements specification (SRS) is a comprehensive description of the intended purpose and environment for software under development.

  • What is a sprint (software development)?

    In Agile product development and software project management, a sprint is a set period of time during which specific work has to be completed and made ready for review.

  • What is shift-right testing?

    Shift-right testing is a method of continuously testing software while it is in a post-production environment.

  • What is software resilience testing?

    Software resilience testing is a method of software testing that focuses on ensuring that applications perform well in real-life or chaotic conditions.