liveBook · Manning

Functional testing

As explained in Functional Design and Architecture: Examples in Haskell

Testing that evaluates specified functionality or an isolated unit of application logic without invoking real external services.

Functional testing validates specified functionality or an isolated subsystem, module, or function without calling real external services. Its environmental isolation makes tests more reliable while still allowing black-box or grey-box approaches. section 15.1

Use functional testing as a boundary between requirement validation and broader system behavior:

  • Test functional requirements generally, or focus on a separate piece of logic such as a subsystem, module, or function. section 15.1
  • Contrast integration testing, which exercises integrated application parts and real subsystems to expose behavior at subsystem boundaries. section 15.1
  • Treat property-based testing as a functional-testing technique when generated data checks invariants and mathematical properties. section 15.1

A game as a functional-testing target

A console game such as Labyrinth provides a domain for testing specified behavior. Tests can validate the game’s functionality while keeping external services out of the test environment. section 15.0 section 15.1

How Functional Design and Architecture: Examples in Haskell covers it

How deep it goes
Defines scope, isolation, and testing boundaries, but does not provide a detailed execution procedure or implementation walkthrough.
Examples
Uses the Labyrinth console game as a domain example and frames subsystems, modules, and functions as possible test targets.
What it assumes
Assumes specified functional requirements or contracts and distinguishes separate logic from integrated application parts.
What you can do after
Evaluate/understand it by distinguishing isolated functionality tests from integrated tests involving real subsystems and services.
How it connects
Connects functional testing with black-box testing, grey-box testing, integration testing, property-based testing, and unit testing.

Also explained in

Compare how 2 books explain functional testing →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Functional Design and Architecture: Examples in Haskell. The section links point to the parts of the book it draws on.