Equivalence Partitioning in Software Testing

🔹 What is Equivalence Partitioning?

Equivalence Partitioning (EP) is a Black Box Testing technique where input values are divided into logical groups (partitions), and only one value from each group is tested. The assumption is that all values in a partition behave the same way, so testing one value represents the entire group.

📌 Example: If an input field accepts numbers from 1 to 100, we divide the input into three partitions:

  • Invalid Partition (Below Range): ≤ 0
  • Valid Partition: 1 – 100
  • Invalid Partition (Above Range): ≥ 101
    Instead of testing all 100 valid values, we test one value from each partition (e.g., 0, 50, 101).

🔹 Why Use Equivalence Partitioning?

Reduces the Number of Test Cases → No need to test every possible input.
Covers a Wide Range of Values → Ensures different cases are tested.
Detects Input Validation Issues → Quickly finds incorrect handling of input.
Useful for UI & Form Testing → Validates input fields efficiently.


🔹 Example Scenarios for Equivalence Partitioning

📌 Example 1: Age Validation (Valid Range: 18 to 60)

Partition TypeTest Case ExampleExpected Result
Invalid (Below 18)17❌ Error (Too Young)
Valid (Between 18-60)30✅ Accepted
Invalid (Above 60)61❌ Error (Too Old)

📌 Explanation: Instead of testing all ages, we test one value per partition:

  • Invalid Partition (17) → Should be rejected
  • Valid Partition (30) → Should be accepted
  • Invalid Partition (61) → Should be rejected

📌 Example 2: ATM Withdrawal (Valid Range: $100 – $5000, Multiples of $10 Only)

Partition TypeTest CaseExpected Outcome
Invalid (Below Min)$50❌ Error
Valid Range$1000✅ Approved
Invalid (Above Max)$5500❌ Error
Invalid (Not a Multiple of 10)$125❌ Error

📌 Explanation: We test only one value per partition instead of all possible amounts.


📌 Example 3: Password Field (Min 8 – Max 20 Characters)

Partition TypeTest Case ExampleExpected Result
Invalid (Too Short)"abc123"❌ Error
Valid (Correct Length)"password1234"✅ Accepted
Invalid (Too Long)"thisisaverylongpassword123"❌ Error

📌 Explanation: Instead of testing every possible password length, we test:

  • Invalid Partition: "abc123" (Too short)
  • Valid Partition: "password1234" (Accepted)
  • Invalid Partition: "thisisaverylongpassword123" (Too long)

🔹 Types of Equivalence Partitioning

1️⃣ Weak Equivalence Partitioning

  • Divides input into broad categories (Valid/Invalid).
    📌 Example: If valid input is 1 – 100, test only one valid and one invalid value.

2️⃣ Strong Equivalence Partitioning

  • Divides inputs into multiple partitions for detailed testing.
    📌 Example: A grading system (0-49 = Fail, 50-75 = Pass, 76-100 = Distinction).
    We test one value per grade: 25 (Fail), 60 (Pass), 85 (Distinction).

3️⃣ Boundary-Based Equivalence Partitioning

  • Combines Equivalence Partitioning + Boundary Value Testing.
    📌 Example: A form allows ages 18 to 60 → Test 17, 18, 59, 60, 61 (minimum, maximum, and boundaries).

🔹 Difference Between Equivalence Partitioning & Boundary Value Testing

FeatureEquivalence Partitioning (EP)Boundary Value Testing (BVT)
ConceptTests one value per rangeTests extreme min/max values
Number of Test CasesFewerMore (tests boundaries)
FocusEnsures each partition behaves the sameDetects issues at limits
Example (Age 18-60)Test one value (30)Test 18, 60, and edges (17, 19, 59, 61)

🔹 When to Use Equivalence Partitioning?

When input has a defined range (e.g., age limits, salary range).
When testing form fields (e.g., phone number, password length).
When optimizing test cases (avoiding unnecessary repetitions).
When testing numerical, date, or text-based inputs.

One thought on “Equivalence Partitioning in Software Testing

  1. I have observed that in the world nowadays, video games are definitely the latest trend with children of all ages. There are occassions when it may be not possible to drag the kids away from the activities. If you want the best of both worlds, there are lots of educational activities for kids. Good post.

Leave a Reply

Your email address will not be published. Required fields are marked *