Skip to content

2.3-Test types

2.3.1 - Functional Testing

Functional Test

  • Functional testing of a system involves tests that evaluate functions that the system should perform. Functional requirements may be described in work products such as business requirements specifications, epics, user stories, use cases, or functional specifications, or they may be undocumented. The functions are “what” the system should do.

  • Functional tests should be performed at all test levels (e.g., tests for components may be based on a component specification), though the focus is different at each level


2.3.2 - Non-functional Testing

White Box

  • Non-functional testing of a system evaluates characteristics of systems and software such as usability, performance efficiency or security

  • For a classification of software product quality characteristics. Non-functional testing is the testing of “how well” the system behaves.

  • Contrary to common misperceptions, non-functional testing can and often should be performed at all test levels, and done as early as possible

  • Black-box techniques (see section 4.2) may be used to derive test conditions and test cases for nonfunctional testing.


2.3.3 - White Box Testing

White Box

  • White-box testing derives tests based on the system’s internal structure or implementation. Internal structure may include code, architecture, work flows, and/or data flows within the system.

  • White-box test design and execution may involve special skills or knowledge, such as the way the code is built, how data is stored (e.g., to evaluate possible database queries), and how to use coverage tools and to correctly interpret their results.


Confirmation Testing:

re-execute test cases that failed, to ensure that defect has been fixed.

Regression testing:

Confirm that recent changes have not introduced defects to existing functionalities.


2.3.5 - Test Types and Test Levels

Test types:

Test types

Test levels:

Test levels


Last update: 2022-08-29