Testing terms
Tests are the safety net that lets you refactor without fear and ship without dread. This category covers unit, integration, and end-to-end testing strategies, test doubles, coverage metrics, TDD and BDD approaches, and the tooling ecosystem across languages. A well-tested codebase is not slower to build — it is faster to evolve.
More on Testing
History
Software testing emerged informally alongside early programming in the 1950s–60s, when developers manually verified output against expected results. The discipline formalized in the 1970s–80s as structured methodologies like unit testing and integration testing became standard practice, driven by the need to manage complexity in larger systems. The 1990s–2000s saw the rise of automated testing frameworks (JUnit in Java, xUnit derivatives) and test-driven development (TDD), popularized by Kent Beck and the agile movement, which shifted testing leftward in the development cycle. The 2010s brought broader adoption of continuous integration/continuous deployment (CI/CD) pipelines, property-based testing, and contract testing, alongside formalization of the test pyramid and testing matrix concepts. Today, testing spans unit, integration, end-to-end, and specialty domains (performance, security, visual regression), with modern teams treating test infrastructure as a first-class concern and using mutation testing and snapshot techniques to validate test quality itself.
Key concepts
- Unit Testing
- Test Naming Conventions
- Test Fixtures & setUp() Best Practices
- Test Isolation Strategies
- Test-Driven Development (TDD)
- Integration Testing
- Test Pyramid
- Code Coverage
Best references
-
Test Driven Development: By Example Kent Beck's foundational book covering TDD principles, test-first workflows, and practical patterns. Essential reference for understanding TDD methodology and its application across languages including PHP.
-
PHPUnit Documentation Official reference for PHP's de facto unit testing framework. Covers assertions, test doubles, fixtures, data providers, and test isolation—directly applicable to PHP testing practices.
-
The Test Pyramid Martin Fowler's widely-cited article defining the test pyramid concept (unit, integration, end-to-end). Provides strategic framework for balancing test types and costs.
-
Consumer-Driven Contracts and PACT Official Pact Foundation documentation for contract testing methodology. Authoritative source for consumer-driven contract testing patterns and cross-language tooling.
-
Behavior-Driven Development (BDD) and Behat Official Behat documentation implementing BDD for PHP. Covers Gherkin syntax, acceptance testing, and behavior-driven development practices with concrete PHP examples.
Typed relationships here
Edges touching a Testing term. How edges work →
- Test Pyramid Contains Acceptance Testing / BDD (Behat) 13h
- API Contract Testing Alternative to Integration Testing 13h
- Test Pyramid Often seen in Continuous Integration (CI) 13h
- Test Pyramid Contains Integration Testing 13h
- Test Pyramid Contains End-to-End Testing 13h