Test Types

5 minutes 5 Questions

Test Types in the context of ISTQB Foundation Level refer to different categories of testing focused on specific aspects of the software system. These types are based on what is being tested rather than when testing occurs. Functional Testing examines whether the software functions according to specified requirements. It validates that each function works as intended by testing inputs and outputs. Non-Functional Testing assesses attributes that aren't related to specific functions, including performance testing (speed and responsiveness), security testing (vulnerability identification), usability testing (user experience), reliability testing (consistency), and maintainability testing (code quality). Structural Testing, also called white-box testing, focuses on the internal structure and implementation of the software. Testers examine code paths, branches, and logic to ensure all components work correctly together. Change-Related Testing is performed after modifications to the software. This includes regression testing, which verifies that changes haven't negatively affected existing functionality, and confirmation testing, which validates that defects have been fixed. Throughout the Software Development Lifecycle, these test types are applied at different levels: unit testing (individual components), integration testing (component interactions), system testing (complete system), and acceptance testing (user requirements validation). Each test type serves specific purposes within the SDLC. Early application of these tests—particularly during requirements and design phases—helps identify defects quickly and cost-effectively. The combination of functional and non-functional testing ensures comprehensive quality assurance. Effective testing requires a balanced approach using multiple test types appropriate to project context, risk assessment, and organizational standards. Understanding these categories enables testers to design appropriate test cases, allocate testing resources efficiently, and ensure thorough software quality validation throughout development.

Test Types in ISTQB CTFL: Testing Throughout SDLC

Test Types in ISTQB CTFL: A Comprehensive Guide


Why Test Types Are Important


Understanding different test types is fundamental to the ISTQB CTFL certification because it demonstrates that you recognize different testing approaches serve different purposes throughout the software development lifecycle. Test types help ensure:


  • Comprehensive coverage: Different types of testing catch different categories of defects
  • Risk mitigation: Each type targets specific risk areas in the software
  • Quality assurance: Combined testing types provide confidence in the final product
  • Efficient resource allocation: Knowing which test type to apply prevents wasted effort

What Are Test Types?


Test types are classifications of testing based on what is being tested or what the test aims to achieve, rather than when in the lifecycle they occur. The main test types defined by ISTQB are:


1. Functional Testing


Definition: Testing whether the system functions as specified; evaluates what the system does.


  • Focus: Features, functionality, and business requirements
  • Examples: Testing login functionality, data validation, report generation
  • Scope: Can apply at unit, integration, system, and acceptance levels
  • Question style: "Which test would verify that users can successfully log in?"

2. Non-Functional Testing


Definition: Testing system attributes that are not about specific functions; evaluates how the system performs.


  • Key areas include:
  • Performance testing - Response time, throughput, resource usage
  • Security testing - Vulnerability assessment, penetration testing
  • Usability testing - User experience, interface clarity
  • Reliability testing - System stability over time
  • Portability testing - Functionality across different platforms
  • Maintainability testing - Code structure and documentation quality
  • Question style: "Which test verifies that the system maintains performance under high load?"

3. White-Box Testing (Structural Testing)


Definition: Testing based on internal code structure and logic.


  • Focus: Code paths, branches, statements, and conditions
  • Requirements: Tester needs knowledge of internal code structure
  • Examples: Statement coverage, branch coverage, path coverage
  • Typically performed at: Unit testing and sometimes integration level
  • Question style: "What type of testing ensures all code branches are executed?"

4. Black-Box Testing (Behavioral Testing)


Definition: Testing without knowledge of internal code structure; focuses on inputs and outputs.


  • Focus: Functionality against specifications
  • Requirements: Tester only needs to know requirements and expected behavior
  • Examples: Boundary value analysis, equivalence partitioning, decision table testing
  • Typically performed at: Integration, system, and acceptance levels
  • Question style: "Which test type doesn't require knowledge of how the code is written?"

How Test Types Work in Practice


Test types are not performed in isolation but work together throughout the SDLC:


Unit Testing Level

Primarily white-box testing where developers test individual components using knowledge of the code structure.


Integration Testing Level

Mix of white-box and black-box testing to verify components work together correctly.


System Testing Level

Primarily black-box testing of the complete system including both functional (does it work?) and non-functional (does it perform well?) aspects.


User Acceptance Testing Level

Business-focused black-box testing verifying the system meets business needs.


Key Distinctions to Remember


AspectFunctional TestingNon-Functional Testing
What it testsWhat the system doesHow well the system performs
ExamplesLogin, data processing, calculationsSpeed, security, usability
Primary focusFeatures and requirementsQuality attributes

AspectWhite-Box TestingBlack-Box Testing
Code knowledge neededYes - internal structure requiredNo - only input/output
Tester typeUsually developersQA testers or business analysts
What's testedCode logic and pathsSpecified behavior
Coverage focusStatement, branch, path coverageRequirement coverage

Exam Tips: Answering Questions on Test Types


Tip 1: Identify the Testing Characteristic

Read the question carefully to identify whether it describes:

  • WHAT is being tested → Likely Functional or Non-Functional
  • HOW it's being tested (code knowledge involved?) → Likely White-Box or Black-Box
  • WHY or WHEN it's done → Likely about Test Levels or Test Types

Tip 2: Match Keywords to Test Types

Functional Testing keywords: features, functions, requirements, business logic, "what it does"


Non-Functional Testing keywords: performance, load, security, usability, reliability, speed, "how well it performs"


White-Box Testing keywords: code structure, internal logic, branch coverage, statement coverage, developer, code paths


Black-Box Testing keywords: input/output, external behavior, requirements, tester (not developer), doesn't know code structure


Tip 3: Avoid Common Confusion Traps


Trap 1: Confusing Test Levels with Test Types

  • Test Levels: Unit, Integration, System, Acceptance (WHEN testing occurs)
  • Test Types: Functional, Non-Functional, White-Box, Black-Box (WHAT or HOW testing is done)
  • Example: "System testing" is a level; "functional testing" is a type that can occur at system level

Trap 2: Assuming white-box testing only happens at unit level

  • White-box testing can occur at integration and system levels too
  • However, it's most common at unit level

Trap 3: Thinking non-functional testing only applies to the whole system

  • Non-functional attributes should be tested at appropriate levels
  • Performance might be tested at unit, integration, and system levels

Tip 4: Use the Elimination Method

If unsure between answers:

  • Eliminate obviously wrong test types first
  • Focus on whether the question asks about functionality, performance, or testing approach
  • Check if code structure knowledge is implied

Tip 5: Real-World Scenario Questions

For scenario-based questions:

  • "A developer tests individual functions individually" → White-box testing at unit level
  • "QA testers verify the system handles 1000 concurrent users" → Non-functional (performance) testing
  • "Testers verify that user registration form validates email addresses correctly" → Functional (black-box) testing
  • "Code analysis ensures all loops are executed at least once" → White-box testing (branch coverage)

Tip 6: Remember the Purpose

When answering exam questions, remember each test type has a specific purpose:

  • Functional: Verify requirements are met
  • Non-Functional: Verify quality attributes are met
  • White-Box: Verify code quality and logic correctness
  • Black-Box: Verify behavior matches specification without knowing internals

If the question asks why a particular test type is important, think about its unique purpose.


Tip 7: Watch for "Most Appropriate" Questions

When a question asks "Which is most appropriate:"

  • Multiple answers might technically be correct
  • Choose the test type that most directly addresses the problem
  • Example: "Which test type would catch the most defects in a complex algorithm?" → White-box (branch coverage) is more appropriate than black-box because it specifically tests code logic

Tip 8: Combination Questions

Some questions might involve multiple test types:

  • Understand that all types are typically used in a complete testing strategy
  • Recognize when a question asks about integrated testing approach vs. a specific test type
  • If asked to "select all that apply," remember that functional and non-functional testing happen at every level

Tip 9: Know the Test Type Definitions Precisely

The exam expects exact understanding:

  • Functional testing: "Evaluates what the system does" or "Tests against functional requirements"
  • Non-functional testing: "Evaluates how well the system performs" or "Tests quality attributes"
  • White-box testing: "Based on knowledge of internal structure" or "Tests code paths and logic"
  • Black-box testing: "Based on external specifications" or "Without knowledge of internal implementation"

Tip 10: Context Matters

Pay attention to context clues:

  • If mention of "code coverage": Definitely white-box
  • If mention of "user" or "business requirements": Likely functional or black-box
  • If mention of "performance, load, security": Definitely non-functional
  • If mention of "developer or internal logic": Likely white-box

Practice Question Examples


Example 1: "A test team verifies that when a user enters an invalid email in the registration form, an error message appears. What type of testing is this?"

Answer: Functional, Black-Box testing. The testers verify the system does what it should (functional) without needing to know how the validation code works (black-box).


Example 2: "A developer uses a code coverage tool to ensure every branch in the discount calculation module is executed. What testing approach is being used?"

Answer: White-Box testing. The developer has internal knowledge of code structure (branches) and is testing code paths.


Example 3: "Testing is performed to ensure the system can handle 500 simultaneous user requests. What type of testing is this?"

Answer: Non-Functional testing (specifically, performance/load testing). The focus is on how well the system performs under stress, not on specific features.


Example 4: "Which testing approach is most appropriate when the testers have no access to the source code?"

Answer: Black-Box testing. Black-box testing is designed specifically for situations where internal code structure is not available or known.


Summary


Test types are essential to the ISTQB CTFL curriculum because they represent different perspectives on quality assurance. Success on exam questions requires:


  • Understanding clear definitions of each test type
  • Recognizing keyword patterns that indicate specific test types
  • Distinguishing test types from test levels
  • Applying contextual reasoning to scenario-based questions
  • Knowing when and why each test type is appropriate

Focus on the fundamental principle: Each test type answers a different question about software quality, and a comprehensive testing strategy uses all of them throughout the development lifecycle.

Test mode:

CTFL - Test Types Example Questions

Test your knowledge of Test Types

Question 1

A team is testing an online booking system. They perform three activities: (A) verify that code changes to the payment module haven't broken the search feature, (B) check whether the booking confirmation email contains all required fields, and (C) measure how many concurrent users the system supports before degrading. A junior tester classifies all three as functional testing. Which activity is correctly classified as functional testing?

Question 2

A team is testing a mobile fitness app. They want to verify that the step-counting algorithm produces accurate results when the user walks, runs, or climbs stairs. Which test type best applies to this testing activity?

Question 3

A team is testing a library management system. They discover that when a user searches for a book by title, the system returns books by author instead. Which test type is most relevant to this finding?

More Test Types questions
57 questions (total)