Automation ROI calculation in Testing Fundamentals - Build an Automation Script
import unittest def calculate_roi(manual_exec, manual_maint, auto_exec, auto_maint, executions): total_manual = (manual_exec + manual_maint) * executions total_auto = (auto_exec + auto_maint) * executions if total_auto == 0: raise ValueError("Automated total time cannot be zero") time_saved = total_manual - total_auto roi = (time_saved / total_auto) * 100 return roi class TestAutomationROICalculation(unittest.TestCase): def test_roi_calculation(self): manual_exec = 2.0 # hours manual_maint = 0.5 # hours auto_exec = 0.5 # hours auto_maint = 0.2 # hours executions = 10 roi = calculate_roi(manual_exec, manual_maint, auto_exec, auto_maint, executions) self.assertIsInstance(roi, float, "ROI should be a float") self.assertGreater(roi, 0, "ROI should be greater than 0") def test_zero_automated_time(self): with self.assertRaises(ValueError): calculate_roi(1, 1, 0, 0, 5) if __name__ == '__main__': unittest.main()
The calculate_roi function computes the return on investment percentage by first calculating total manual and automated times, then computing the time saved and ROI percentage. It raises an error if automated total time is zero to avoid division by zero.
The TestAutomationROICalculation class uses Python's unittest framework to test the ROI calculation. It checks that the ROI is a float and greater than zero, matching the expected result. It also tests that the function raises an error when automated time is zero.
This structure separates calculation logic from tests, uses clear variable names, and applies proper assertions for validation.
Now add data-driven testing with 3 different sets of inputs for manual and automated times and executions.
Practice
Solution
Step 1: Understand ROI meaning
ROI (Return on Investment) measures how much money or value you get back from what you spend.Step 2: Apply ROI to automation context
In testing, Automation ROI compares the cost of automating tests to the money saved by running tests automatically instead of manually.Final Answer:
The cost savings from using automated tests compared to manual tests -> Option AQuick Check:
Automation ROI = Cost savings [OK]
- Confusing ROI with number of tests automated
- Thinking ROI measures speed only
- Believing ROI counts bugs found
Solution
Step 1: Recall ROI formula basics
ROI = (Gain from investment - Cost of investment) / Cost of investment.Step 2: Apply to automation costs
Gain = Cost saved by automation = Cost of Manual Testing - Cost of Automation. So ROI = (Manual - Automation) / Automation.Final Answer:
(Cost of Manual Testing - Cost of Automation) / Cost of Automation -> Option CQuick Check:
ROI = (Manual - Automation) / Automation [OK]
- Reversing subtraction order
- Adding costs instead of subtracting
- Dividing by wrong cost
Solution
Step 1: Identify values and formula
Manual cost = 10000, Automation cost = 4000. ROI = (Manual - Automation) / Automation.Step 2: Calculate ROI
ROI = (10000 - 4000) / 4000 = 6000 / 4000 = 1.5.Final Answer:
1.5 -> Option AQuick Check:
ROI = (10000-4000)/4000 = 1.5 [OK]
- Dividing by manual cost instead of automation
- Adding costs instead of subtracting
- Mixing up manual and automation values
Solution
Step 1: Compare given formula to correct formula
Correct ROI = (Manual Cost - Automation Cost) / Automation Cost. Given formula reverses subtraction.Step 2: Understand impact of reversed subtraction
If automation costs less, reversing subtraction yields negative ROI, wrongly suggesting loss.Final Answer:
It subtracts in the wrong order, giving negative ROI when automation saves money -> Option BQuick Check:
Subtraction order matters for correct ROI sign [OK]
- Reversing subtraction order
- Dividing by wrong cost
- Ignoring subtraction sign impact
Solution
Step 1: Calculate total savings over 3 years
Savings = $5,000/year x 3 years = $15,000.Step 2: Identify automation investment
Cost of automation = $12,000 upfront.Step 3: Calculate ROI
ROI = (Savings - Automation cost) / Automation cost = (15,000 - 12,000) / 12,000 = 3,000 / 12,000 = 0.25.Final Answer:
0.25 -> Option DQuick Check:
ROI = (15000 - 12000) / 12000 = 0.25 [OK]
- Ignoring yearly savings in calculation
- Not multiplying costs by years
- Mixing upfront and recurring costs
Ready to prove it?
Pass the test and this pattern moves unknown
