A/B Testing
TestingA method of comparing two versions of a webpage or product to determine which performs better based on a defined success metric.
The comprehensive glossary for QA engineers, SDETs, DevOps engineers, AI/ML practitioners and everyone in tech. Testing, automation, security, web dev and career terminology — explained clearly by a working SDET.
Type any term or keyword. Search is instant and case-insensitive.
A method of comparing two versions of a webpage or product to determine which performs better based on a defined success metric.
Numeronym for accessibility (letter a, 11 letters between, letter y), commonly used in tech contexts.
The process of hiding implementation details while exposing only essential features to the user.
Predefined conditions a feature must meet to be accepted by the product owner or customer.
The final phase of testing where the software is validated against business requirements and stakeholder expectations before release.
The practice of designing and developing digital products so they can be used by people with a wide range of abilities and disabilities.
The practice of testing whether a website or application can be used by people with disabilities, typically evaluated against WCAG guidelines.
A software tool that removes or hides advertising from web pages, affecting analytics and monetization.
Informal, unplanned testing conducted without a written test case or documentation, relying on the tester's intuition and experience.
A design pattern that allows objects with incompatible interfaces to collaborate by wrapping one interface into another.
Testing machine learning models with intentionally crafted inputs designed to cause incorrect outputs.
In AI, an autonomous system that perceives its environment, makes decisions, and takes actions to achieve specific goals.
An iterative software development methodology emphasising customer collaboration, adaptive planning, continuous improvement, and rapid delivery.
Asynchronous JavaScript and XML — a technique for updating parts of a webpage without reloading the entire page.
The practice of notifying teams when systems experience anomalies or failures, based on defined thresholds.
A finite, well-defined sequence of steps or instructions designed to perform a task or solve a specific problem.
The first phase of testing performed by internal staff or an in-house testing team before the software is released to selected external users.
A comprehensive cloud computing platform by Amazon offering compute, storage, database, machine learning, and hundreds of other services.
The process of labelling data with tags or categories so that machine learning models can learn from it.
An open-source configuration management and automation tool that uses simple YAML playbooks to define infrastructure and deployments.
A common response to a recurring problem that is usually ineffective and risks being counterproductive.
Application Programming Interface — a set of definitions and protocols allowing different software components to communicate with each other.
A server that acts as a single entry point for multiple backend services, handling routing, authentication, rate limiting, and monitoring.
A form of software testing that validates APIs at the message layer, checking functionality, reliability, performance, and security without a UI.
An open-source automation framework for testing native, hybrid, and mobile web applications across iOS, Android, and Windows platforms.
The high-level structure of a software system, defining components, their relationships, and the principles guiding their design and evolution.
A value passed to a function or method when it is called, which the function uses as input.
A deployable output produced by a build process, such as a compiled binary, container image, or packaged library.
A statement in a test that verifies whether an expected condition is true; failure typically fails the test and reports the discrepancy.
A library providing functions for writing test assertions, such as Chai, Assert, or Jest's expect.
Short for asynchronous — a programming model where operations run independently, without blocking the main execution flow.
An operation that appears to happen instantaneously and cannot be interrupted, essential for concurrent programming.
A technique in neural networks that allows models to focus on relevant parts of the input, foundational to Transformer architectures.
An authorization model that grants access based on evaluated attributes of the user, resource, action, and environment.
The process of verifying the identity of a user, device, or system, typically through credentials, tokens, or biometric data.
The process of determining what an authenticated user or system is permitted to do or access.
The automatic adjustment of compute resources up or down based on real-time demand, ensuring performance while controlling cost.
A neural network trained to reconstruct its inputs, useful for dimensionality reduction and anomaly detection.
A structured set of guidelines, tools, and libraries providing consistency and reusability for automated test development.
The concept of having many unit tests, some integration tests, and few UI tests for cost-effective automation.
An AI system that can operate independently, making decisions and taking actions without continuous human supervision.
The percentage of time a system is operational and accessible; often measured in nines (99.9%, 99.99%).
A serverless compute service that runs code in response to events without provisioning or managing servers.
An open-source accessibility testing engine that scans web pages for WCAG violations, often integrated into automated test suites.
Microsoft's cloud computing platform providing services including compute, analytics, storage, and networking.
The server-side of an application, responsible for data storage, business logic, authentication, and serving APIs to the frontend.
A prioritised list of work items — features, bug fixes, technical debt — awaiting implementation by the team.
The activity of reviewing and refining backlog items, ensuring they are well-defined and prioritised for future sprints.
The algorithm for training neural networks by propagating errors backward from output to input to update weights.
A copy of data stored separately, used to restore the original in case of loss or corruption.
The ability of a newer version of software to work with data, interfaces, or dependencies from an older version.
The maximum rate of data transfer across a network path, typically measured in bits per second.
A reference point representing the expected performance or behaviour used to detect changes or regressions.
The Bourne Again SHell — a widely-used Unix shell and command language, often used for scripting automation tasks.
Processing data in large groups (batches) rather than one at a time, typically for efficiency in high-volume workflows.
An access token where possession alone grants access, commonly used in OAuth 2.0 for API authentication.
Testing that focuses on observable behaviour of the system rather than internal implementation.
A development approach that describes system behaviour in plain language (Given-When-Then), bridging the gap between business and technical teams.
A measurement of system performance against a defined baseline, used to compare implementations or track changes over time.
Bidirectional Encoder Representations from Transformers — a Google language model that reads text in both directions for context understanding.
External testing performed by real users in a real environment before the software is officially released to the public.
Systematic errors in model predictions arising from flawed training data or algorithm assumptions.
Extremely large datasets that require specialised tools and techniques for storage, processing, and analysis.
A mathematical notation describing the upper bound of an algorithm's time or space complexity relative to input size.
A search algorithm that finds a target value in a sorted array by repeatedly dividing the search interval in half; O(log n).
The number of bits processed per unit of time, commonly measured in bits per second (bps) for network or media applications.
Testing that examines functionality without knowledge of internal code structure or implementation details.
A distributed ledger technology where records are chained cryptographically, providing immutability and transparency.
A deployment strategy where two identical production environments (blue and green) alternate, allowing zero-downtime releases and instant rollback.
Standard, reusable code sections written to set up the basic structure of a project or component.
A data type with two possible values: true or false, fundamental to logic and control flow.
An automated software agent that performs tasks over the internet, ranging from search engine crawlers to conversational assistants.
The percentage of visitors who leave a website after viewing only one page, a common web analytics metric.
Testing at the edges of input ranges to find defects related to limits, such as minimum, maximum, and off-by-one errors.
A parallel version of a code repository that diverges from the main line of development, allowing independent work without affecting others.
A designated point in code where execution pauses during debugging, allowing inspection of program state.
A vulnerability class where users can act outside their intended permissions, ranked #1 in the OWASP Top 10.
Temporary storage in a web browser holding recently visited page assets to speed up subsequent visits.
A small software module that customizes or adds functionality to a web browser.
A defect, error, or flaw in software that causes incorrect or unexpected behaviour.
A time-boxed event where a team collectively hunts for defects in software, often across roles.
A formal document describing a defect, including reproduction steps, expected vs actual behaviour, severity, and environment.
The process of reviewing, categorising, and prioritising reported bugs to decide which get fixed and in what order.
The process of converting source code into a runnable artifact, typically involving compilation, linking, packaging, and testing.
An architectural pattern that isolates failures by partitioning resources so that a fault in one section does not cascade.
A state of physical, emotional, and mental exhaustion caused by prolonged stress, common in tech roles.
The part of a program that encodes real-world business rules determining how data is created, stored, and changed.
An intermediate representation of source code that is executed by a virtual machine, enabling platform independence.
A hierarchical set of software architecture diagrams (Context, Container, Component, Code) for visualising systems at different zoom levels.
A high-speed data storage layer that stores frequently accessed data to reduce latency and load on primary systems.
A function passed as an argument to another function, to be invoked later when a specific event occurs.
A deployment strategy where a new version is released to a small subset of users first, allowing issues to be caught before full rollout.
A form of performance testing that determines the maximum load a system can handle before performance degrades unacceptably.
A defined progression of roles within an organisation, typically outlining expectations and responsibilities at each level.
The practice of automatically preparing every code change for release, with human approval gating the actual deployment.
An extension of Continuous Delivery where every code change that passes all stages is automatically deployed to production.
Content Delivery Network — geographically distributed servers that cache and deliver content to users from the nearest location.
A recurring meeting or event in an agile framework, such as sprint planning, daily standup, or retrospective.
A digital document verifying the ownership of a public key by the named subject, foundational to TLS/HTTPS.
A prompting technique that encourages language models to explain their reasoning step by step, improving complex problem solving.
The discipline of experimenting on a system by deliberately introducing failures to build confidence in the system's resilience.
A Netflix-created tool that randomly terminates instances in production to test resilience, pioneering chaos engineering.
A software application that conducts conversations via text or voice, often powered by rules or machine learning.
A saved state or verification point in a test allowing execution to resume or be verified at that specific moment.
The practice of frequently merging developer changes into a shared branch and automatically running tests to detect integration issues early.
An automated sequence of stages including build, test, and deploy, enabling frequent and reliable software delivery.
A design pattern that prevents cascading failures by stopping requests to a failing service after a threshold, allowing it to recover.
A blueprint or template in object-oriented programming that defines properties and behaviours for creating objects.
A software design philosophy separating concerns into layers, keeping business logic independent of frameworks and delivery mechanisms.
A function that retains access to variables from its lexical scope even after that scope has finished executing.
The on-demand delivery of computing resources — servers, storage, databases, networking — over the internet, paid on usage.
Software designed specifically for cloud environments, using microservices, containers, and dynamic orchestration.
AWS's monitoring and observability service providing metrics, logs, and alarms for AWS resources.
A group of interconnected computers working together as a single system to provide high availability, load balancing, or parallel processing.
An unsupervised learning task that groups similar data points together based on features, without predefined labels.
Content Management System — software for creating and managing digital content, such as WordPress or Drupal.
A neural network architecture especially effective for image processing, using convolutional layers to detect spatial patterns.
A metric measuring the percentage of source code executed during automated test runs, indicating which lines are and are not tested.
The systematic examination of source code by peers before it merges into the main codebase, catching defects and sharing knowledge.
A surface-level indication in code that may suggest deeper design or maintainability problems, though not necessarily bugs.
A device or program that encodes or decodes a digital data stream, commonly used for compression.
The degree to which elements within a module belong together; high cohesion is desirable for maintainability.
The latency incurred when a serverless function is invoked after being idle, due to environment provisioning.
A vulnerability allowing attackers to execute arbitrary system commands via unsanitized input.
A text-based interface where users interact with software by typing commands, commonly used by developers and system administrators.
A program that translates source code from a high-level language into machine code or another form for execution.
Testing individual software components in isolation, typically at a level between unit and integration testing.
The process of reducing the size of data to save storage or transmission bandwidth.
A field of AI enabling computers to interpret and understand visual information from images and videos.
The ability of a system to handle multiple tasks in overlapping time periods, though not necessarily executing simultaneously.
The gradual divergence of system configurations from their intended state over time, mitigated by IaC.
The process of systematically handling changes to a system in a way that maintains integrity, typically using tools like Ansible, Chef, or Puppet.
In distributed systems, the guarantee that all clients see the same data at the same time.
A value that cannot be changed after its initial assignment, promoting code clarity and preventing accidental modification.
A special method invoked when an object is instantiated, used to initialize its state.
A lightweight, standalone executable package containing everything needed to run software — code, runtime, libraries, and settings.
An HTTP header that helps prevent XSS attacks by defining trusted sources of content.
The maximum amount of text (tokens) an LLM can process in a single request, determining how much context it can consider.
A form of testing that verifies interactions between services match a shared contract, ensuring compatibility without full integration tests.
A small piece of data stored by a web browser on behalf of a website, used for session management, tracking, or preferences.
Cross-Origin Resource Sharing — a mechanism allowing restricted resources to be requested from a different domain than the serving one.
A metric measuring the cosine of the angle between two vectors, commonly used to compare document embeddings.
The degree of interdependence between software modules; low coupling is generally desirable for flexibility and maintainability.
Command Query Responsibility Segregation — a pattern separating read and write operations for scalability and clarity.
Testing that verifies a web application works correctly across different browsers, versions, and operating systems.
An attack tricking authenticated users into performing unwanted actions on a web application they trust.
Create, Read, Update, Delete — the four basic operations of persistent storage in database applications.
The practice of secure communication in the presence of adversaries, using mathematical techniques.
Cascading Style Sheets — a stylesheet language used to describe the presentation of documents written in HTML or XML.
Comma-Separated Values — a simple text file format for tabular data, widely used for data exchange.
A tool that supports Behaviour-Driven Development by allowing tests to be written in plain-language Gherkin syntax.
A quantitative measure of the number of linearly independent paths through a program's source code, indicating testability and maintainability.
A modern JavaScript-based end-to-end testing framework designed for the web, running directly in the browser for fast, reliable tests.
A background process that runs continuously on a system, typically handling requests or performing periodic tasks.
A short daily meeting where team members share progress, plans, and blockers, a core Scrum ceremony.
The technique of deploying a new feature to production silently, running it in the background before exposing it to users.
Techniques to increase training data diversity by applying transformations like rotation, flipping, or synonym substitution.
An incident where unauthorized parties access sensitive, protected, or confidential data.
A centralised repository that stores vast amounts of raw data in its native format until needed for analysis.
The process of discovering patterns, correlations, and anomalies in large datasets using statistical and computational techniques.
The process of creating a data model, defining data structures and relationships to represent business information.
The process of organizing data in a database to reduce redundancy and improve integrity.
A series of processing steps that move data from source systems to destination systems, transforming it along the way.
The process of converting data structures into a format suitable for storage or transmission, such as JSON or XML.
A specialised format for organising, processing, retrieving, and storing data.
A centralised repository of structured, cleaned, and integrated data from multiple sources, optimised for analytical queries.
A test approach where the same test logic is executed with multiple sets of input data, typically stored externally in CSV, JSON, or database.
An organised collection of structured or unstructured data stored electronically and accessed through a database management system.
A collection of data used for training, validation, or testing of machine learning models.
A situation where two or more processes wait indefinitely for each other's resources, halting progress.
A programming technique that limits how often a function executes, useful for controlling rapid events like keystrokes or resize events.
The systematic process of identifying, isolating, and fixing defects in software code.
A supervised learning algorithm that models decisions as a tree of conditions, easy to interpret and visualize.
A design pattern allowing behaviour to be added to objects dynamically without altering their structure.
A subset of machine learning using neural networks with multiple layers to model complex patterns in data.
The ability to focus without distraction on cognitively demanding tasks, promoted by Cal Newport.
A flaw or imperfection in software that causes it to deviate from expected behaviour or specifications.
The number of defects per unit of code size, used to compare code quality across releases or teams.
Defects that escape testing and are discovered in production or later stages, a metric of test effectiveness.
An agreed-upon checklist of criteria a user story must meet to be considered complete.
A checklist ensuring a user story is well-defined and ready for the development team to work on.
An attack that overwhelms a system with traffic, making it unavailable to legitimate users.
A relationship where one software component requires another to function correctly.
A design pattern where dependencies are provided to a class from outside rather than being created internally, improving testability.
The process of moving software from a development environment into production where end users can access it.
The process of marking a feature, API, or function as outdated and scheduled for removal in future versions.
A general, reusable solution to a commonly occurring problem in software design, providing a template rather than finished code.
A collection of reusable components, patterns, and guidelines for consistent product design at scale.
A cultural and technical movement combining software development and IT operations to shorten development cycles and improve deployment reliability.
The practice of integrating security considerations into every phase of the DevOps lifecycle rather than treating security as a final gate.
A high-level Python web framework encouraging rapid development and clean, pragmatic design, with a built-in ORM and admin panel.
Domain Name System — the hierarchical naming system that translates human-readable domain names into machine-readable IP addresses.
An open-source platform for developing, shipping, and running applications inside lightweight containers.
A tool for defining and running multi-container Docker applications using a YAML configuration file.
Written or visual material explaining how software works, how to use it, and how to maintain it, essential for long-term project sustainability.
Document Object Model — a programming interface for web documents representing the page as a tree structure of nodes.
A period during which a system is unavailable or non-functional, typically measured for service level agreements.
A regularization technique in neural networks that randomly ignores neurons during training to prevent overfitting.
Don't Repeat Yourself — a software design principle aimed at reducing duplication of code, logic, and data across a codebase.
The evaluation of a program's behaviour during execution, in contrast to static analysis of source code.
An algorithmic technique that solves complex problems by breaking them into overlapping subproblems and storing their results.
A scenario at the extreme boundaries of operating parameters, often revealing bugs missed by mainstream testing.
A distributed computing paradigm bringing computation and data storage closer to where it is needed, reducing latency.
AWS's static public IP address that can be dynamically remapped between EC2 instances.
A distributed, RESTful search and analytics engine used for log analysis, full-text search, and observability.
A learned representation of data where similar items are mapped to nearby points in a continuous vector space.
Software that mimics the behaviour of another system, commonly used for testing mobile apps without physical devices.
An OOP principle bundling data and methods that operate on that data within a single unit, hiding internal state from outside interference.
A neural network architecture with two parts: encoder compresses input into a latent representation, decoder generates output.
The process of converting data into a coded form to prevent unauthorised access, requiring a key to decrypt back to readable form.
Testing that validates a complete workflow from start to finish, mimicking real user scenarios across all system components.
A specific URL or URI where an API can be accessed by clients, corresponding to a resource or operation.
A distinct instance of the software system — such as development, staging, or production — each configured for a specific purpose.
A dynamic value in an operating system or process that can affect the behavior of running software.
A short-lived, on-demand test environment typically created per pull request and destroyed after use.
A large body of work in agile that can be broken down into multiple user stories.
One complete pass through the entire training dataset during machine learning model training.
A black-box test design technique dividing input data into equivalent groups, testing one value per group to reduce test count.
In SRE, the allowable amount of downtime or errors within an SLO, balancing reliability with innovation.
The process of anticipating, detecting, and gracefully responding to error conditions in a program.
Entity Tag — an HTTP header used for cache validation, allowing efficient conditional requests.
The authorised practice of testing systems for vulnerabilities to improve security, distinct from malicious hacking.
A data pipeline pattern that extracts data from sources, transforms it into a usable format, and loads it into a target system.
An action or occurrence recognised by software, often triggered by user actions or system states.
A programming construct waiting for and dispatching events or messages, central to asynchronous JavaScript.
A pattern that stores state changes as a sequence of immutable events, enabling audit trails and temporal queries.
An architectural pattern where system components communicate through events rather than direct calls, promoting loose coupling.
A consistency model where updates propagate through a distributed system, eventually reaching all nodes.
A runtime event disrupting normal program flow, typically representing an error condition to be handled.
The process of responding to unexpected events during program execution, typically using try-catch blocks.
Conditions that must be met before testing can be considered complete, such as coverage thresholds and defect counts.
A hands-on approach where testers simultaneously learn about the software, design tests, and execute them, often uncovering unexpected issues.
A retry strategy where wait times between attempts grow exponentially, reducing load on failing services.
A minimalist Node.js web application framework providing a robust set of features for web and mobile applications.
An agile methodology emphasising engineering practices like TDD, pair programming, and continuous integration.
The harmonic mean of precision and recall, providing a balanced measure of a classifier's accuracy.
A cloud model executing individual functions in response to events, without managing servers.
A design pattern providing a simplified interface to a complex subsystem, hiding its complexity from clients.
The automatic switching to a redundant system, server, or network upon the failure of the primary, ensuring continued service.
A specific way in which a system can fail, analysed during design to plan mitigations and testing.
A working implementation of a component used in tests but not suitable for production, such as an in-memory database.
A test that passes when it should have failed, indicating a bug that was missed.
A test that fails when it should have passed, often due to environmental issues or test flakiness.
A branch created to develop a specific feature in isolation, merged back to the main branch when complete.
The process of using domain knowledge to select, transform, or create features from raw data to improve model performance.
A technique allowing features to be toggled on or off in production without deploying new code, enabling gradual rollouts.
A system enabling users to use the same identification data across multiple systems, common in enterprise SSO.
A machine learning technique training a shared model across decentralized devices while keeping data local for privacy.
A machine learning approach where models learn to perform new tasks with only a small number of training examples.
A single unit of data within a record, corresponding to a column in a database table.
A method and data structure that an operating system uses to control how data is stored and retrieved on a storage device.
The process of taking a pre-trained machine learning model and further training it on domain-specific data to improve performance for a particular task.
A short identifier derived from a longer piece of data, commonly used to verify integrity of cryptographic keys.
A network security system that monitors and controls incoming and outgoing traffic based on predefined security rules.
Low-level software providing basic control for a device's hardware, sitting between hardware and operating system.
A component providing a fixed baseline state for tests, ensuring they run in a consistent, known environment.
A test that intermittently passes and fails without any code changes, undermining trust in the test suite and slowing CI pipelines.
A lightweight Python web framework offering flexibility and minimal dependencies, popular for microservices and small applications.
A field in a database table linking to the primary key of another table, establishing relationships between records.
A copy of a repository allowing independent development without affecting the original, common in open-source workflows.
A reusable set of code providing generic functionality that developers can customise and extend for specific applications.
Working independently for multiple clients rather than being employed by a single company, common in software development.
The user-facing part of a web application, comprising HTML, CSS, and JavaScript running in the browser.
A developer or role covering both frontend (user-facing) and backend (server-side) work across the entire application stack.
A reusable block of code performing a specific task, invoked by name with optional arguments.
The process of combining simple functions to build more complex ones, common in functional programming.
Testing that verifies each function of the software meets its specified requirements by feeding input and examining output.
A testing technique that provides invalid, unexpected, or random data as inputs to a program to find crashes and security vulnerabilities.
A machine learning architecture where two neural networks compete — a generator creates fake data, a discriminator tries to detect it.
The automatic process of reclaiming memory occupied by objects no longer in use, freeing developers from manual memory management.
A single entry point that handles routing, authentication, and cross-cutting concerns for multiple backend services.
Google's suite of cloud computing services running on the same infrastructure that Google uses internally.
Google's family of multimodal large language models capable of processing text, images, audio, and video.
A class of artificial intelligence that produces new content — text, images, code, audio — based on patterns learned from training data.
A programming feature allowing algorithms and data structures to work with any data type.
An optimisation method inspired by natural selection, evolving solutions through selection, crossover, and mutation.
A business-readable, domain-specific language used in Behaviour-Driven Development to describe software behaviour in Given-When-Then format.
A distributed version control system for tracking changes in source code during software development, allowing collaboration across teams.
A branching workflow model for Git, defining specific branches for features, releases, and hotfixes.
GitHub's built-in CI/CD platform, allowing workflows to be defined in YAML and triggered by repository events.
A DevOps practice where the state of infrastructure and applications is declaratively defined in a Git repository, and changes are made via pull requests.
A variable accessible throughout an entire program, generally discouraged due to maintenance and testing challenges.
The primary happy-path user flow through an application that must always work, prioritised for testing.
An open-source tool for auditing web page quality, covering performance, accessibility, SEO, and best practices.
A free Google service that helps monitor and troubleshoot a site's presence in search results.
The framework of rules, practices, and processes ensuring that systems are managed responsibly and align with objectives.
Generative Pre-trained Transformer — OpenAI's family of large language models capable of understanding and generating human-like text.
A design approach where a system continues to operate with reduced functionality when parts fail.
A machine learning technique that builds predictive models sequentially, each correcting errors of its predecessors.
An optimisation algorithm used to minimize a function by iteratively moving in the direction of steepest descent.
An open-source analytics and monitoring platform for visualising metrics from multiple data sources.
A query language for APIs that allows clients to request exactly the data they need, reducing over-fetching and under-fetching.
A hybrid testing approach combining black-box and white-box techniques, where the tester has partial knowledge of internal structures.
A modern open-source RPC framework using HTTP/2 and Protocol Buffers, popular for microservice communication.
An AI model output that is confidently stated but factually incorrect or fabricated, particularly common in large language models.
The process by which two parties establish parameters for communication, such as TLS handshake for HTTPS.
The default scenario where everything works as expected, without errors or edge conditions.
A data structure implementing a key-value store, using hash functions for fast lookup.
The process of converting data of arbitrary size into a fixed-size string, commonly used for passwords, data integrity, and lookups.
Metadata sent alongside an HTTP request or response, providing information about the message.
A browser without a graphical user interface, used in automated testing for faster execution and CI/CD compatibility.
A periodic verification that a service is running correctly, often used by load balancers to route traffic away from unhealthy instances.
A memory area where dynamically allocated objects are stored, in contrast to the stack.
A usability inspection method where evaluators judge whether an interface conforms to established usability principles.
A base-16 numbering system commonly used in computing to represent binary data compactly.
A system design ensuring operational continuity for extended periods, typically achieved through redundancy.
A JavaScript behaviour where variable and function declarations are moved to the top of their containing scope during compilation.
Increasing capacity by adding more machines to a distributed system, in contrast to vertical scaling.
An urgent code change deployed to production to address a critical issue, typically bypassing normal release cycles.
HyperText Markup Language — the standard markup language for creating structured web pages and applications.
The fifth major version of HTML, introducing native support for multimedia, canvas, and semantic elements.
HyperText Transfer Protocol — the foundation of data communication for the World Wide Web, defining how messages are formatted and transmitted.
A verb indicating the desired action on a resource, such as GET, POST, PUT, PATCH, DELETE.
A three-digit code returned by servers indicating the outcome of an HTTP request, such as 200 OK or 404 Not Found.
The second major version of HTTP, introducing multiplexing, header compression, and server push for performance improvements.
The third major version of HTTP, using QUIC over UDP for reduced latency and better performance.
HTTP Secure — an encrypted version of HTTP using TLS/SSL to protect data transmitted between client and server.
A company and open-source platform hosting thousands of pre-trained machine learning models and datasets.
A mobile application combining web technologies and native platform features, often built with frameworks like Ionic or React Native.
A parameter whose value controls the learning process itself, set before training rather than learned from data.
Software that creates and runs virtual machines, allowing multiple operating systems to share a single hardware host.
The practice of managing infrastructure through code files rather than manual processes, enabling versioning, reuse, and automation.
A property of operations where performing the same action multiple times has the same effect as performing it once, essential for reliable APIs.
A service that creates, maintains, and manages identity information while providing authentication services to relying applications.
A property of objects whose state cannot be modified after creation, promoting predictability and thread-safety.
A model where servers are never modified after deployment; changes require replacing the entire instance, improving predictability and rollback.
The process of identifying the potential consequences of a change on other parts of a system.
A psychological pattern where individuals doubt their accomplishments and fear being exposed as a fraud, common in tech.
The structured process of identifying, responding to, and resolving unplanned service disruptions with the goal of restoring normal operation quickly.
Testing performed by people who did not develop the code, providing unbiased perspective.
A data structure improving the speed of data retrieval operations on a database table at the cost of additional storage.
The process of using a trained machine learning model to make predictions or generate outputs on new, unseen data.
An OOP mechanism where one class derives properties and methods from another, enabling code reuse and hierarchical relationships.
A security vulnerability class where untrusted data is interpreted as code or commands, including SQL, NoSQL, and OS command injection.
A specific occurrence of an object, virtual machine, or service running at a particular time.
Testing that verifies interactions between integrated modules or services work correctly, sitting between unit and end-to-end tests.
A contract defining methods a class must implement, enabling polymorphism and separation of concerns.
The design and development of software to support multiple languages, regions, and cultural conventions without engineering changes.
A program that executes source code directly, translating instructions at runtime rather than compiling ahead.
A series of interviews with multiple team members and technical assessments for a single role.
A property that remains unchanged throughout the execution of a program or during operations on a data structure.
A unique numerical label assigned to each device connected to a computer network, used for identifying and locating devices.
The repetition of a process or block of code, fundamental to loops and recursive structures.
An open-source distributed tracing system used to monitor and troubleshoot transactions in complex, distributed systems.
A widely-used, class-based, object-oriented programming language known for its portability across platforms via the Java Virtual Machine.
A high-level, interpreted programming language that enables interactive web pages and is a core technology of the World Wide Web.
An open-source automation server widely used for building, testing, and deploying software via configurable CI/CD pipelines.
A JavaScript testing framework developed by Facebook, known for simplicity, snapshot testing, and rich mocking capabilities.
A project management tool by Atlassian widely used for bug tracking, agile project management, and issue tracking.
A compilation strategy that translates code to native machine language at runtime rather than beforehand.
An open-source Apache tool for load testing and measuring performance of web applications, APIs, and various services.
JavaScript Object Notation — a lightweight, text-based data-interchange format that is easy for humans to read and machines to parse.
A vocabulary allowing you to annotate and validate JSON documents against a defined structure.
Java Virtual Machine — a virtual machine that enables computers to run Java bytecode as well as programs from other languages compiled to bytecode.
JSON Web Token — a compact, URL-safe means of representing claims between parties, commonly used for authentication.
An unsupervised learning algorithm partitioning data into K clusters based on feature similarity.
A modern open-source load testing tool designed for developer experience, scriptable in JavaScript.
An open-source distributed event streaming platform used for high-throughput data pipelines, streaming analytics, and event-driven applications.
A workflow visualisation method using cards on a board to manage work items through defined stages, emphasising continuous flow.
A programming exercise done repeatedly to develop skill and muscle memory, borrowed from martial arts terminology.
The core of an operating system, managing system resources and communication between hardware and software.
A measurable value demonstrating how effectively a system, team, or individual achieves key business objectives.
An automation framework approach where test scripts are structured as sequences of keywords representing actions on the application.
A simple algorithm classifying data points based on the majority label of their K closest neighbors.
The command-line tool for controlling Kubernetes clusters, allowing users to deploy applications and manage resources.
An open-source container orchestration platform for automating deployment, scaling, and management of containerised applications.
A framework for developing applications powered by language models, providing components for chains, agents, memory, and retrieval.
A machine learning model trained on massive text data, capable of understanding and generating human-like language across many domains.
The time delay between a request being made and a response being received, typically measured in milliseconds.
A compressed representation of data learned by a model, where similar items are placed close together in a lower-dimensional space.
A design pattern where resources are loaded on demand rather than upfront, improving initial page load performance.
A popular platform for coding practice, widely used for technical interview preparation at top tech companies.
Older code that is difficult to change or maintain, often lacking tests, documentation, or clear structure.
The stages a software component or process goes through, from creation to disposal.
A static code analysis tool that flags programming errors, bugs, stylistic issues, and suspicious constructs in source code.
An open-source, Unix-like operating system widely used for servers, cloud infrastructure, and developer workstations.
Meta's family of open-source large language models, widely used in the research community and for fine-tuning custom models.
A device or software that distributes incoming network traffic across multiple servers to ensure no single server is overwhelmed.
The process of distributing workloads across multiple computing resources to optimise use, response time, and availability.
A form of performance testing that determines how a system behaves under expected user load, measuring response time and stability.
A browser API for storing key-value pairs persistently on the client side, surviving across sessions.
The adaptation of software content for a specific region or language, including translations, currency, dates, and cultural nuances.
Selectors used to identify web elements for interaction in automation, such as CSS selectors, XPath, or IDs.
The process of collecting logs from multiple sources into a central system for search, analysis, and alerting.
A classification indicating the severity or importance of a log message, such as DEBUG, INFO, WARN, ERROR.
A web technique where the client requests information from the server, keeping the connection open until data is available.
A design principle where components depend on abstractions rather than concrete implementations, improving flexibility and maintainability.
An efficient fine-tuning technique that adds small trainable rank decomposition matrices to a frozen pre-trained model.
Data compression that preserves the original information exactly upon decompression.
The lowest-level programming language, consisting of binary instructions directly executed by the CPU.
A subset of artificial intelligence where systems learn patterns from data to make predictions or decisions without explicit programming for each task.
A file describing the components, settings, and metadata of an application, common in Kubernetes and web extensions.
Testing performed by a human tester without the use of automation tools, essential for exploratory and usability testing.
A lightweight markup language with plain-text formatting syntax, widely used for documentation and README files.
An open protocol standardising how applications provide context to large language models, enabling secure, structured integrations.
An optimisation technique that stores the results of expensive function calls and returns the cached result when the same inputs occur again.
A programming error where allocated memory is not released after use, gradually consuming available memory.
A relationship where an experienced person guides a less experienced one, common in professional development.
A situation in version control when two branches modify the same lines of code differently, requiring manual resolution.
An intermediary program translating messages between systems, decoupling producers from consumers.
A form of asynchronous service-to-service communication where messages are stored until they can be processed and deleted.
Data about data — information describing the content, quality, condition, or characteristics of a dataset.
A function associated with a class or object, typically operating on the object's data.
A quantitative measurement used to assess performance, health, or behaviour of a system over time.
An authentication method requiring two or more verification factors, significantly increasing security beyond passwords alone.
An architectural pattern applying microservices concepts to frontend development, allowing teams to work on independent, deployable UI pieces.
An architectural style structuring an application as a collection of small, independently deployable services organised around business capabilities.
Software that acts as a bridge between an operating system or database and applications, especially on a network, handling cross-cutting concerns.
The process of moving data, applications, or infrastructure from one environment to another, such as on-premise to cloud.
The practice of deploying, monitoring, and maintaining machine learning models in production, adapting DevOps principles to ML.
A simulated object or service that mimics the behaviour of real components in controlled ways, used in unit testing.
In machine learning, a mathematical representation trained on data to make predictions or decisions.
The degradation of a machine learning model's performance over time due to changes in the data distribution.
A self-contained unit of code providing specific functionality, promoting code reuse and separation of concerns.
A popular open-source NoSQL document database storing data in flexible, JSON-like documents.
The continuous observation of systems and applications to track performance, availability, and errors, enabling proactive issue detection.
An application architecture where all functionality is packaged into a single, tightly integrated codebase and deployment unit.
A software development strategy where code for many projects is stored in the same repository, enabling shared tooling and atomic changes.
Mean Time Between Failures — the average time a system operates before failing, a measure of reliability.
Mean Time To Recovery — the average time taken to restore a system after failure, a measure of operational agility.
An AI model that processes and generates multiple types of data, such as text, images, and audio, in an integrated way.
A software architecture where a single instance serves multiple customers (tenants), with data and configuration isolated per tenant.
A testing technique that evaluates the effectiveness of test suites by introducing small changes (mutations) to the code and checking if tests catch them.
An architectural pattern separating an application into three components: data (Model), presentation (View), and control logic (Controller).
An open-source monitoring system that monitors systems, networks, and infrastructure, alerting when things go wrong.
A container providing a scope for a set of identifiers, preventing naming conflicts between components.
A field of AI focused on enabling computers to understand, interpret, and generate human language in useful ways.
Testing that intentionally uses invalid inputs or unexpected conditions to verify that a system handles errors gracefully.
A computing system inspired by biological neural networks, consisting of interconnected nodes that process information in layers.
A high-performance web server, reverse proxy, and load balancer widely used for serving static content and routing requests.
A JavaScript runtime built on Chrome's V8 engine, allowing JavaScript to run outside the browser, especially for server-side development.
A category of database management systems that store data in formats other than traditional relational tables, including document, key-value, wide-column, and graph.
Node Package Manager — the default package manager for Node.js, hosting over a million reusable JavaScript packages.
An open standard for access delegation, allowing users to grant applications access to their resources without sharing passwords.
A programming paradigm based on objects containing data and methods, emphasising encapsulation, inheritance, and polymorphism.
The ability to understand a system's internal state from its external outputs, typically via logs, metrics, and traces.
A rotational responsibility where team members are available to respond to production incidents outside normal working hours.
The process of integrating a new employee into an organisation, including training, introductions, and setup.
Software with source code freely available for anyone to inspect, modify, and distribute, often developed collaboratively.
Contributing code, documentation, or other resources to open-source projects, valued for skill development and community reputation.
A specification for describing REST APIs in a machine-readable format, formerly known as Swagger.
A concurrency control strategy where transactions proceed without locking, checking for conflicts only at commit time.
The automated configuration, coordination, and management of complex systems, particularly containerised applications and cloud infrastructure.
A programming technique for converting data between incompatible type systems in object-oriented languages and relational databases.
A modelling error where a model learns training data too well, including noise, and fails to generalise to new data.
The Open Web Application Security Project — a nonprofit foundation dedicated to improving software security through open resources and standards.
A regularly updated list of the most critical security risks to web applications, widely used as a baseline for security testing.
A design pattern in test automation where each web page is represented as a class, isolating UI structure from test logic.
An agile practice where two programmers work together at one workstation — one writes code (driver), the other reviews (navigator).
The technique of running tests simultaneously across multiple threads, processes, or machines to reduce total execution time.
A testing approach where the same test is run multiple times with different input values, typically via a data source.
The data transmitted within an API request or response, distinct from headers and metadata.
A simulated cyberattack against a system to check for exploitable vulnerabilities, often performed by ethical hackers.
The style guide for Python code, providing conventions on naming, formatting, and layout to promote readability.
A category of testing evaluating a system's responsiveness, stability, and scalability under various workloads.
The characteristic of state that outlives the process that created it, typically achieved by writing data to a database or file system.
A concurrency control strategy where a transaction locks resources before use, preventing others from modifying them until the lock is released.
A social engineering attack where attackers impersonate trusted entities to steal credentials or install malware.
Personally Identifiable Information — data that can identify a specific individual, subject to strict privacy regulations.
A modern open-source automation library from Microsoft for reliable end-to-end testing across all modern browsers with a single API.
An OOP concept where a single interface represents different underlying forms (types), enabling flexible and reusable code.
A curated collection of work samples demonstrating skills and experience, often shown to potential employers or clients.
A powerful open-source relational database system known for reliability, feature robustness, and standards compliance.
A widely-used API platform for building and testing APIs, providing tools for design, mock servers, testing, documentation, and monitoring.
A condition that must be true before a test can begin, such as required test data or user state.
A field in a database table that uniquely identifies each record, enforced as unique and non-null.
A role in Scrum representing stakeholders and responsible for maximising product value through backlog management.
An open-source monitoring system with a time-series database, powerful query language, and alerting capabilities.
The practice of crafting inputs to large language models to elicit accurate, useful, and predictable outputs.
A testing approach where properties that should always hold true are defined, and the framework generates many random inputs to verify them.
Protocol Buffers — Google's language-neutral, platform-neutral mechanism for serializing structured data, used in gRPC.
An intermediary server that acts on behalf of another server or client, forwarding requests and often adding features like caching or filtering.
A method of submitting code contributions where changes are proposed for review before being merged into the main branch.
A Node.js library by Google providing a high-level API to control headless Chrome or Chromium via DevTools Protocol.
A mature, feature-rich Python testing framework with support for fixtures, parameterisation, and plugin ecosystem.
A high-level, interpreted programming language known for readability and versatility, widely used in web development, data science, and automation.
A quality assurance professional responsible for ensuring software meets specified quality standards through testing, process improvement, and defect prevention.
A systematic process of determining whether a product or service meets specified requirements, focusing on preventing defects throughout the software lifecycle.
The processes and procedures for detecting defects in a product before release, typically focused on inspection and testing activities.
An automated checkpoint in a CI/CD pipeline that must pass for the build to proceed, enforcing standards for coverage, security, or code quality.
A request for information from a database, typically written in SQL or a query language specific to the database.
A First-In-First-Out (FIFO) data structure where elements are added at one end and removed from the other.
A defect occurring when the behaviour of software depends on the sequence or timing of uncontrollable events, often causing intermittent failures.
A technique combining information retrieval with language model generation, letting LLMs answer questions using external, up-to-date knowledge.
An ensemble learning method combining many decision trees, using majority vote for classification or average for regression.
A technique restricting the number of requests a client can make to an API within a time window, protecting against abuse and overuse.
An open-source JavaScript library for building user interfaces, particularly single-page applications, using a component-based architecture.
An in-memory data structure store used as a database, cache, message broker, and streaming engine, known for exceptional speed.
The disciplined process of restructuring existing code without changing its external behaviour, improving readability, structure, and maintainability.
The ongoing process of reviewing and improving backlog items, breaking them down, and estimating effort.
The reappearance of a bug or the introduction of a new bug after a code change, especially in previously working features.
Testing performed after changes to verify that previously working functionality still works, catching unintended side effects.
Techniques that prevent overfitting by adding constraints or penalties during model training.
A machine learning paradigm where an agent learns to make decisions by taking actions in an environment to maximise cumulative reward.
The ability of a system to perform its required functions under stated conditions for a specified period of time.
Working from a location other than a central office, enabled by technology and increasingly common in tech.
A storage location for software packages or source code, often used in version control systems like Git.
Representational State Transfer — an architectural style for designing networked applications using stateless communication over HTTP.
An API following REST architectural constraints, typically using HTTP methods (GET, POST, PUT, DELETE) to operate on resources.
Rerunning a previously failed test after a fix has been applied, to verify the fix resolves the issue.
A recurring team meeting to reflect on the previous iteration and identify improvements for the next, a core Scrum ceremony.
A server that sits between clients and backend servers, forwarding requests and often providing SSL termination, caching, and load balancing.
An approach that prioritises testing effort based on the risk of failure, focusing on high-impact, high-probability areas.
Reinforcement Learning from Human Feedback — a technique that fine-tunes language models using human preferences to align outputs.
The process of returning a system to a previous stable state, typically after a failed deployment.
The process of deploying a change to production, often gradually across users, servers, or regions to limit blast radius.
A systematic process for identifying the underlying cause of a problem or incident, going beyond symptoms to prevent recurrence.
The process of determining which code should handle a given URL or request in a web application.
A dynamic, object-oriented programming language known for its elegant syntax, particularly popular with the Ruby on Rails framework.
A systems programming language emphasising performance, memory safety, and concurrency without a garbage collector.
Software as a Service — a software distribution model where applications are hosted by a provider and made available to customers over the internet.
A framework for applying agile at enterprise scale, coordinating multiple teams working toward common objectives.
An isolated testing environment where changes or experiments can be executed without affecting production systems.
Quick tests focusing on specific functionality after minor changes, verifying that the change works as intended.
The capability of a system to handle a growing amount of work by adding resources, either vertically (bigger machines) or horizontally (more machines).
Testing based on realistic user scenarios that simulate how the system will be used in the real world.
The structure that defines the organisation, format, and constraints of data in a database or serialised format.
Testing that compares screenshots against baselines to detect visual changes, part of visual regression testing.
An agile framework for managing complex work, structured around fixed-length sprints, defined roles, and regular ceremonies.
A facilitator role in Scrum responsible for helping the team follow Scrum practices, removing impediments, and coaching.
Software Development Engineer in Test — a technical role combining software engineering skills with a focus on testing, automation, and quality tooling.
Software Development Kit — a collection of tools, libraries, and documentation enabling developers to build applications for a specific platform.
The practice of securely storing, accessing, and rotating sensitive credentials like API keys, passwords, and certificates.
An open-source umbrella project for a range of tools and libraries automating web browsers, one of the oldest and most widely-used browser automation frameworks.
A Selenium tool enabling parallel test execution across multiple machines and browsers for scale.
A search technique that understands intent and contextual meaning rather than just matching keywords, powered by embeddings.
A versioning scheme (MAJOR.MINOR.PATCH) that communicates the nature of changes: breaking, feature, or bug fix.
A computer program or device that provides functionality or resources to other programs or devices (clients), typically over a network.
A cloud computing model where the cloud provider manages the server infrastructure, allowing developers to focus solely on code.
A period of interaction between a user and a system, typically maintained through cookies or tokens to preserve state across requests.
An attack where an attacker takes over a user's active session by stealing session tokens or cookies.
A database partitioning technique that splits large tables into smaller, faster, more easily managed pieces called shards, distributed across servers.
The practice of moving testing activities earlier in the development lifecycle to catch defects sooner and reduce cost.
The practice of extending testing into production through techniques like chaos engineering, feature flags, and canary releases.
An architectural pattern where a helper container runs alongside a main application container, sharing lifecycle and resources.
A web application that loads a single HTML page and dynamically updates content as the user interacts, without full page reloads.
An authentication scheme allowing a user to log in once and access multiple related systems without re-authenticating.
A discipline applying software engineering principles to operations, focused on reliability, scalability, and automation.
Service Level Agreement — a formal contract defining the expected service level, including availability, response time, and support.
Service Level Indicator — a measured metric like error rate or latency, used to evaluate service performance.
Service Level Objective — a target value or range for an SLI, defining the desired level of service quality.
A preliminary set of tests verifying that critical functionality works after a build, before proceeding with deeper testing.
Simple Object Access Protocol — a messaging protocol for exchanging structured information in web services using XML.
An acronym for five OOP design principles: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.
An open-source platform for continuous inspection of code quality, detecting bugs, vulnerabilities, and code smells.
The human-readable instructions written by programmers in a programming language, which are compiled or interpreted for execution.
A performance testing type that measures how a system responds to sudden, extreme increases in load.
A fixed-length development iteration in Scrum, typically 1-4 weeks, during which a team completes a set of committed work.
A Scrum ceremony where the team plans the work for the upcoming sprint, selecting items from the backlog.
A Scrum ceremony at the end of a sprint where the team demonstrates completed work to stakeholders.
Structured Query Language — the standard language for interacting with relational databases, used to define, query, and modify data.
A code injection attack where malicious SQL is inserted into an application's queries, potentially exposing or manipulating database contents.
Secure Shell — a cryptographic network protocol for operating network services securely over an unsecured network, commonly for remote login.
Secure Sockets Layer — a cryptographic protocol providing secure communication over a network, largely superseded by TLS.
A Last-In-First-Out (LIFO) data structure where elements are added and removed from the same end (top).
A report of the active stack frames at a certain point in execution, useful for debugging errors and exceptions.
An environment that closely resembles production, used for final testing before releasing changes to real users.
The stored information a program holds at any given time, which influences its behaviour.
The examination of source code without executing it, used to detect potential defects, security issues, and code quality problems.
A unit of measure in agile estimation representing the effort required to complete a user story.
An open-source tool for building UI components in isolation, enabling design systems and visual testing.
A design pattern enabling an algorithm's behaviour to be selected at runtime by encapsulating a family of algorithms behind a common interface.
A performance testing type that evaluates system behaviour beyond normal operational capacity, often to a breaking point.
A simple simulation of a component providing predetermined responses, used to isolate what's being tested from external dependencies.
A type of machine learning where models are trained on labelled data, learning to predict outputs from inputs.
A supervised learning algorithm that finds the optimal hyperplane separating classes in feature space.
A framework of API developer tools, now known as the OpenAPI Specification, for describing, documenting, and consuming REST APIs.
A programming model where operations execute sequentially, each blocking until it completes before the next begins.
A common technical interview focusing on designing large-scale distributed systems, evaluating architecture and trade-off thinking.
Testing conducted on a complete, integrated system to evaluate compliance with specified requirements.
A utility-first CSS framework providing low-level classes to build custom designs directly in markup.
Transmission Control Protocol / Internet Protocol — the foundational communication protocols of the internet.
A development practice where tests are written before the code they verify, following a Red-Green-Refactor cycle.
A senior engineer responsible for technical direction, mentoring, and code quality within a team.
A blog focused on technical topics, valuable for personal branding, knowledge sharing, and career growth.
The implied cost of additional rework caused by choosing an easy solution now instead of a better approach that would take longer.
The automated collection and transmission of data from remote sources, used to monitor systems and understand user behaviour.
A parameter controlling randomness in language model outputs — higher values produce more creative, lower more deterministic responses.
An open-source infrastructure-as-code tool by HashiCorp allowing infrastructure to be defined declaratively in HCL configuration files.
The use of software tools to execute pre-scripted tests, enabling repeatable and efficient testing at scale.
A professional specialising in designing, developing, and maintaining automated test frameworks and scripts.
A specific set of conditions or steps used to verify a particular feature or behaviour, including expected outcomes.
The practice of organising, tracking, and reporting on test cases, often using tools like TestRail or Zephyr.
A measure of the extent to which requirements or code have been tested, often expressed as a percentage.
The inputs used during test execution to verify system behaviour, ranging from valid data to boundary conditions and error cases.
The activity of creating test cases based on requirements, specifications, or exploratory investigation.
A general term for any object that stands in for a real object in tests, including mocks, stubs, fakes, and spies.
A configured setup — hardware, software, network, data — where tests are executed, ideally matching production as closely as possible.
The activity of running tests and recording results, either manually or via automation.
A fixed setup and teardown around tests ensuring they run in a consistent, isolated state.
A structured environment providing guidelines, tools, and libraries for developing and executing automated tests.
A collection of software and test data used to run and evaluate a program under varying conditions.
The mechanism used to determine whether a test has passed or failed, typically expected results or requirements.
A document describing the scope, approach, resources, and schedule of testing activities for a project.
A model advocating for many fast unit tests, fewer integration tests, and a small number of slow end-to-end tests.
A summary of testing activities and results, communicating findings to stakeholders and informing release decisions.
A software tool that executes tests, reports results, and often provides features like parallelisation, filtering, and integration with CI systems.
The programmatic instructions that automate a test case, executable by a test framework.
A collection of test cases grouped together, typically because they test related functionality or share setup.
A high-level document defining the testing approach, objectives, scope, and success criteria for a project or organisation.
A Java-based testing framework inspired by JUnit and NUnit, popular for its flexibility and parallel execution features.
The intentional limiting of the rate at which requests are processed, often used to protect systems from overload or enforce fair use.
The number of transactions, requests, or operations a system can handle in a given period, typically measured per second.
The practice of allocating a fixed time period to an activity, promoting focus and preventing scope creep.
A specified period after which a system stops waiting for a response and takes alternative action, preventing indefinite hangs.
Transport Layer Security — the successor to SSL, providing encrypted communication between clients and servers over the internet.
A piece of data representing authorisation to access resources, commonly used in modern authentication schemes like OAuth and JWT.
The ability to link requirements to test cases and results, ensuring every requirement is verified and each test has a clear purpose.
A document mapping requirements to test cases, ensuring every requirement has corresponding tests.
A sequence of operations treated as a single unit of work, ensuring atomicity, consistency, isolation, and durability (ACID).
A technique where a model trained on one task is adapted for a different but related task, saving time and data.
A neural network architecture using self-attention mechanisms, foundational to modern language models like GPT and BERT.
A source control branching model where developers integrate frequently into a shared main branch, minimising long-lived branches.
An ordered, immutable collection of elements, often used to group related values.
A statically-typed superset of JavaScript that compiles to plain JavaScript, adding optional types for improved developer experience and reliability.
Final testing performed by end users or business representatives to verify the software meets their requirements before release.
Testing that verifies the graphical user interface behaves as expected, including layout, interactions, and responsiveness.
A modelling error where a model is too simple to capture underlying patterns, resulting in poor performance on both training and new data.
Testing individual units of code in isolation, typically functions or methods, to verify they behave correctly.
A type of machine learning where models find patterns in unlabelled data, discovering structure without predefined outputs.
The percentage of time a system is operational and available, a key measure of reliability and service quality.
Uniform Resource Locator — the address used to access resources on the web, specifying protocol, domain, and path.
Testing that evaluates how easily users can interact with a product to achieve their goals, revealing UX issues.
A brief, informal description of a feature from the user's perspective, typically formatted as: As a [role], I want [goal], so that [benefit].
Universally Unique Identifier — a 128-bit label used to uniquely identify information in computer systems, virtually collision-free.
User Experience — the overall experience a person has when interacting with a product or service, encompassing usability, accessibility, and satisfaction.
The process of confirming that a system meets the intended user needs and business requirements.
A specialised database optimised for storing and querying high-dimensional vectors, commonly used in AI applications for similarity search.
A numerical representation of data (text, images, audio) as a vector in high-dimensional space, capturing semantic meaning.
The amount of work a team completes in a sprint, measured in story points, used for planning future sprints.
The process of evaluating whether a system correctly implements specified requirements, answering: are we building the product right?
A system that records changes to files over time, allowing developers to revert, compare, and collaborate on code.
Increasing capacity by adding more resources (CPU, memory) to a single machine, in contrast to horizontal scaling.
An emulation of a computer system providing the functionality of a physical computer, allowing multiple isolated OS instances on one host.
The process of creating a virtual version of hardware, storage, or network resources, decoupling software from physical infrastructure.
A technique that compares screenshots of a UI over time to detect unintended visual changes, catching CSS and layout bugs.
A fast frontend build tool providing an instant dev server and optimised production builds, popular in modern JavaScript projects.
A Vite-native unit testing framework for JavaScript and TypeScript, offering fast execution and Jest-compatible API.
Testing a system with large volumes of data to check performance and stability.
Virtual Private Cloud — a logically isolated section of a public cloud where you can launch resources in a defined virtual network.
Virtual Private Network — a service that encrypts internet traffic and disguises online identity by routing through a secure server.
A progressive JavaScript framework for building user interfaces, designed to be incrementally adoptable and easy to integrate.
A weakness in a system that can be exploited by an attacker to gain unauthorised access or cause harm.
A sequential software development methodology where each phase must be completed before the next begins, in contrast to iterative approaches.
Web Content Accessibility Guidelines — a set of internationally recognised recommendations for making web content accessible to people with disabilities.
A binary instruction format allowing high-performance execution of code in web browsers, enabling languages like C++ and Rust on the web.
A W3C specification defining a platform and language-neutral wire protocol for automating browsers, underpinning tools like Selenium.
An HTTP callback triggered by an event, allowing one system to notify another in real-time without polling.
A protocol providing full-duplex communication channels over a single TCP connection, ideal for real-time applications like chat and games.
Testing that examines internal code structure, logic paths, and implementation details, requiring knowledge of the source code.
A traditional coding interview format where the candidate solves problems on a whiteboard, testing algorithms and communication.
A simplified visual representation of a user interface's layout, focusing on structure and content rather than styling.
A defined sequence of steps or tasks accomplishing a business process, often automated through tools like GitHub Actions or Jenkins pipelines.
eXtensible Markup Language — a markup language defining rules for encoding documents in a format that is both human and machine-readable.
A query language for selecting nodes from an XML or HTML document, widely used in web scraping and automation to locate elements.
A security vulnerability allowing attackers to inject malicious client-side scripts into web pages viewed by other users.
You Aren't Gonna Need It — a principle discouraging developers from adding functionality until necessary, avoiding speculative complexity.
YAML Ain't Markup Language — a human-readable data serialisation standard commonly used for configuration files and data exchange.
A deployment strategy ensuring a service remains fully available during releases, typically via techniques like blue-green or rolling updates.
A security model requiring all users and devices — inside or outside the network — to be authenticated and authorised before accessing resources.
A security flaw unknown to those who should be interested in mitigating it, offering no time to patch before exploitation.
A machine learning approach where models perform tasks without any task-specific training examples.