Being a Software Tester, I test software almost on a daily basis [if you count the testing activities that I perform when at home!]. But the different definitions for the term “Testing” or “Software Testing” that I have heard/read till now in my short 2 years career as a Software Tester, keep fascinating me! Whenever I ask someone to define “Software Testing”, most of the times I use to get a yet another definition for it.
I understand and agree that the variation in definitions of a term is seen in other scientific and technological fields too. But I am not sure why, I keep getting a feeling that this is unusually high in the testing world! You name a word related to testing and you would find at least a dozen (can be hundreds too) of definitions for it. This is evident from the number of definitions we see for a simple word like “Testing” or “Software Testing” itself! As a small exercise (and for fun) ask each of your test teammates to define “Testing”/“Software Testing”. [Actually I did it myself!] You would be surprised to hear the variety of definitions for a common term like “Testing”. Although you all might be working in the same test team and working on the same test project, you would get surprised by the way each of you define (understand) testing.
Testing is a process of gathering information by making observations and comparing them to expectations. - Dale Emery and Elisabeth Hendrickson
A test is an experiment designed to reveal information, or answer a specific question, about the software or system. - Dale Emery and Elisabeth Hendrickson
I think the “gathering information by making observations” part is a very important aspect of testing and a tester should always strive to hone this skill. I believe that we (testers) are information providers. We provide product related important information to the stakeholders of the project and help them in taking vital decisions. Finding bugs or defects may be just a part of the “information gathering” process. But overall, a tester should be efficient in questioning the product and should be able to evaluate it.
Coming to the varieties of definitions of “Testing”, I must admit that I have had at least 8 different definitions for testing at different stages of my testing career! My own definitions kept evolving as I was exposed to more insight and knowledge of testing.
As of today, I subscribe to James Bach’s definition of testing: “Testing is ‘questioning’ a product in order to ‘evaluate’ it”
I am equally moved by Cem Kaner’s definition of testing too: “Testing is an Empirical technical investigation done to provide stakeholders, information about quality of a product or a service.”
I follow the above definitions as they best match with my own understanding of testing. When I say so, this does not mean that I am NOT open to other definitions of testing. I might heartily agree to other definitions of testing too (as I did in the earlier case of - Dale Emery and Elisabeth Hendrickson’s definition for test and testing), if they sound credible and make sense to my own understanding of testing.
In any case, I would certainly like to hear your definition(s) for testing. So, what is your definition of “Testing”/“Software Testing”? Feel free to let me (and others) know about your definition(s) by leaving behind your comment.
Happy Testing…
In any case, I would certainly like to hear your definition(s) for testing. So, what is your definition of “Testing”/“Software Testing”? Feel free to let me (and others) know about your definition(s) by leaving behind your comment.
Happy Testing…
"Process of finding every concievable error, fault, weakness in the product!"
ReplyDeletesimple and straight definition!
Debasis great you started a cool discussion!
Hi Debasis,
ReplyDeleteIn my view Testing is nothing but a routine task of the tester or QA to find out the smooth run of the testing product,as per the requirement specification or documentation or you can say as per expectation of the client(customer), as well as to find out the bugs or Issues which can hamper the product/application,so that we can deliver the error free software(or product i.e. in short evaluation of the human(made by programmers) errors or mistakes)......Sachit
Hi,
ReplyDeleteTesting is the process of investigatiion(investigating for defects). Verifying if the software product/application is working as it is intended to be working and finally relaesing the product with best quality.
Mallika
Of the definitions you list, I like Cem's the best. My own definition of software testing is:
ReplyDelete"Any activity that helps provide information about the quality state of the product."
That of course begs the question of "What is quality?" - but that is for another day.
What is quality?
ReplyDeleteAccording to Jerry Weinberg - It is value to some person
Another useful rephrase of above could be
"Value to a stakeholder( someone who is affected by the outcome of the product or service"
It is important to note here that "Tester is not a stakeholder in most of the times"
Hence combining all these, a definition of quality could be -
"Value to a stakeholder and unless otherwise stated, tester who is performing the testing is not a stakeholder"
Now - challenge this definition - rip it appart ... !!!!
Shrini
SUBHRANSU Said...
ReplyDeleteWhat is Software Testing ?
Hi,
In my point of view Testing is the process of evaluating system or system component by manual and automated means to verify that it satisfies specified requirements or identify differences between expected and actual results.
Hi Debasis,
ReplyDeleteAs far as my testing definitions are concerned recently I came across a definition which I really impressed with and it is as
Testing is infinite process of comparing the invisible to the ambiguous so as to avoid the unthinkable happening to the anonymous.
Infinite-If we to write test cases by law then we find there are many cases but what we do is avoid the rest and count only important one.
Invisible- If we search for a keyword in a search engine we never know which server gave the result and if we try to find out the server we never are we going to get the same server or not. We do not know what is going on.
Ambiguous -We are never sure because all of us have a different view.
Unthinkable- The risk factor. Most of the times we don’t want to talk about. The evil.
Anonymous- We never know who is going to user. We have to make guesses.
This is really a challenge.
This definition was given by James Bach June 13, 2006, Google videos
Regards,
Jitendra
@ Jitendra,
ReplyDeleteI was aware of this excellent definition of s/w testing by James Bach already! In fact, James calls it as "Perfect Testing". And as perfect testing can be a challenge, James goes ahead to give a more tractable definition of testing as I have mentioned in my original post, i.e. "Testing is questioning a product in order to evaluate it." A PDF version of the slides used in the video can be found here.
Thanks Jitendra for bringing upon this interesting definition and sharing it with others.
-Debasis
Hi debasis,
ReplyDeleteThanks for the PDF.
Regards,
Jitendra
vijaykumar asking that what are the difference between the "system testing" and "end to end" testing?
ReplyDeletePlease explain me with the good Example..
VijayKumar
Hi Jithendra!!!!
ReplyDeleteThanks a lot...
The definition which I found in this is very perfect...
Thanks for referring such a apt definition for "Testing"
Good software has to do with minimizing risk and thus..."Software testing is an in depth exercise of discovering the riskiest(prone to failure) areas of software and associated bugs." Still working on it
ReplyDeleteSoftware testing is a process that runs throughout the software development cycle aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.
ReplyDeleteTesting is the process of making software better,reliable,bug free,less maintainable and checking wether the software meet to its requirement or not.the process of software testing begin with the conception of software development and run until even a single copy of the software is on the market.
ReplyDeletenikhil
m.tech
h.p.u.shimla
SOFTWARE Testing is a process that helps to identify correctness,completeness,security and quality of a software product based on its specification
ReplyDeleteHi ,
ReplyDeleteAccording to me ,
Testing is nothing but creating new thing solving all possible error in order to use
them ..with no error..
shaileshg
software testing is a testing which is used to find the failure of the developer
ReplyDeleteTesting is a process of evaluating whether the product fullfills the client's requirement.
ReplyDeleteHello,
ReplyDeleteI would define it as,
"Testing is a destructive process, through constructive method yielding a better quality of a product at the end of the project".
*Meeting the goals of the product as specified in SRS documents (Customer Requirement Document).
Praveen
I recently saw a webcast in which Juval Lowey defined software testing as "Proving that software does not work". I rather liked this...it right away sets the mood and mindset a tester needs.
ReplyDeleteTesting defines whether the product\Application meets the customer requirements as well reviews the quality of the product to the stakeholders or customers.
ReplyDeletesoftware testing is a set of activities performed with an intent to find errors in an application.
ReplyDeleteTesting is a process
ReplyDeleteTesting is a process in which defects are identified,isolated and subjected for rectification and ensure that the product is defect free in order to produce the quality product in the end and hence customer satisfaction.
ReplyDeleteSoftware testing is the Operating of the Software under controlled conditions, to verify that it behaves as specified, to detect errors and to validate that what has been specified is what the user actually wanted.
ReplyDeleteSoftware Testing means : To verify the product or functionality should meet the customer specified requirements or not.
ReplyDeleteSoftware testing is identify ,rectify, isolating the defect and deliver a quality product to the client.
ReplyDeleteOK I have my own definition here.. I will try to write it as simple as possible so that even a layman can understand it.
ReplyDeleteTesting is a process/procedure to verify that the end product is same as requirements. It is not finding/investigating bugs.
If the requirements and end product equals then first part of your job is over. This is basic definition of testing.
I think it depends on what the tester is testing for? Are you testing for functionality or capability? Speaking of that, how would you define these two words in respect to software testing?
ReplyDeleteFunctionality:
Capability:
All of these definitions are great, however I think each persons definition has to be specific to what they are testing. For example are you testing for Functionality or Capablity? Speaking of these two terms how would you define them in terms of software testing?
ReplyDeleteFunctionality:
Capability: