Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

Cost of bugs at different stages in Testing Fundamentals - Build an Automation Script

Choose your learning style10 modes available
Verify cost calculation of bugs at different development stages
Preconditions (2)
Step 1: Call calculate_bug_cost('requirements')
Step 2: Call calculate_bug_cost('design')
Step 3: Call calculate_bug_cost('development')
Step 4: Call calculate_bug_cost('testing')
Step 5: Call calculate_bug_cost('production')
Step 6: Verify the returned cost matches expected values for each stage
✅ Expected Result: The function returns correct costs: requirements=1, design=5, development=10, testing=20, production=100
Automation Requirements - pytest
Assertions Needed:
Assert returned cost equals expected cost for each stage
Best Practices:
Use parameterized tests to cover all stages
Use clear assertion messages
Keep test code simple and readable
Automated Solution
Testing Fundamentals
import pytest

def calculate_bug_cost(stage: str) -> int:
    costs = {
        'requirements': 1,
        'design': 5,
        'development': 10,
        'testing': 20,
        'production': 100
    }
    return costs.get(stage, 0)

@pytest.mark.parametrize('stage,expected_cost', [
    ('requirements', 1),
    ('design', 5),
    ('development', 10),
    ('testing', 20),
    ('production', 100)
])
def test_calculate_bug_cost(stage, expected_cost):
    cost = calculate_bug_cost(stage)
    assert cost == expected_cost, f"Cost for stage '{stage}' should be {expected_cost} but got {cost}"

This test uses pytest with parameterization to check the bug cost at each stage.

The calculate_bug_cost function returns the cost based on a dictionary lookup.

The test test_calculate_bug_cost runs once for each stage and asserts the returned cost matches the expected value.

Assertions include messages to help identify failures clearly.

Common Mistakes - 3 Pitfalls
Hardcoding test cases without parameterization
Not checking for invalid stages
Using print statements instead of assertions
Bonus Challenge

Now add data-driven testing with 3 additional invalid stage inputs and verify the cost is zero

Show Hint

Practice

(1/5)
1. Which stage is generally the cheapest to fix a bug in software development?
easy
A. During the requirements or design phase
B. After the software is released to customers
C. During system testing
D. During user acceptance testing

Solution

  1. Step 1: Understand bug fixing costs by stage

    Fixing bugs early, such as during requirements or design, is cheaper because changes are easier to make before coding starts.
  2. Step 2: Compare later stages

    Fixing bugs after release or during testing is more expensive due to rework, retesting, and possible customer impact.
  3. Final Answer:

    During the requirements or design phase -> Option A
  4. Quick Check:

    Early bug fixes cost less = A [OK]
Hint: Fix bugs early in design to save cost [OK]
Common Mistakes:
  • Thinking bugs cost the same at all stages
  • Assuming fixing bugs after release is cheapest
  • Confusing testing phase with design phase
2. Which of the following statements correctly describes the cost trend of fixing bugs?
easy
A. Cost increases as bugs are found later in development
B. Cost remains constant regardless of when bugs are found
C. Cost decreases as bugs are found later in development
D. Cost is highest during requirements gathering

Solution

  1. Step 1: Recall cost trend principle

    The cost to fix bugs generally increases the later they are found in the development cycle.
  2. Step 2: Evaluate each option

    Cost increases as bugs are found later in development correctly states the cost increases later; others contradict this known fact.
  3. Final Answer:

    Cost increases as bugs are found later in development -> Option A
  4. Quick Check:

    Later bugs cost more = C [OK]
Hint: Later bug discovery means higher fix cost [OK]
Common Mistakes:
  • Choosing cost decreases later
  • Assuming cost is constant
  • Confusing highest cost stage
3. Consider this simplified cost multiplier for fixing bugs at different stages:
Requirements: 1x, Design: 5x, Testing: 10x, Production: 50x
If a bug costs $100 to fix during requirements, how much will it cost if found in production?
medium
A. $500
B. $1,000
C. $50,000
D. $5,000

Solution

  1. Step 1: Identify cost multiplier for production

    The production stage multiplier is 50x the requirements cost.
  2. Step 2: Calculate production cost

    Cost = $100 * 50 = $5,000.
  3. Final Answer:

    $5,000 -> Option D
  4. Quick Check:

    100 * 50 = 5000 [OK]
Hint: Multiply base cost by stage multiplier [OK]
Common Mistakes:
  • Multiplying by 10 instead of 50
  • Confusing production with testing stage
  • Incorrect multiplication
4. A developer wrote this statement:
The cost to fix bugs is the same at all stages of development.
What is wrong with this statement?
medium
A. It correctly states the cost is equal at all stages
B. It ignores that fixing bugs later is more expensive
C. It only applies to bugs found during testing
D. It applies only to minor bugs

Solution

  1. Step 1: Understand cost variation by stage

    Bug fixing cost varies and increases the later bugs are found.
  2. Step 2: Identify error in statement

    The statement wrongly claims cost is the same at all stages, ignoring this fact.
  3. Final Answer:

    It ignores that fixing bugs later is more expensive -> Option B
  4. Quick Check:

    Cost varies by stage, not equal [OK]
Hint: Bug fix cost rises later, not constant [OK]
Common Mistakes:
  • Agreeing cost is equal always
  • Thinking it applies only to testing bugs
  • Assuming minor bugs cost same always
5. A company found that fixing a bug during testing costs $2,000, and fixing the same bug after release costs $20,000. If the cost to fix during requirements is $200, what is the approximate cost multiplier increase from requirements to testing and from testing to production?
hard
A. Testing is 5x requirements; production is 20x testing
B. Testing is 10x requirements; production is 5x testing
C. Testing is 10x requirements; production is 10x testing
D. Testing is 20x requirements; production is 10x testing

Solution

  1. Step 1: Calculate testing multiplier

    Testing cost / requirements cost = 2000 / 200 = 10x.
  2. Step 2: Calculate production multiplier relative to testing

    Production cost / testing cost = 20000 / 2000 = 10x.
  3. Final Answer:

    Testing is 10x requirements; production is 10x testing -> Option C
  4. Quick Check:

    2000/200=10 and 20000/2000=10 [OK]
Hint: Divide costs stage-wise to find multipliers [OK]
Common Mistakes:
  • Mixing up multipliers between stages
  • Incorrect division order
  • Assuming multipliers are equal to costs
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