Activity (50)
Club Topic (28)
Course (39)
Term (961)
Insight (720)
Certification (91)
Collection (296)
Session (2153)
Moment (5355)
Newsletter Issue (281)
News (344)
Link (3731)
Solution (81)
The CSSOM (Cascading Style Sheets Object Model) is the browser's runtime representation of all the CSS applied to a page. It contains the styling rules that determine how elements should appear, including properties such as colour, size, visibility, layout, and positioning. The browser combines the CSSOM with the DOM to build the Render Tree, which is used to paint the page on screen.For software testers, the CSSOM explains why an element can exist in the DOM but still be invisible or impossible to interact with. Properties such as display: none, visibility: hidden, opacity: 0, or pointer-events: none affect how elements behave without changing the DOM structure. Understanding the CSSOM helps diagnose automation failures where an element is present but not visible or clickable.
Shadow DOM is a web standard that allows a component to have its own isolated DOM tree, separate from the main document. It is one of the core technologies behind Web Components and is designed to encapsulate a component's internal structure, styles, and behaviour. This isolation prevents CSS and JavaScript outside the component from accidentally affecting its internals, while also preventing the component's implementation details from leaking into the rest of the page.
A Shadow DOM is attached to a host element through a shadow root, which can be either open or closed. An open shadow root can be accessed and inspected through JavaScript, while a closed shadow root hides its internal DOM from external scripts, making direct inspection and traversal impossible through standard browser APIs.
For software testers, Shadow DOM affects how automated tests locate and interact with elements. Standard locator strategies, such as CSS selectors or XPath, cannot directly access elements inside a closed shadow root. This means automation failures may be caused by component encapsulation rather than incorrect locators or timing issues. In many cases, improving testability involves architectural decisions, such as exposing open shadow roots in test environments, providing dedicated test APIs, or testing behaviour at a higher integration level instead of attempting to bypass encapsulation.
The Document Object Model (DOM) is a programming interface for web documents. When a web browser parses an HTML document, it creates a tree-like hierarchy of objects called nodes. This live representation of the document enables programming languages such as JavaScript to dynamically read, modify, and update the page's content, structure, and attributes. Why it matters in software testing: Understanding the DOM is foundational for modern web testing, particularly in these areas:
 Test Automation: UI automation frameworks (like Playwright, Cypress, and Selenium) interact directly with the DOM. Testers use the DOM's structure to create locators (like CSS Selectors or XPath) to find buttons, text fields, and links to interact with during automated tests.Â
Debugging and Exploratory Testing: Testers frequently use the "Elements" tab in browser Developer Tools to inspect the DOM. This helps investigate UI bugs, check hidden element states, or verify that the correct data is being rendered.Â
Accessibility (a11y) Testing: The DOM contains the attributes (such as ARIA roles, alt text, and tab indexes) that Accessibility Tree relies on. Inspecting the DOM allows testers to verify these accessibility tags are present and correct.Â
Timing and Synchronization: Many automation flakiness issues occur because a script tries to interact with an element before it has been fully rendered or attached to the DOM. Recognizing how the DOM updates dynamically helps testers write more robust wait strategies.Â
Modern web applications frequently update the DOM dynamically in response to user actions or API responses without reloading the page. Testers need to understand these changes to create stable locators and reliable synchronization strategies.Â
Definition: A mnemonic for choosing which test cases to write and in what order, with each letter standing for a type of case: Zero, One, Many (or more complex), Boundary behaviours, Interface definition, Exercise exceptional behaviour, and Simple scenarios with simple solutions. Tests are added one behaviour at a time, starting from the simplest case.So what? It gives developers, particularly those practising TDD, a structured way to decide where to start and what to test next, so test cases are built up gradually rather than chosen chaotically.Example: Testing a shopping cart class: a Zero case checking an empty cart has a total of nil, a One case adding a single item and asserting the total matches its price, a Many case adding several items and asserting the summed total, a Boundary case at the maximum allowed quantity, an Interface case raising an exception when a non-product is added, an Exceptional case rejecting a duplicate item, and a Simple scenario confirming one item still prices correctly.
Definition: Everything built around an AI model to make it usable and reliable for software development: the context feeding, tooling, constraints, verification loops, and orchestration that wrap the raw model. Capability in AI-based development comes from the model plus this harness, not from the model alone.So what? It reframes AI-assisted development as a systems problem rather than a question of which model to pick, putting the emphasis on the scaffolding around the model as the main source of reliable, useful output.Example: A coding agent set up to fix a failing test, where the model does the reasoning but the harness supplies the relevant files and test output, enforces the project's coding standards, runs the test suite after each change, and gates risky actions like commits behind human approval.See also: Harness Engineering https://www.ministryoftesting.com/software-testing-glossary/harness-engineering
Network throttling testing is the practice of intentionally slowing down internet connection speeds to simulate how a web application or mobile app performs under slow, latent, or unreliable network conditions.It can be part of performance testing or conducted separately.Developers and QEs use this technique to see what end-users with poor coverage or slower mobile connections (such as 3G or slow 4G) will experience, rather than just relying on the ultra-fast speeds typically available in a corporate office.
A resource available to any person, built up and curated by the people of the MoTaverse. It thrives and expands through actions like writing articles, creating and continuing discussions on The Club, creating moments and memes that share insights, and thanking each other. Its action makes it possible to either give or earn stars.
Behaviour where the same input can produce different outputs across multiple runs. LLMs exhibit this by design, requiring testers to shift from exact-match checks to presence/absence assertions. So what? Non-determinism means a regression test can "fail" without the answer being wrong — a fundamental difference from testing traditional software. Example: Running the same summarisation prompt twice may return the same meaning in different words. Editorial note: This definition has been inferred from how the term was used in the source material.
"The maximum time you expect your application to take to respond to a specific request or action." — Demi Van Malcot
A reference point used to decide whether a test has passed or failed. For LLM testing this becomes unreliable because multiple valid outputs can exist for the same input. So what? The absence of a stable oracle is one of the central challenges of AI testing. Techniques like metamorphic testing exist partly to work around it by checking consistency rather than correctness. Example: "Who was the first president of the USA?" has a clear oracle. A summarisation request does not. "The 'expected result' can be determined, but will always have some ambiguity. Comparing it to the 'actual result' won't be as straightforward as you are used to." — Demi Van Malcot
A machine learning technique that uses layered neural networks to find patterns across large volumes of data. LLMs are built on deep learning to make connections across billions of words and generate contextually relevant responses. So what? LLMs work by statistical pattern-matching rather than reasoning — a foundational insight for anyone designing tests. Example: An LLM predicts the most statistically likely next word or phrase, not the most factually accurate one.
"They are trained on billions of words from different sources. Using deep learning, they make connections between all the words they are trained on to answer whatever questions we ask of them." — Demi Van Malcot
A category of AI model that produces new content: text, images, code, or other outputs, in response to input prompts, rather than returning a fixed or pre-programmed answer. LLMs are the most widely used type of generative AI. So what? Because outputs are generated fresh each time, the testing approaches used for traditional deterministic software don't transfer cleanly. Concepts like "expected result" and pass/fail need to be rethought. Example: ChatGPT, Claude, Bard, and Copilot are all generative AI applications built on large language models.
"It won't give an answer based on what is logically correct, but on what is statistically most likely. The sentences can be completely correct, while the answer is completely wrong." — Demi Van Malcot
A systematic skew in a dataset that causes a model trained on it to produce outputs that are consistently inaccurate, unfair, or unrepresentative for certain inputs, groups, or contexts. Data bias can originate from how data was collected, labelled, filtered, or weighted and is often invisible until the model is tested across a broad range of conditions.So what? Data bias is one of the most consequential quality risks in AI systems because it is baked in before a line of application code is written. Testing for it requires deliberate coverage of underrepresented groups, edge cases, and real-world distributions, not just happy-path inputs.Examples: A hiring tool trained predominantly on CVs from male candidates learns to downrank applications from women, not because of an explicit rule but because of patterns in the training data. An image recognition model trained on photographs taken in high-income countries performs poorly on images from lower-income contexts where lighting conditions, camera quality, and subject framing differ.
With servers in >250 cities around the world, check your site for localization problems, broken GDPR banners, etc.
Live July 21: Build AI agents, self-heal automation & cut regression time by 90%. Register free
See autonomous QA in action with BearQ—from exploration to test generation. Trial access included.
Manage your entire QA lifecycle in one place. Sync Jira, automate scripts, and use AI to accelerate your testing.