The quality of software applications has become a key challenge for most IT project managers as the multidimensional and complexity of applications has increased over the last decade. The key causes for this are the lack of software planning and inclusion of testing resources at the correct stage in the project, and also the appropriate test parameters to test. The difficulty is compounded by some popular software testing myths which cause lack of focus on testing and poor application quality thereafter. Key software testing myths include-
- Testing is an avoidable cost
- Testing is too expensive
- Applications can be tested by developers or business users or part-time resources
- Testing cannot begin until the entire application is developed
- Testers and developers are rivals
Testing is an avoidable cost
Most project managers think that spending money on software testing is like spending money on insurance. It gives you peace of mind but is an unnecessary cost, particularly if you do not use it. Based on personal experience, that’s not quite true. Per industry standard, though only 10-15% of users end up claiming insurance, benefits of software testing are recognized in 80-85% of projects. So spending on testing definitely has benefits to the end quality of the application and ultimately improves the experience and increases end user satisfaction while at the same time reduces the total project cost.
Testing is too expensive
There is a saying, ‘Pay less for testing during software development or pay more for maintenance or correction later. Take your pick!’ Early testing saves both time and cost in many aspects. Lately companies have introduced innovative delivery models to reduce the overall cost of testing for both for SME and Enterprise client. For instance software test specialist company AdactIn Group (www.adactin.com) has innovative delivery models like Software Testing as a Service (STaaS™), Packaged Testing, Smart Ramp-up and Down (sRURD™) and Nearshore testing which assists in providing excellent testing value at affordable rates.
Applications can be tested by developers, business users or part time resources
Software testing is a specialized activity which needs specific focus, mindset and a skill-set that the software programmer will not have. It is like auditing, you need a specialized auditor to check the work of the accountant to ensure every aspect has been covered. Similarly, you cannot get anyone who knows the application to do software testing. In my experience, I have seen numerous instances where applications tested by business users or part time resources failed due to lack of testing of negative scenarios or alternate workflows. Thinking of alternative testing scenarios, trying to crash the software with the intent to explore potential bugs is not possible for a tester without the right skill-set, focus, and mindset that is inquisitive, and looking for faults.
Testing cannot begin until the entire application is developed
Most project managers leave testing to commence once the application is fully developed. This approach leads to two key challenges. Firstly, testers may not have adequate time to plan their testing, and secondly defects are found later in the cycle leading to further application delays and overhead costs. Starting testing early gives greater chance to perform static testing which includes reviewing of requirements and design docs and also affords enough time for testers to plan and be prepared for their testing during execution phase. The cost of finding defects earlier in the lifecycle is much less than finding and fixing defects in later stages, often by up to 40% if found early rather than in the latter part of the software development process.
Testers and developers are rivals
Actually, the testers and developers work side by side in a team, and if there are any disagreements, then they should be encouraged to resolve their differences in an open and constructive manner or ask for the business team for feedback on the implementation. There are dedicated professionals in both fields, and communication between the two is important.
Software testing should not be treated an overhead, but a necessity, it needs to be part of the development cycle and not at the end of the development. The right people with an inquisitive mind set should perform testing, very much like an auditor, but someone who is going to highlight the issues and provide possible avenues to resolve software bugs. Finally, software testing should be an integral part of the development phase with immediate action taken to resolve issues when they are at the modular level rather than the system level.
Nav Garg is the CEO of a leading test consulting company Adactin Group (www.adactin.com), headquartered in Sydney and an experienced Test Architect and consultant. He is also a published author of a books titled “Test Automation using HP Unified Functional Testing” and “Test Automation using Selenium with Java” which has consistently ranked amongst the top 100 books selling on Amazon in the software Testing Category. You can reach him on Navneesh.firstname.lastname@example.org.