Example: You are going to test a web application. Client saying us to follow the waterfall model for developing the application? Now my question is what are all the testing you have conducted for successful delivery of product? Then, For Waterfall model,we used to test adhoc kind of test...or how it depends..or we do adhoc testing for all kinds of model...
How many testing types are there according to you?
What exactly do you mean when you say adhoc testing? Is it that you randomly click some element of the screen and see what happens? Or you randomly choose a module and test it?
You can do any type of testing in any development model as long as it suit the context. You see testing is always context dependent. The answer to most questions will always be it depends. Just follow your heart. If it says adhoc suits waterfall, then go ahead with it. If it doesn't work out you will learn from it and adopt another method!!!
Well, in my experience, choosing 1 'type' of testing should never be considered thorough testing. You should always ensure that you have a formalized testing (which ad hoc would not fall under) to ensure that you have full test coverage. This will typically be executed along side some ad hoc testing in order to discover defects quicker.
For example, with a web based application:
Generic Test plan: Log in Create User with valid Username and Password without User Creation Permissions Log out Log in with new User Verify user can not create a new User
Actual test execution during initial smoke testing and regression should be, in my opinion blended with ad-hoc methods:
Attempt Login with invalid credentials Login with valid credentials Attempt to create user with invalid Username Attempt to create user with invalid Password Attempt to create user with invalid username and password Create user with valid username and password Log out Log in with new user Verify user can not create a new User Attempt to navigate directly to the URL for new user creation Attempt to post the HTTP Headers for new user creation to the server directly
So, with this, especially during smoke testing, you are verifying as much as possible as quickly as possible in order to try and find as many defects as possible as quickly as possible. This will assist in expediting defect resolution and overall speed up the DLC by discovering the majority of the defects early on.
After the smoke testing, I will follow the test cases as closely as possible to ensure that the application is tested as desired and then when done with the written test cases I would resume to do ad hoc testing based on the test cases with the types of verification above.
Generally Testing type can't live independently of model, because its the type of software model which delivers the product to testing team in some format may be whole product or some module or first few independent module and then integrated modules as a complete product.
Therefore you need to adopt the testing type based on the delivery of the product. Now adhoc testing is again a type of testing which can be performed with any kind of model because its a random selection of testing areas.