The Hidden Cost of Testing in Software Projects


In our journey through the challenges of building software, it’s tempting to look for shortcuts to save time and money. One common shortcut is cutting back on testing. This might seem like a clever way to keep costs under control, especially when we’re confident in our work.

But this approach can backfire. Imagine releasing an accounting app that looks perfect but hasn’t been thoroughly tested. It could be riddled with errors, slow, or even vulnerable to security threats because it wasn’t adequately checked.

Skipping thorough testing can lead to higher costs down the line. We might end up dealing with unhappy customers, spending more to fix issues, and hurting our reputation, which is tough to rebuild. In essence, trying to save on testing now can mean spending much more later.

As a stakeholder in a project, you may find yourself continually asking: What are the minimum objectives that need to be met before the application can be released to users?

Minimum Requirements for Testing Your Application

  1. Functional Testing: Ensure all features work as intended. For an accounting application, this includes tests for ledger entries, calculations, reporting, and any other core functionalities.
  2. Usability Testing: Focuses on the application’s user interface and user experience. It’s important that users find the app intuitive and easy to use.
  3. Security Testing: Identifies vulnerabilities in the application, which is especially critical for an accounting application due to the sensitive financial data involved.
  4. Performance Testing: Ensures the application performs well under expected loads. This includes testing response times, data processing speeds, and scalability.
  5. Compatibility Testing: Checks the application’s performance across different browsers, operating systems, and devices, ensuring all potential users have a consistent experience.

Minimum Test Types and Coverage

  1. Unit Testing: Tests individual components or functions. A good rule of thumb is to aim for at least 70-80% coverage with unit tests, focusing on the most critical paths. Unit test will uncover Logical Errors, Regression Errors, Design Flaws and Security Vulnerabilities.
  2. Integration Testing: Tests how different parts of the application work together. This is crucial for identifying issues in the interactions between modules or services. Integration tests will uncover Interface Issues, Data Flow Problems, Configuration and Environment Issues and Performance and Scalability Issues. Automating integration test will save you a significant amount of money.
  3. User Acceptance Testing (UAT): Conducted with real users (by your client) to ensure the application meets their needs and expectations. This activity offers the most significant cost savings. Ensure you clearly define the test cases you want the client to perform. Additionally, request comprehensive documentation of the test cases they executed that were not part of your original test suite.

Cost Estimation

The cost of testing can vary widely depending on the complexity of the application, the tools you use, whether you outsource or keep it in-house, and the extent of your testing. As a rough guideline:

  • Small to medium projects: 20-30% of the total development cost.
  • Larger projects: This percentage can decrease as the scale of development increases, thanks to economies of scale.

For an X application, let’s say your total development budget is Є100,000. You should aim to allocate around Є20,000 to Є30,000 for testing. This includes the cost of testing tools, resources (like testers’ salaries if you have in-house testers or fees if you outsource testing), and infrastructure costs (for example, servers for performance testing).

Final Thoughts

Focus on automating your tests where possible, especially for integration and unit tests. This can save a lot of time and money in the long run. Also, prioritise testing based on risk; focus more on the parts of your application that are critical to its operation or that handle sensitive data.

Conduct as many User Acceptance Testing (UAT) sessions as possible. The costs associated with these tests are borne by your client, making it a valuable opportunity to ensure the product meets their requirements and expectations without direct financial impact on your part.


Leave a Reply

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