Software Testing - What is your definition?

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.

Recently I
came across few more definitions for “test” and “testing” that interested me.

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…
Share on Google Plus

About Debasis Pradhan

Debasis has over a decade worth of exclusive experience in the field of Software Quality Assurance, Software Development and Testing. He writes here to share some of his interesting experiences with fellow testers.

31 Comments:

  1. "Process of finding every concievable error, fault, weakness in the product!"

    simple and straight definition!

    Debasis great you started a cool discussion!

    ReplyDelete
  2. Hi Debasis,
    In 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

    ReplyDelete
  3. Hi,

    Testing 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

    ReplyDelete
  4. Of the definitions you list, I like Cem's the best. My own definition of software testing is:

    "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.

    ReplyDelete
  5. What is quality?

    According 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

    ReplyDelete
  6. SUBHRANSU Said...

    What 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.

    ReplyDelete
  7. Hi Debasis,
    As 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

    ReplyDelete
  8. @ Jitendra,

    I 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

    ReplyDelete
  9. Hi debasis,
    Thanks for the PDF.
    Regards,
    Jitendra

    ReplyDelete
  10. vijaykumar asking that what are the difference between the "system testing" and "end to end" testing?

    Please explain me with the good Example..

    VijayKumar

    ReplyDelete
  11. Hi Jithendra!!!!

    Thanks a lot...
    The definition which I found in this is very perfect...

    Thanks for referring such a apt definition for "Testing"

    ReplyDelete
  12. 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

    ReplyDelete
  13. Software 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.

    ReplyDelete
  14. Testing 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.
    nikhil
    m.tech
    h.p.u.shimla

    ReplyDelete
  15. SOFTWARE Testing is a process that helps to identify correctness,completeness,security and quality of a software product based on its specification

    ReplyDelete
  16. Hi ,

    According to me ,
    Testing is nothing but creating new thing solving all possible error in order to use
    them ..with no error..

    shaileshg

    ReplyDelete
  17. software testing is a testing which is used to find the failure of the developer

    ReplyDelete
  18. Testing is a process of evaluating whether the product fullfills the client's requirement.

    ReplyDelete
  19. Hello,

    I 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

    ReplyDelete
  20. 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.

    ReplyDelete
  21. Testing defines whether the product\Application meets the customer requirements as well reviews the quality of the product to the stakeholders or customers.

    ReplyDelete
  22. software testing is a set of activities performed with an intent to find errors in an application.

    ReplyDelete
  23. Testing is a process

    ReplyDelete
  24. Testing 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.

    ReplyDelete
  25. Software 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.

    ReplyDelete
  26. Software Testing means : To verify the product or functionality should meet the customer specified requirements or not.

    ReplyDelete
  27. Software testing is identify ,rectify, isolating the defect and deliver a quality product to the client.

    ReplyDelete
  28. OK I have my own definition here.. I will try to write it as simple as possible so that even a layman can understand it.

    Testing 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.

    ReplyDelete
  29. 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?
    Functionality:
    Capability:

    ReplyDelete
  30. 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?
    Functionality:
    Capability:

    ReplyDelete
  31. Software testing is the process used to measure the quality of developed computer software.


    According to definition given by The Institute of Electrical and Electronics Engineers, USA (IEEE) - Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software item
    According to the definition given by Dave Gelperin and William C. Hetzel - Software testing can be stated as the process of validating and verifying that a software program/application/product:
    1. meets the requirements that guided its design and development
    2. works as expected
    3. can be implemented with the same characteristics
    4. satisfies the needs of stakeholders

    Read more:What is Software Testing?

    ReplyDelete

NOTE: Comments posted on Software Testing Tricks are moderated and will be approved only if they are on-topic. Please avoid comments with spammy URLs. Having trouble leaving comments? Contact Me!