Saturday, July 14, 2012

Testing Definitions for testing terms

Here are some testing definitions for testing terms. Whenever you are asked this in interviews, feel free to use them (but don't blame me if you don't land the job). I personally have actually come up with these definitions based on the testing that I have done in time.

Testing Definition ---- Here's a definition for the term "testing definition" itself; defined as any testing terminology that is as the basis for a hiring decision in an interview is defined as "testing definition" :).
Authors' note:- Decided to have a definition for "testing defintion" itself :).

Edge Case or Corner case --- Cases that the tester comes up with and when everyone else in the project realizes that they have missed those test cases, they tend to call it a "corner case"; they also give this term to use cases that would be executed by a very little set of users. That will also help their management understand why these people missed these test cases.

Smoke testing --- Imagine that you are testing an android app on an android phone; Now charge the phone for sometime. If you see smoke coming from the phone when you are testing, then that "tests" that you execute to cause the smoke to come out is defined as smoke testing.

Sanity Testing --- Imagine running a set of test cases again and again; there comes a point in your life where you think you would lose your sanity at the end of a testing session. Such testing that makes you question your sanity is defined as sanity testing.

BVT --- Most popularly known as Build Verification Testing; (Now, don't start questioning as to why it's called "Build Verification Testing" instead of "Build Verification". The experts have decided that it's BVT and not BV.....). The term "BVT" itself has so many flavors --- it can be expanded as "Build Validation Testing", "Bugs Validation Testing", "Bugs Verification Testing", "Blind Verification Testing" where you try to explore the product blindly, "Bug Validation Testing" wherein you can say that you are trying to validate bugs from a previous build, etc. etc...... When someone asks you the meaning of "BVT", try to ask them as to what it expands into.

In case the interviewer is hell-bent on stating that BVT stands only for Build Verification Testing and nothing else, try to pick out 1 of the above definitions.

BAT --- Now, this is defined as the equipment that most people want to batter me with; But this, in today's most companies, is defined as "Build Acceptance Testing". It means that you are accepting a build in it's current form, with the list of bugs so that the build can be ready to be tested. You can also define it as "Bug Acceptance Testing" wherein you try to accept the bug since you happen to belong to the department of "bug-savers".

Stress Testing --- This is the kind of test that causes to get "pretty stressed" when asked to speak about it; more often than not, people usually ask you about "stress" testing and "load" testing. "Stress Testing is defined as the mental state of your mind when someone asks you about stress testing"; "Load Testing is defined as any definition that cleverly defines load testing as a form of testing that has nothing to do with stress testing".

Exploratory Testing --- This is very important to remember; "Exploratory testing" is defined as "any kind of testing that has the words uncharted, unexplored, no requirements, no test cases embedded into the definition". Now, that's the most popular definition. What the world seems to have forgotten is the fact that Cem Kaner has defined exploratory testing.

Rapid Exploratory Testing --- "Rapid Exploratory Testing" is defined as "any kind of testing that has the word of 'speed', 'uncharted', 'unexplored', 'no requirements', 'no test cases' embedded into the definition itself". Again, that kind of definition seems most popular these days.

Usability Testing --- This is simple. When you try to define "Usability Testing", try to make use of the word "end-user, customer, last user" etc. being involved in some kind of testing.

Now, most of the above, as you know are fake definitions; Now, what's a true definition? A true definition is a definition that states the intent of the type of testing, and clearly clarifies the objective of a type of testing.A false definition is one that tries to differntiate the "defined type of testing" from another and tries to call out how it is advantage; In my humble opinion, any time that you try to ask for a difference between 2 forms of testing becomes the seed for such "fake definitions". Every definition is true as long as they clarify the intent. As a great person said, any verb prefixed to the word "testing" would result in some form of testing; And there begins a "world of definitions".....