ISTQB CT-AT key terms
ISTQB CT-AT · Get comfortable with the vocabulary.
- Test-Driven Development (TDD)
- Related: Acceptance Test-Driven Development (ATDD), Behavior-Driven Development (BDD), Refactoring
A development practice where tests are written before production code. Each cycle starts with a failing test, then code is written to pass it, followed by refactoring. It drives design and provides fast feedback.
- Acceptance Test-Driven Development (ATDD)
- Related: Test-Driven Development (TDD), Behavior-Driven Development (BDD), Specification by Example
A collaborative practice where acceptance tests are written before implementation, based on shared understanding of desired behavior. These tests guide development and confirm that the feature meets business needs.
- Behavior-Driven Development (BDD)
- Related: Test-Driven Development (TDD), Acceptance Test-Driven Development (ATDD), Specification by Example
An agile practice that extends TDD by expressing tests in natural language using Given-When-Then scenarios. It fosters collaboration between developers, testers, and business stakeholders to clarify requirements and automate acceptance checks.
- Specification by Example
- Related: Acceptance Test-Driven Development (ATDD), Behavior-Driven Development (BDD), Living Documentation
A collaborative approach where team members build a shared understanding of features by illustrating them with concrete examples. These examples become the basis for acceptance tests and documentation.
- Living Documentation
- Related: Specification by Example, Behavior-Driven Development (BDD), Executable Specification
Documentation that is automatically generated from executable specifications and updated continuously. It reflects the current system behavior and avoids becoming outdated like traditional static documents.
- Executable Specification
- Related: Living Documentation, Specification by Example, Behavior-Driven Development (BDD)
A specification written in a form that can be executed as an automated test. It serves both as a precise requirement and as a verification mechanism, ensuring the implementation matches the intended behavior.
- Exploratory Testing
- Related: Session-Based Test Management, Test Charter, Heuristic Testing
An approach where testers simultaneously learn about the system, design tests, and execute them. It emphasizes tester autonomy, continuous learning, and using feedback from previous tests to guide further exploration.
- Session-Based Test Management
- Related: Exploratory Testing, Test Charter
A structured way to manage exploratory testing by dividing testing into time-boxed sessions. Each session has a charter, and results are documented to provide traceability and accountability.
- Test Charter
- Related: Exploratory Testing, Session-Based Test Management
A brief statement that guides an exploratory testing session. It describes what to test, why, and how, focusing on risks or areas of interest, without prescribing detailed test steps.
- Heuristic Testing
- Related: Exploratory Testing
An approach that uses experience-based rules of thumb (heuristics) to guide test design and execution. Heuristics help testers decide what to test and how to find defects efficiently.
- Risk-Based Testing
- Related: Exploratory Testing, Test Pyramid
An approach that prioritizes testing efforts based on the likelihood and impact of potential failures. It ensures that the most critical risks are addressed first, optimizing resource use.
- Test Pyramid
- Related: Test Automation, Test Double, Continuous Integration
A model that suggests having many low-level unit tests, fewer service-level tests, and even fewer UI tests. It promotes fast feedback and maintainable automation by balancing test types.
- Test Automation
- Related: Test Pyramid, Test Double, Continuous Integration
The use of software tools to execute tests, compare actual outcomes with expected results, and report results. It aims to reduce manual effort, increase repeatability, and support frequent regression testing.
- Test Double
- Related: Mock Object, Stub, Test Automation
A generic term for any object that stands in for a real object during testing, such as stubs, mocks, fakes, or spies. Test doubles isolate the system under test from its dependencies.
- Mock Object
- Related: Test Double, Stub
A test double that simulates the behavior of a real object and verifies that it was called as expected. Mocks are often used to check interactions between objects.
- Stub
- Related: Test Double, Mock Object
A test double that provides canned responses to calls made during a test. Stubs are used to control the indirect inputs to the system under test and do not verify interactions.
- Continuous Integration (CI)
- Related: Continuous Deployment, Continuous Delivery, Build Pipeline
A practice where developers integrate code into a shared repository frequently, preferably several times a day. Each integration is verified by an automated build and test process to detect integration errors early.
- Continuous Delivery
- Related: Continuous Deployment, Continuous Integration, Deployment Pipeline
A software engineering approach where code changes are automatically built, tested, and prepared for release to production. It ensures that software can be released reliably at any time.
- Continuous Deployment
- Related: Continuous Delivery, Continuous Integration, Deployment Pipeline
An extension of continuous delivery where every change that passes automated tests is automatically deployed to production. It requires robust automation and monitoring to minimize risk.
- Deployment Pipeline
- Related: Continuous Integration, Continuous Delivery, Build Pipeline
An automated process that builds, tests, and deploys software through a series of stages. It provides fast feedback and ensures that only quality code reaches production.
- Build Pipeline
- Related: Continuous Integration, Deployment Pipeline
A set of automated steps that compile, test, and package software from source code. It is a core component of continuous integration and delivery, ensuring consistent and repeatable builds.
- Infrastructure as Code (IaC)
- Related: Continuous Deployment, Deployment Pipeline
The practice of managing and provisioning computing infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. It enables consistent and repeatable environments.
- Application Programming Interface (API) Testing
- Related: Test Automation, Service-Level Testing
Testing at the level of APIs, where tests interact directly with the application's programming interfaces. It focuses on functionality, reliability, performance, and security of the API, often bypassing the user interface.
- Service-Level Testing
- Related: Application Programming Interface (API) Testing, Test Pyramid
Testing that focuses on the services or components of a system, often at the API level. It verifies the behavior of individual services and their interactions, independent of the user interface.
- Unit Testing
- Related: Test-Driven Development (TDD), Test Pyramid
Testing individual units or components of software in isolation. It is typically performed by developers using frameworks like JUnit or NUnit, and is the foundation of the test pyramid.
- Refactoring
- Related: Test-Driven Development (TDD), Technical Debt
The process of restructuring existing code without changing its external behavior, to improve readability, maintainability, or performance. It is a key practice in agile development and TDD.
- Technical Debt
- Related: Refactoring
The implied cost of additional rework caused by choosing an easy solution now instead of a better approach that would take longer. It can accumulate and slow down future development if not managed.
- Version Control System (VCS)
- Related: Continuous Integration, Refactoring
A tool that tracks changes to source code over time, enabling collaboration and history tracking. It is essential for continuous integration and agile practices like branching and merging.
- Test Automation Framework
- Related: Test Automation, Test Pyramid
A set of guidelines, protocols, and tools used to design and manage automated tests. It provides structure, reusable components, and reporting capabilities to make automation efficient and maintainable.
- Keyword-Driven Testing
- Related: Test Automation Framework, Test Automation
A test automation approach where test cases are described using keywords that represent actions or functions. It separates test logic from implementation details, making tests easier to write and maintain.
- Data-Driven Testing
- Related: Test Automation Framework, Keyword-Driven Testing
A testing approach where test scripts read data from external sources (e.g., files, databases) to drive test cases. It allows the same test logic to be executed with multiple sets of data.
- Behavior-Driven Development (BDD) Tool
- Related: Behavior-Driven Development (BDD), Executable Specification
A tool that supports writing and executing BDD scenarios, typically using a domain-specific language like Gherkin. Examples include Cucumber and SpecFlow. It bridges the gap between business and technical stakeholders.
- Test Environment
- Related: Infrastructure as Code (IaC), Test Data Management
A controlled setting where tests are executed, including hardware, software, network, and data configurations. It should mimic production closely enough to produce valid results.
- Test Data Management
- Related: Test Environment, Data-Driven Testing
The process of planning, creating, and maintaining data sets for testing. It ensures that tests have access to appropriate, realistic, and secure data, often in compliance with privacy regulations.
- Production Monitoring
- Related: Continuous Deployment, Continuous Delivery
The ongoing observation of a live system's health and performance using tools that collect metrics, logs, and alerts. It helps detect issues quickly and supports continuous deployment.
- Canary Release
- Related: Continuous Deployment, Blue-Green Deployment
A deployment pattern where a new version is rolled out to a small subset of users before being deployed to everyone. It allows testing in production with limited risk.
- Blue-Green Deployment
- Related: Canary Release, Continuous Deployment
A deployment strategy with two identical environments (blue and green). At any time, one is live and the other is idle. New releases are deployed to the idle environment, tested, and then traffic is switched.