Estimation Techniques in Software Testing
28 Feb. 2011 Software Testing & QA
Software testing estimation techniques are as old as the binary digits in the history of digital computers. Software testing is one of the important stages during software development life cycle (SDLC) to check and control the quality of the application.
Today, over 30% to 70% of a project’s resources are dedicated towards testing. Still, testing is often considered as an underestimated part of software development. Moreover, academic research in testing is low compared with the importance of the subject in real-life software projects.
Software testing estimation techniques involves experimentally and systematically checking the correctness of software. It is performed by applying test experiments to a software system, by making observations during the execution of the tests and by subsequently assigning a verdict about the correct functioning of the system. The correctness criterion against which the system is to be tested should be given in some kind of system specification.
The specification prescribes what the system has to do and what not, and, consequently, constitutes the basis for any testing activity. Despite its importance, testing is often an under-exposed phase in the development process of the enterprise software development company. Software testing turns out to be expensive, difficult and problematic while, on the other hand, research and development in testing have been rather immature.
Software Testing Best Practices
In order to implement testing best practices for a software development or mobile app development project, one needs to analyze the risks and complexities about the project by estimating the testing efforts. Software testing estimation techniques play a very important role in building credibility before initiating any software or mobile app testing project. To achieve bug free code for your software and mobile applications, software testing estimating techniques should be implemented by your team.
Today, any software application developed is unique in its own domain. So it becomes difficult and inconvenient to estimate software testing accurately at the very first attempt. Even if the project scope is understood and requirements are clear, it is still arduous to estimate a complex system that is going to be built with its unique set of requirements.
Software Testing Estimation Techniques
One of the most important factors while estimating testing efforts is the hands-on experience on varied projects for the software test life cycle. No longer can one just take a guessing approach about the number of days for any task or working on the old time formula of one third of the development effort.
Although this method is not based on any scientific principle or technique, it is one of the most widely used estimation technique by companies offering software-testing services. Unfortunately the development versus testing effort method has given many failures in software projects in the past, thereby compromising the software or mobile apps on quality.
In the recent years there have been many techniques that have been developed for estimating the software testing timeframe. These techniques are: 3-Point Software Testing Estimation Technique, Use-Case Point Method and Wide Band Delphi Method.
3-Point Software Testing Estimation Technique
3-Point Software Testing Estimation Technique is based on statistical methods in which each testing task is broken down into sub tasks and then three types of estimation are done on each tasks.
The formula used by this technique is:
Test Estimate = P + (4*N) + E / 6
- P = Positive Scenarios
- N = Negative Scenarios
- E = Exceptional Scenarios
Standard deviation for the technique is calculated as,
- Standard Deviation (SD) = (N – E)/6
Use – Case Point Method
Use-Case Point Method is based on the use cases, where we calculate the unadjusted actor weights and unadjusted use case weights to determine the software testing estimation.
The formula used for this technique is:
- Unadjusted actor weights = Total no. of actors (positive, negative and exceptional)
- Unadjusted use case weight = Total no. of use cases
- Unadjusted use case point = Unadjusted actor weights + Unadjusted use case weight
- Adjusted use case point = Unadjusted use case point * [0.65+ (0.01 * 50]
- Total Effort = Adjusted use case point * 2
In Wideband Delphi Method, work structure is broken down for each task and is distributed to a team comprising of 3-7 members for re-estimating the task. The final estimate is the result of the summarized estimates based on the team consensus. This method speaks more on experience rather than any statistical formula. The Wideband Delphi testing estimation technique logically estimates the group iteration efforts required in a visual manner for the testing team. This test was coined by Barry Boehm and is widely accepted software testing estimation technique to solve complex problems.
How to evaluate a software testing estimation technique?
For any software testing estimation technique, it is highly recommended that the following factors should be taken into account:
- Domain knowledge and core requirements
- Risks and complexity of the application
- Team knowledge on the subject/skills
- Historical data for the previous estimation for improvement and accuracy
- Estimation should include buffer time
- Bug cycles for the project
- Resources availability
However these techniques just provide the means for estimating but rely heavily on the team productivity variations, individual skills, complexity of the unknown factors like system environment and downtime.
Despite advances in formal methods and verification techniques, a system developed still needs to be tested before it is implemented in real-life. Testing remains a truly effective means to assure the quality of a software system of non-trivial complexity, as well as one of the most intricate and least understood areas in software engineering. Testing, is an important research area within computer science is likely to become even more important in the future.
Rishabh Software leverages the best practices for software testing and mobile app testing, helping clients globally to achieve their business goals. Our team of software and mobile developers solves complex test cases and simplifies the testing efforts. Get in touch with us to know more on implementing the right software testing estimation technique through our Application testing services customized just for your application.