Bird
Raised Fist0
Testing Fundamentalstesting~8 mins

Equivalence partitioning in Testing Fundamentals - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Equivalence partitioning
Folder Structure for Equivalence Partitioning Test Framework
  equivalence-partitioning-testing/
  ├── tests/
  │   ├── test_input_partitions.py
  │   └── test_output_partitions.py
  ├── partitions/
  │   ├── input_partitions.py
  │   └── output_partitions.py
  ├── utils/
  │   └── partition_helpers.py
  ├── config/
  │   └── config.yaml
  ├── reports/
  └── conftest.py
  
Test Framework Layers
  • Partitions Layer: Defines equivalence classes for inputs and outputs. For example, valid and invalid input ranges.
  • Tests Layer: Contains test cases that use partitions to select representative test inputs from each class.
  • Utilities Layer: Helper functions to generate test data from partitions and validate results.
  • Configuration Layer: Holds environment settings, test parameters, and credentials if needed.
  • Reports Layer: Stores test execution reports and logs.
Configuration Patterns

Use a config.yaml file to define:

  • Environment details (e.g., dev, test, prod)
  • Test parameters like input value ranges
  • Output expectations for each partition

Load configuration in conftest.py to share settings across tests.

Test Reporting and CI/CD Integration
  • Use pytest built-in reporting with --junitxml=reports/report.xml for XML reports.
  • Integrate with CI tools like GitHub Actions or Jenkins to run tests on each commit.
  • Publish reports to CI dashboards for quick feedback.
Framework Design Principles for Equivalence Partitioning
  1. Clear Partition Definitions: Define input and output partitions explicitly to avoid overlap and gaps.
  2. Representative Test Selection: Choose one or two values from each partition to reduce test count but maintain coverage.
  3. Reusable Partition Code: Keep partition logic separate and reusable for different tests.
  4. Configurable Partitions: Allow partitions to be updated via config files without changing code.
  5. Automated Reporting: Ensure test results clearly show which partitions passed or failed.
Self Check Question

Where in this folder structure would you add a new partition for a different input type?

Key Result
Organize tests by defining clear input/output partitions, selecting representative values, and separating partition logic for reuse.

Practice

(1/5)
1. What is the main purpose of equivalence partitioning in software testing?
easy
A. To test every possible input value individually
B. To write code for automated testing
C. To divide input data into groups where test cases can be reduced
D. To check the user interface design

Solution

  1. Step 1: Understand equivalence partitioning concept

    Equivalence partitioning divides input data into groups where all inputs in a group behave similarly.
  2. Step 2: Identify the main goal

    The goal is to reduce the number of test cases by testing one value from each group instead of all values.
  3. Final Answer:

    To divide input data into groups where test cases can be reduced -> Option C
  4. Quick Check:

    Equivalence partitioning = reduce test cases [OK]
Hint: Group inputs to test fewer cases efficiently [OK]
Common Mistakes:
  • Thinking it tests every input value
  • Confusing with UI testing
  • Assuming it is about coding tests
2. Which of the following is the correct way to apply equivalence partitioning for an input field that accepts ages from 18 to 60?
easy
A. Test ages 17, 18, 30, 60, 61
B. Test ages 18, 30, 60 only
C. Test ages 0, 18, 60, 100
D. Test ages 18, 19, 20, 21

Solution

  1. Step 1: Identify equivalence partitions

    Partitions are: below valid range (<18), valid range (18-60), above valid range (>60).
  2. Step 2: Select test values from each partition

    Choose one value from each: 17 (below), 18 and 60 (edges of valid), 30 (inside valid), 61 (above).
  3. Final Answer:

    Test ages 17, 18, 30, 60, 61 -> Option A
  4. Quick Check:

    Test one from each partition [OK]
Hint: Pick one value from each input group including edges [OK]
Common Mistakes:
  • Testing only valid values
  • Ignoring boundary values
  • Testing too many values inside one partition
3. Given the input field accepts numbers 1 to 100, which test inputs represent valid equivalence partitions?
medium
A. [50, 75, 100]
B. [0, 1, 50, 100, 101]
C. [-1, 0, 101]
D. [1, 50, 100]

Solution

  1. Step 1: Define partitions

    Partitions are: below valid (<1), valid (1-100), above valid (>100).
  2. Step 2: Check which inputs cover all partitions

    [0, 1, 50, 100, 101] includes 0 (below), 1 and 100 (edges valid), 50 (inside valid), 101 (above).
  3. Final Answer:

    [0, 1, 50, 100, 101] -> Option B
  4. Quick Check:

    Inputs cover all partitions [OK]
Hint: Include below, inside, and above range values [OK]
Common Mistakes:
  • Missing values outside valid range
  • Testing only inside range
  • Ignoring boundary values
4. You have a form field that accepts a password length from 8 to 12 characters. Which test set correctly applies equivalence partitioning and fixes the error in this set: [7, 8, 10, 12, 13]?
medium
A. [7, 8, 10, 12, 13]
B. [8, 10, 12]
C. [7, 8, 12, 13]
D. [6, 8, 10, 12, 14]

Solution

  1. Step 1: Identify partitions and errors

    Partitions: below valid (<8), valid (8-12), above valid (>12). The original set misses some below and above values.
  2. Step 2: Fix test set to cover all partitions

    [6, 8, 10, 12, 14] adds 6 (below), 14 (above), and includes valid 8, 10, 12, covering all partitions correctly.
  3. Final Answer:

    [6, 8, 10, 12, 14] -> Option D
  4. Quick Check:

    Test covers below, valid, and above partitions [OK]
Hint: Include clear below and above boundary values [OK]
Common Mistakes:
  • Missing values outside valid range
  • Not testing boundary values
  • Using only valid inputs
5. A software accepts input scores from 0 to 100. Using equivalence partitioning, which test inputs should you select to cover all partitions if the input is extended to accept decimal values between 0.0 and 100.0?
hard
A. [ -1, 0.0, 50.5, 100.0, 101 ]
B. [ 0, 25, 50, 75, 100 ]
C. [ 0.0, 50.0, 100.0 ]
D. [ -0.1, 0, 50, 100, 100.1 ]

Solution

  1. Step 1: Define partitions including decimals

    Partitions: below valid (<0.0), valid (0.0 to 100.0), above valid (>100.0). Decimals allowed inside valid range.
  2. Step 2: Choose test inputs covering all partitions

    [ -1, 0.0, 50.5, 100.0, 101 ] includes -1 (below), 0.0 (valid edge), 50.5 (valid decimal), 100.0 (valid edge), 101 (above).
  3. Final Answer:

    [ -1, 0.0, 50.5, 100.0, 101 ] -> Option A
  4. Quick Check:

    Test inputs cover all partitions including decimals [OK]
Hint: Include decimals and boundary values in partitions [OK]
Common Mistakes:
  • Ignoring decimal values inside valid range
  • Missing values outside valid range
  • Testing only integers
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard