<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Test Types on MinimumCD Practice Guide</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/</link><description>Recent content in Test Types on MinimumCD Practice Guide</description><generator>Hugo</generator><language>en</language><atom:link href="https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/index.xml" rel="self" type="application/rss+xml"/><item><title>Component Tests</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/component/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/component/</guid><description>&lt;figure&gt;&lt;img src="https://beyond.minimumcd.org/images/testing/component-test.svg"&#10;&#9;&#9;&#9;alt="Component test pattern: a test actor hits the public interface of a component boundary. Inside the boundary, real internal modules (API Layer, Business Logic, Data Adapter) are wired together. Outside the boundary, a Database and External API are represented by test doubles."&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;&#10;&lt;p&gt;Verification of a coherent structural unit (such as an entire microservice, UI component, or self-contained subsystem) against its specific contract and internal logic, while keeping interactions beyond that component&amp;rsquo;s boundary mocked or stubbed.&lt;/p&gt;</description></item><item><title>Contract Tests</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/contract/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/contract/</guid><description>&lt;figure&gt;&lt;img src="https://beyond.minimumcd.org/images/testing/contract-test.svg"&#10;&#9;&#9;&#9;alt="Consumer-driven contract flow: consumer team runs a component test against a provider test double, generating a contract artifact. The provider team runs a verification step against the real service using the consumer contract. Both sides discover different things: consumers check for fields and types they depend on; providers check they have not broken any consumer."&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;&#10;&lt;p&gt;Verification that two separate systems (such as an API provider and its consumers, or a message publisher and subscriber) adhere to a shared, agreed-upon formal specification, the &amp;ldquo;contract&amp;rdquo;, without requiring both services to run simultaneously in an integrated environment.&lt;/p&gt;</description></item><item><title>End-to-End Tests</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/e2e/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/e2e/</guid><description>&lt;figure&gt;&lt;img src="https://beyond.minimumcd.org/images/testing/e2e-test.svg"&#10;&#9;&#9;&#9;alt="End-to-end test scope spectrum. Narrow scope: a test drives a real service that calls a real database. Full-system scope: a browser drives a real frontend, which calls a real backend, which calls a real database. All components are real at every scope - no test doubles."&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;&#10;&lt;p&gt;Verification of a complete end-to-end user or business transaction through the entire deployed application stack, matching the perspective and experience of an actual user or external consumer.&lt;/p&gt;</description></item><item><title>Integration Tests</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/integration/</guid><description>&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;&#10;&lt;p&gt;Verification that two or more distinct architectural subsystems or external dependencies interact correctly across their transport layer and data boundaries.&lt;/p&gt;&#10;&lt;h2 id="scope--boundaries"&gt;Scope &amp;amp; Boundaries&lt;/h2&gt;&#10;&lt;p&gt;Broader than a component test because it explicitly validates communication with real external systems (such as a database, message queue, cache, or filesystem), but narrower than a full end-to-end test because it targets a specific integration boundary rather than complete multi-service user workflows.&lt;/p&gt;&#10;&lt;h2 id="core-characteristics"&gt;Core Characteristics&lt;/h2&gt;&#10;&lt;p&gt;Detects driver/dialect mismatches, schema serialization issues, connection pooling misconfigurations, and ORM/SQL query errors that mock-heavy tests overlook.&lt;/p&gt;</description></item><item><title>Static Analysis</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/static/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/static/</guid><description>&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;&#10;&lt;p&gt;Static analysis (also called static testing) evaluates non-running code against rules for known good practices, inspecting source, configuration, and &lt;a href="https://beyond.minimumcd.org/docs/reference/glossary/#dependency"&gt;dependency&lt;/a&gt; manifests to catch errors, complexity, and security issues before the code ever runs.&lt;/p&gt;&#10;&lt;h2 id="scope--boundaries"&gt;Scope &amp;amp; Boundaries&lt;/h2&gt;&#10;&lt;p&gt;Analysis runs against source code, configuration files, and dependency manifests at rest - no application starts and no &lt;a href="https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/glossary/#test-double"&gt;test doubles&lt;/a&gt; are needed. Scope is the entire codebase, not a single unit, component, or transaction.&lt;/p&gt;&#10;&lt;h2 id="characteristics"&gt;Characteristics&lt;/h2&gt;&#10;&lt;p&gt;Seconds-scale execution (the fastest test category), fully deterministic, and codebase-wide scope, with no external dependencies except the network calls a dependency scanner makes to a vulnerability database.&lt;/p&gt;</description></item><item><title>Smoke Tests</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/smoke/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/smoke/</guid><description>&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;&#10;&lt;p&gt;A lightweight, automated verification run executed immediately after code is deployed to a live target environment (staging, pre-production, or production) to verify that the environment is healthy, operational, and capable of handling traffic before fully shifting user load.&lt;/p&gt;&#10;&lt;h2 id="scope--boundaries"&gt;Scope &amp;amp; Boundaries&lt;/h2&gt;&#10;&lt;p&gt;Strictly limited to high-level system vitality. It checks that critical infrastructure components (processes, routing, database connectivity, secret access, core endpoints) are alive and reachable. It explicitly avoids deep workflow testing, exhaustive edge-case permutations, or long-running operational flows.&lt;/p&gt;</description></item><item><title>Unit Tests</title><link>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/unit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/test-types/unit/</guid><description>&lt;figure&gt;&lt;img src="https://beyond.minimumcd.org/images/testing/unit-test.svg"&#10;&#9;&#9;&#9;alt="Solitary unit test: test actor sends input to a Unit Under Test; all collaborators are replaced by test doubles. Sociable unit test: test actor sends input to a Unit Under Test that uses real in-process collaborators; only external I/O is replaced by a test double."&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;&#10;&lt;p&gt;Verification of the smallest testable piece of code—typically a single function, method, or class—in complete isolation from the rest of the application, network, file system, or external services. &lt;a href="https://beyond.minimumcd.org/docs/foundations/testing-fundamentals/glossary/#test-double"&gt;Test doubles&lt;/a&gt; are used where needed.&lt;/p&gt;</description></item></channel></rss>