Are there any tools available to help with estimating the time needed to test an application? This would be manual testing, not automated.
It's dependent on many things, I haven't encountered any tools. I'm curious if there are any. We generally end up around half the time it takes for development. However this can be drastically different depending on features. Is it localized into 4 different languages? How many different platforms does it run on? Does it need to connect to multiple different types of hardware via bluetooth? Is the team testing familiar with the application?
I'm not aware of any tools either.
In my experience, the following general guidelines help, but are not the whole matter:
- Test time increases with application size.
- Test time increases with application edges: that is, the number of interactions between the application and other software.
- Test time increases with module/feature edges.
- Test time increases with configuration options.
- Test time increases with form/module complexity.
- Test time increases with business rule complexity.
- If the application does not have good unit testing, it will take longer to test.
- If the application does not have automated regression testing, it will take longer to test.
I would draw on historical data as much as possible: if it takes x time to test a particular feature of the application, it will likely take a similar length of time to test a feature that's about the same size and complexity.
My other major factor is how critical a feature is: e.g., if it impacts a customer's finances it must be correct. If it deals with a once and done setup that can be worked around if need be, there's less need to cover it every time. This allows prioritization, so that when there isn't enough time to test everything (which is always: testing everything is impossible in all but the most trivial applications) I can be sure the critical test cases have been covered - and I can give a reasonable estimation of the risk of releasing without testing the areas that haven't been tested.
There is no single rule for how long something should take, and I doubt there ever will be.