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.

Search Definitions
  • #

    12 factor app (twelve-factor app)

    Twelve-factor app is a methodology for building distributed applications that run in the cloud and are delivered as a service. The approach was developed by Adam Wiggins, the co-founder of Heroku, a platform-as-a-service which is now part of Salesforce.com.

  • 3-tier application architecture

    A 3-tier application architecture is a modular client-server architecture that consists of a presentation tier, an application tier and a data tier.

  • A

    acceptance testing

    Acceptance testing is a quality assurance (QA) process that determines to what degree an application meets end users' approval.

  • Agile retrospective

    An Agile retrospective is a meeting that's held at the end of an iteration in Agile software development.

  • Agile Software Development

    Agile software development -- also referred to simply as Agile -- is a type of development methodology that anticipates the need for flexibility and applies a level of pragmatism to the delivery of the finished product.

  • alpha testing

    Alpha testing is the initial phase of validating whether a new product will perform as expected.

  • Apache JMeter

    Apache JMeter is an open source, Java-based load testing tool that can analyze the functional behavior of a system and measure the performance of a system under a load test.

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

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

  • authorization

    Authorization is the process of giving someone permission to do or have something.

  • automated test equipment (ATE)

    Automated test equipment (ATE) is computer-controlled equipment that tests electronic devices for functionality and performance.

  • automated testing

    Automated testing is a process that validates if software is functioning appropriately and meeting requirements before it is released into production.

  • B

    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.

  • best practice

    A best practice is a standard or set of guidelines that is known to produce good outcomes if followed.

  • BizDevOps (Business, Development and Operations)

    BizDevOps, also known as DevOps 2.0, is an approach to software development that encourages developers, operations staff and business teams to work together so the organization can develop software more quickly, be more responsive to user demand and ultimately maximize revenue.

  • black box (black box testing)

    Black box testing assesses a system solely from the outside, without the operator or tester knowing what is happening within the system to generate responses to test actions.

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

  • build server

    A build server is a machine on which a software project can be continuously built from changes that are committed to the repository.

  • build tool

    A build tool is a programming utility that automates a software build task, such as ensuring that the proper source code files are compiled and that the proper object files are linked, after changes have been made to a program.

  • burn down chart

    A burn down chart is a visual representation of the amount of work that still needs to be completed before the end of a project.

  • C

    cache thrash

    Cache thrash is 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.

  • CGI scanner

    A CGI (common gateway interface) scanner is a program that searches for known vulnerabilities in Web servers and application programs by testing HTTP requests against known CGI strings... (Continued)

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

  • code review

    Code review is a phase in the computer program development process in which the authors of code, peer reviewers, and perhaps quality assurance reviewers get together to review code, line by line... (Continued)

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

  • common test platform (CTP)

    A common test platform (CTP), also called an open test standard (OTS), is a set of specifications defining test methods for diverse components of computer and electronic systems to be marketed as complete products... (Continued)

  • conformance testing

    Conformance testing, also known as compliance testing, is a methodology used in engineering to ensure that a product, process, computer program or system meets a defined set of standards. These standards are commonly defined by large, independent entities such as the Institute of Electrical and Electronics Engineers (IEEE), the World Wide Web Consortium (W3C) or the European Telecommunications Standards Institute (ETSI)... (Continued)

  • content spoofing

    Content spoofing is a type of exploit used by a malicious hackers to present a faked or modified Web site to the user as if it were legitimate.

  • context-driven testing

    Context-driven testing is a paradigm for developing and debugging computer software that takes into account the ways in which the programs will be used or are expected to be used in the real world... (Continued)

  • continuous integration (CI)

    Continuous integration (CI) is a software engineering practice in which frequent, isolated changes are immediately tested and reported on when they are added to a larger code base.

  • continuous quality

    Continuous quality is a systematic approach to finding and fixing software defects during all phases of the software development cycle.

  • continuous software development

    Continuous software development is a blanket term that covers several aspects of an iterative application development process based on making each change when it is ready, rather than wrapping many changes into large batches.

  • cookie

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

  • countermeasure

    A countermeasure is an action, process, device, or system that can prevent, or mitigate the effects of, threats to a computer, server or network.

  • cowboy coding

    Cowboy coding describes an undisciplined approach to software development. The cowboy approach to coding typically focuses on quick fixes and getting a working product into production as soon as possible.

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

  • cross-site request forgery (XSRF or CSRF)

    Cross-site request forgery (XSRF or CSRF) is a method of attacking a Web site in which an intruder masquerades as a legitimate and trusted user... (Continued)

  • cross-site tracing (XST)

    Cross-site tracing (XST) is a sophisticated form of cross-site scripting (XSS) that can bypass security countermeasures already put in place to protect against XSS... (Continued)

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

  • customer

    In agile software development, a customer is a person with an understanding of both the business needs and operational constraints for a project. (Continued...)

  • D

    daily stand-up meeting

    A daily stand-up meeting is a short organizational meeting that is held early each day. The practice is commonly used in the Scrum development methodology.

  • data center outsourcing (DCO)

    DCO (data center outsourcing) is the practice of outsourcing the day-to-day provisioning and management of computing and storage resources and environments to a third party provider.

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

  • dependency checking

    Dependency checking is a function that is performed to ensure that all pre-requisites for a given run-time image are present.

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

  • device cloud

    A device cloud is a mobile testing environment that enables developers to remotely evaluate the performance of applications on a wide range of smart devices.

  • DevOps Dojo

    DevOps Dojos provide software developers and operations engineers with an immersive learning environment where team members can gain practical work experience without having to worry about introducing errors into the production environment.

  • Disciplined Agile Delivery (DAD)

    Disciplined Agile Delivery (DAD) is a scalable Agile software delivery framework.

  • dynamic analysis

    Dynamic analysis is the testing and evaluation of a program based on execution with selected data... (Continued)

  • dynamic application security testing (DAST)

    A dynamic application security test (DAST) is a program used by developers to analyze a web application (web app), while in runtime, and identify any security vulnerabilities or weaknesses.

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

  • E

    end-to-end testing

    End-to-end testing is a methodology that assesses the working order of a complex 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.

  • Extreme Programming (XP)

    Extreme Programming (XP) is a pragmatic approach to program development that emphasizes business results first and takes an incremental, get-something-started approach to building the product, using continual testing and revision.

  • F

    fault injection testing

    Fault injection is a testing process which deliberately introduces errors to a system to ensure the system can withstand the error and recover.

  • feature-driven development (FDD)

    Feature-driven development (FDD) is an Agile software development methodology that can be used by development teams and managers with the intention of bringing a steady, continuous flow of new features to users at a set time.

  • finite element analysis (FEA)

    Finite element analysis (FEA) is the use of calculations, models and simulations to predict and understand how an object might behave under various physical conditions.

  • functional programming

    Functional programming is a style of programming that emphasizes the evaluation of expressions rather than the execution of commands.

  • functional specification

    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.

  • functional testing

    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)

    GIGO (garbage in, garbage out) is a concise expression of a concept common to computer science and mathematics: the quality of output is determined by the quality of the input... (Continued)

  • gray box testing (gray box)

    Gray box testing, also called gray box analysis, is a strategy for software debugging based on limited knowledge of the internal details of the program. A gray box is a device, program or system whose workings are partially understood.

  • 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

    happy path testing

    Happy-path testing is a type of software testing that uses known input and produces an expected output. Also referred to as golden-path or sunny-day testing, the happy-path approach is tightly scripted. The happy path does not duplicate real-world conditions and verifies only that the required functionality is in place and functions correctly.

  • HCI (human-computer interaction)

    HCI (human-computer interaction) is the study of how people interact with computers and to what extent computers are or are not developed for successful interaction with human beings.

  • histogram

    A histogram is a display of statistical information that uses rectangles to show the frequency of data items in successive numerical intervals of equal size. In the most common form of histogram, the independent variable is plotted along the horizontal axis and the dependent variable is plotted along the vertical axis. The data appears as colored or shaded rectangles of variable area. (Continued....)

  • hybrid application (hybrid app)

    A hybrid application (hybrid app) is one that combines elements of both native and Web applications. Hybrid apps are popular because they allow developers to write code once and still accommodate multiple platforms.

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

  • I

    integer overflow

    Integer overflow is the result of trying to place into computer memory an integer (whole number) that is too large for the integer data type in a given system.

  • integrated development environment (IDE)

    An integrated development environment (IDE) is a software suite that consolidates basic tools required to write and test software.

  • integration testing or integration and testing (I&T)

    Integration testing -- also known as integration and testing (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.

  • ISO/IEC 17799: Code of Practice for Information Security Management

    ISO/IEC 17799: Code of Practice for Information Security Management is a generic set of best practices for the security of information systems. Considered the foremost security specification document in the world, the code of practice includes guidelines for all organizations, no matter what their size or purpose. 17799 was originally published in the United Kingdom as DT Code of Practice, and then later as BS 7799. (Continued...)

  • 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 of a large application into smaller chunks.

  • J

    JAD (Joint Application Development)

    JAD (Joint Application Development) is a methodology that involves the client or end user in the design and development of an application, through a succession of collaborative workshops called JAD sessions.

  • Jenkins

    Jenkins is an open source continuous integration/continuous delivery and deployment (CI/CD) automation software DevOps tool written in the Java programming language.

  • Jira

    Jira is an application lifecycle management (ALM) tool from Atlassian that provides different packages to suit various customer needs.

  • JUnit

    JUnit is an open source framework designed for the purpose of writing and running tests in the Java programming language... (Continued)

  • L

    Language Workbench

    A Language Workbench (LWB) is a development toolset that facilitates the development and editing of domain specific languages (DSLs). 

  • language-oriented programming (LOP)

    Language-oriented programming (LOP) is an approach to software development that focuses on the use of domain specific languages (DSLs) to solve problems within various domains in a system or application.

  • layer

    In computer programming, layering is the organization of programming into separate functional components that interact in some sequential and hierarchical way, with each layer usually having an interface only to the layer above it and the layer below it.

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

  • living documentation

    Living documentation is a dynamic method of system documentation that provides information that is current, accurate and easy to understand.

  • load testing

    Load testing is the process of subjecting a computer, peripheral, server, network or application to a work level approaching the limits of its specifications.

  • low-code and no-code development platforms

    Low-code/no-code development platforms are types of visual software development environments that allow enterprise developers and citizen developers to drag and drop application components, connect them together and create mobile or web apps.

  • M

    mob programming

    Mob programming is a software development technique where software development teams work on the same tasks at the same time.

  • mock object

    In object-oriented programming, a mock object is a simulated object that mimics the behavior of the smallest testable parts of an application in controlled ways.

  • 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 (MDD)

    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 will provide the best return on investment (ROI).

  • N

    native app

    A native application is a software program that is developed for use on a particular platform or device.

SearchCloudComputing
SearchAppArchitecture
SearchITOperations
TheServerSide.com
SearchAWS
Close