Saturday, July 18, 2009

Types Of Testing : Simplified approach

I am in testing since 4 years.. I hear lot many types of testing [1 2 3 4]. .smoke, sanity, usability, ad-hoc, reliability, scalability, regression, unit, component, system, performance, alpha, beta, security. monkey, white, black, Grey, installation, static, dynamic, compatibility, usecase, install, exploratory, documentation, interoperability, upgrade, migration, Acceptance, Volume, Integration, language, load, stress, blah blah .. Even after 4 years, I am not confident in saying whats the difference between load and stress testing or Why do we need so many types of testing. some times I felt, Its just to make the testing complex :)

Well, In my opinion ..No white, black, ..nothing .. Just two types of testing

1. Functional testing -- This should include all smoke, sanity, localization, installation, adhoc, security, monkey ..etc etc .. The objective of Functional testing should be to say that, with very minimum load on the software system, all the features as designed works fine. That's it ..

2. Non-Functional testing -- Reliability, scalability, performance etc .. etc.. This testing must be done when satisfactory functional testing is done and Passed. Again, I would like to divide this in just 2 parts (Last division .. so you have finally 3 types of testing)
2a. Capability Testing: This testing is meant to showcase the overall capability of the software system. Objective of this testing should be to say, This is the maximum load system can withstand, This is the increase in performance If you increase memory by 100% etc ..
2b. Sustainance Testing: This testing is meant to showcase to customers that, given your kind of load, There will not be any issue in running this software for 30 days in a row .. Or The users interface is very easy-to-use or This software will work within your environment along with other softwares/hardwares. that's it ..

You tell me one type of testing with brief Objective of the testing, and I can (Will try..) say you where it fits in above three types of testing ...

Note: I believe Testing is not just test case design and reporting (As you see the syllabus of all the testing certifications), and not just having soft skills like Trust, Confidence, Communication, Don't Get Personal Blah Blah.. Its very-much in-depth technical activity.. A real Tester should be having qualities (Though In small extent) of a strong Developer, A strong marketing guru, A good Customer support Person, A very good Business Analyst , A very good People Manager, A Very good IT head of non-IT organization (Our Direct customers ..right ?) and Lastly a very very Normal End user (As If He does not anything about internal of IT). IMHO Software Testing is not "anyone can do" type of job. Today I hear that, People who has no knowledge of Information Technology is willing (and able to) get a job as software tester by just mugging up few testing terms and passing Testing certifications.

5 comments:

Pradeep Soundararajan said...

Why do you think there are so many types of testing?

Ashish Kumar Jha said...

@ Pradeep, Thanks a lot to read my blog entry.. I am Delighted .. :)
IMHO, Reasons for more number of types of testing are:
1. With little difference (Say Load and Stress), People coined new term.
2. There is duplication in the naming. (Say Sanity Test and Build Validation Test)
3. There is no testing group/organization (I could not find on web :( )who comes forward and says these are the total no (Yes Fixed ..) of types of testing and this is what the objective of this type of testing.

Pradeep Soundararajan said...

Ashish,

Your 1st step is good but you still haven't answered my question, "Why do you think there are so many types of testing?"

I want you to think, read, question, challenge all material you come across about it and publish your analysis. I will comment back till you get to the final step.

Ashish Kumar Jha said...

Hi Pradeep,

I discussed with one of my colleague (Who In my opinion is Great Tester) On this topic. Based on his comments and some googling, I have below points to say.

1. First of All I have mixed up Quality Factor (Reliability, Stress), Testing Techniques/Methods (White, Black) and Testing Phases/Process (Integration, System).

2. More number of quality factor is because of more focused testing. An Analogy given by my Colleague, is having Specialization in Medical Science like Ortho, ENT, Dermeto etc..Similarly, In Testing A Tester may be specialized in one (or more) quality factor.

3. I Saw This link http://www.discussweb.com/software-testing/577-software-testing-standards.html which talks about Several Standards for Software Testing. I will go through these documents.

Thanks.
Ashish

Vignesh said...
This comment has been removed by the author.