Browse Definitions:


Get information on software quality management, software testing and quality assurance (QA), application threats and vulnerabilities, software maintenance and bug tracking, and how to build quality and security into the software development life cycle (SDLC). also provides in-depth coverage on how to ensure quality using different development models and methodologies, such as Agile development.

View the complete archive of Software Quality Management news, research and expert advice.

Go to:  SearchSoftwareQuality

Recently on  SearchSoftwareQuality

What software testing skills are important for a beginner?

Software testers need more than technical skills. Expert Gerie Owen explains why this career choice requires an inquisitive mind and an ability to work well with others.

More Highlights
  • lean software development

    Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software.

  • Agile Software Development

    In software application development, Agile is a methodology that anticipates the need for flexibility and applies a level of pragmatism into the delivery of the finished product.

  • test-driven development (TDD)

    Test-driven development (TDD), also called test-driven design, is a method of implementing software programming that interlaces unit testing, programming and refactoring on source code.

Browse Software Quality Topics


Application lifecycle management (ALM) refers to the processes, models and tools that manage an application from idea conception through end-of-life. ALM includes the management of the software development lifecycle (SDLC) including requirements management, design, code, test, release management and software maintenance, but goes beyond SDLC and includes management of governance and operations processes. ALM tools facilitate adherence to software development processes and help to provide an integrated approach to application development.

Recent Definitions

  • Docker

    Docker is an open source software platform to create, deploy and manage virtualized application containers on a common operating system (OS), with an ecosystem of allied tools.

  • legacy application

    A legacy application (legacy app) is a software program that is outdated or obsolete.

  • site reliability engineering (SRE)

    Site reliability engineering (SRE) is the application of scripting and automation to IT operations tasks such as maintenance and support. The goal of SRE is to swiftly fix bugs and remove manual work in rote tasks.


More ALM Topics

Back to Top

Models and Methodologies

Software development models and methodologies describe the processes that are followed in a software development lifecycle (SDLC.) Traditional approaches include the phased waterfall methodology that includes requirements, design, implementation, verification and maintenance phases. The traditional approaches typically require that each phase is complete before the next one starts. Agile methodologies such as XP and Scrum work in shorter iterations and promote a collaborative approach where project teams include members representing business, development and test work closely together throughout the entire lifecycle.

Recent Definitions

  • stateful app

    A stateful app is a program that saves client data from the activities of one session for use in the next session. This data is called the application’s state.

  • modeling and simulation (M&S)

    Modeling and simulation (M&S) is the use of a physical or logical representation of a given system to generate data and help determine decisions or make predictions about the system.

  • lean software development

    Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software.


More Models and Methodologies Topics

Back to Top

Project Management

Software performance management is a critical component of application lifecycle management. Software applications need to be tested to see if they'll be able to withstand the anticipated load and be scalable for future growth. By including software performance management as a component of the application's lifecycle, the team can perform the testing necessary to determine the application's thresholds and proactively code for optimal performance. With software performance management included in the overall plan, performance can be predicted and eliminate any unpleasant surprises due to slow performance.

Recent Definitions

  • software audit

    A software audit is an internal or external review of a software program to check its quality, progress or adherence to plans, standards and regulations.

  • falsifiability

    Falsifiability is the capacity for some proposition, statement, theory or hypothesis to be proven wrong. That capacity is an essential component of the scientific method and hypothesis testing.

  • hypothesis

    A hypothesis (plural: hypotheses) is a statement that may be tested and proven to be either true or false. The hypothesis maintains the statement is true. however falsifiability -- the ability to be disproven -- is also essential to testing hypotheses, in accordance with the scientific method.


More Project Management Topics

Back to Top


Software requirements engineering is a crucial element in software engineering. Requirements analysis includes three types of activity: eliciting requirements, analyzing requirements and recording requirements. Eliciting requirements is the task of communicating with customers, users and stakeholders to determine which functions and features of an application. In analyzing the requirements, customers, users, and stakeholders help clarify and prioritize those features and functions. Documenting requirements can be done in different ways or with different tools. Traditional methodologies use a requirements specification. Agile methodologies document requirements with use cases or user stories.

Recent Definitions

  • dependency hell

    Dependency hell occurs when a software application cannot access the additional programming it depends upon to function.

  • design thinking

    Design thinking is an iterative approach to problem solving that intentionally seeks out people with different perspectives, knowledge, skills and experience and has them work together to create a practical solution for a real-world problem. The five steps in design thinking are empathize, define, ideate, prototype and test.

  • user story

    A user story is a tool used in Agile development to capture a description of a software feature from an end-user perspective.


More Requirements Topics

Back to Top

Security Testing and QA

Software security testing and quality assurance is used to provide protection for data managed and controlled by software applications. Security testing needs to be done to prevent harm that could result from the loss, inaccuracy, alteration, unavailability or misuse of data. Information is categorized by severity of impact and security requirements such as those that address access control, data management and access, audit trails and usage records must be validated. Security defects are often a result of non-conformance or an error or omission in the software requirements.

Recent Definitions

  • unit testing

    Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation. Unit testing is often automated but it can also be done manually.

  • denial-of-service attack

    Denial-of-service attacks disrupt legitimate access to organizational resources, often by overwhelming a network or resource with malicious traffic.

  • obfuscation (obfu)

    Obfuscation, in general, describes a practice that is used to intentionally make something more difficult to understand. In a programming context, it means to make code harder to understand or read.


More Security Testing and QA Topics

Back to Top

Software Testing

Software testing is used to determine whether a software application is producing the expected results. Depending on the methodology used and the type of testing that's being done, software testing can happen at any time in the software development process. There are a variety of types of tests that are performed at different stages of the software development lifecycle such as unit tests, integration tests, systems tests and acceptance tests. Each of these can be further divided into types of testing such as functional, performance, regression, or usability tests, just to name a few. There are many tools that are used in software testing both to help find defects as well as to help track defects so that the end result is a high-quality product.

Recent Definitions

  • consumer panel

    A consumer panel is a group of individuals selected by a business or organization to provide input and opinion on products and services for research on consumer behavior. Panel members are chosen to be representative of the general population or a target group.

  • test marketing

    Test marketing is a marketing method that aims to explore consumer response to a product or marketing campaign by making it available on a limited basis before a wider release.

  • test-driven development (TDD)

    Test-driven development (TDD), also called test-driven design, is a method of implementing software programming that interlaces unit testing, programming and refactoring on source code.


More Software Testing Topics

Back to Top



  • internal audit (IA)

    An internal audit (IA) is an organizational initiative to monitor and analyze its own business operations in order to determine ...

  • pure risk (absolute risk)

    Pure risk, also called absolute risk, is a category of threat that is beyond human control and has only one possible outcome if ...

  • risk assessment

    Risk assessment is the identification of hazards that could negatively impact an organization's ability to conduct business.


  • computer exploit

    A computer exploit, or exploit, is an attack on a computer system, especially one that takes advantage of a particular ...

  • cyberwarfare

    Cyberwarfare is computer- or network-based conflict involving politically motivated attacks by a nation-state on another ...

  • insider threat

    Insider threat is a generic term for a threat to an organization's security or data that comes from within.



  • business continuity and disaster recovery (BCDR)

    Business continuity and disaster recovery (BCDR) are closely related practices that describe an organization's preparation for ...

  • business continuity plan (BCP)

    A business continuity plan (BCP) is a document that consists of the critical information an organization needs to continue ...

  • call tree

    A call tree -- sometimes referred to as a phone tree -- is a telecommunications chain for notifying specific individuals of an ...


  • OpenStack Block Storage (Cinder)

    OpenStack Block Storage (Cinder) is open source software designed to create and manage a service that provides persistent data ...

  • SATA Express (SATAe)

    SATA Express (SATAe or Serial ATA Express) is a bus interface to connect storage devices to a computer motherboard, supporting ...

  • DIMM (dual in-line memory module)

    A DIMM (dual in-line memory module) is the standard memory card used in servers and PCs.


  • hybrid flash array

    A hybrid flash array is a solid-state storage system that contains a mix of flash memory drives and hard disk drives.

  • 3D XPoint

    3D XPoint is memory storage technology jointly developed by Intel and Micron Technology Inc.

  • RRAM or ReRAM (resistive RAM)

    RRAM or ReRAM (resistive random access memory) is a form of nonvolatile storage that operates by changing the resistance of a ...


  • Google Cloud Storage

    Google Cloud Storage is an enterprise public cloud storage platform that can house large unstructured data sets.

  • RESTful API

    A RESTful application program interface breaks down a transaction to create a series of small modules, each of which addresses an...

  • cloud storage infrastructure

    Cloud storage infrastructure is the hardware and software framework that supports the computing requirements of a private or ...