Career upgrade: Learn practical AI skills for better jobs and higher pay.
Level up

2.4 Test Types: Functional, Non-Functional, White-Box, and Change-Related

Key Takeaways

  • A test type groups testing by objective, such as functional behavior, quality characteristics, structure, or effects of changes.
  • Functional testing checks what the test object does according to specified or implied behavior.
  • Non-functional testing evaluates quality characteristics such as performance, usability, reliability, security, portability, and maintainability.
  • White-box testing derives tests from internal structure or implementation.
  • Change-related testing includes confirmation testing and regression testing.
Last updated: May 2026

Type Is About Objective

A test type is a group of test activities with a specific objective. The main CTFL categories are functional testing, non-functional testing, white-box testing, and change-related testing. These types can occur at more than one test level.

Functional testing checks what the test object does. It is based on functions, features, business rules, user stories, use cases, workflows, and requirements. Examples include checking whether a discount is calculated correctly, a search returns matching results, or a user can submit a claim.

Non-functional testing checks how well the test object behaves or which quality characteristics it has. This includes performance efficiency, reliability, usability, accessibility, security, compatibility, portability, and maintainability. A feature can be functionally correct but non-functionally unacceptable if it is too slow or hard to use.

Test typePrimary basisExample question
FunctionalRequirements, behavior, business rulesDoes the tax calculation produce the right amount?
Non-functionalQuality characteristics and constraintsDoes the page load within the target time?
White-boxInternal structure or implementationHave important branches or paths been covered?
Change-relatedChanges and defect fixesDid the fix work and did it break anything else?

White-box testing derives tests from internal structure. The structure may be code, architecture, data flow, control flow, configuration, or model structure. Coverage measures such as statement coverage and branch coverage are white-box ideas because they depend on internal structure.

Change-related testing addresses changes. Confirmation testing checks whether a reported defect has been fixed. Regression testing checks whether unchanged areas still work after a change. These are not the same, although they often happen together after a fix.

The same test can sometimes support more than one type, but CTFL questions usually have a best answer. For example, a test that checks whether a screen reader can navigate a form is non-functional because accessibility is the quality characteristic. A test that checks whether the submit button stores the correct form data is functional.

A common trap is to treat non-functional as less important or only late-stage. Non-functional requirements can drive architecture and should be considered early. Performance, security, accessibility, and reliability defects can be expensive to fix late.

Another trap is to confuse white-box with developer-only testing. Developers often perform white-box testing, but the defining feature is use of internal structure, not the person's job title. A tester who designs tests from code coverage data is performing white-box testing.

For exam answers, first ask: what objective is being evaluated? Correct behavior points to functional. Quality attributes point to non-functional. Internal structure points to white-box. A fix or side effect of change points to change-related testing.

Test Your Knowledge

A test checks whether a report page loads within two seconds for 1,000 concurrent users. Which test type is most directly represented?

A
B
C
D
Test Your KnowledgeMulti-Select

Which statements correctly describe test types?

Select all that apply

Functional testing checks specified or implied behavior.
White-box testing derives tests from internal structure.
Change-related testing includes confirmation and regression testing.
Non-functional testing can only be performed after acceptance testing.