Tuesday 9 September 2014

What is Software Testing???


Software Testing is a process that consists of all test life cycle activities like static and dynamic testing concerned with planning, preparation and evaluation of software products to determine that the software products satisfy customer’s requirements and are fit for customers use. Software Testing is done to find software defects or failures in advance.

Software bugs will almost always exist in any software module with moderate size: not because programmers are careless or irresponsible, but because the complexity of software is generally intractable and humans have only limited ability to manage complexity. It is also true that for any complex systems, design defects can never be completely ruled out.

Testing allows developers to deliver software that meets expectations, prevents unexpected results, and improves the long term maintenance of the application. Depending upon the purpose of testing and the software requirements, the appropriate methodologies are applied. Where possible, testing can be automated.

Importance of Software Testing

As we all are human beings and human beings commit errors in any process, some of the errors do not impact much on our day to day life and can be ignored, however some errors are so severe that they can break the whole system or software. In such kind of situations you need to take care that such errors are caught well in advance before deploying the system/software in production environment.

Let’s take a real life example and see how our errors can cause critical failures or disasters if not caught early

Let’s take some ABC banks net banking website, if any net banking customer logs into the website and transfers some amount to other account. After transferring he got the confirmation that amount got transferred successfully and it got deducted from his account. After sometime when he confirmed with other person whom he transferred the amount he got to know that he has not received the amount, now you need to visit your bank to settle this dispute. Also you will get annoyed by the net banking experience of that bank.

This is one situation where testing your software is very important before deploying it. Testing cannot be ignored because it impacts all the end users of software. If the website would have got tested thoroughly for all the possible user operations this problem would have been found well in advance and got fixed before deploying the website.

Types of Testing:

Functional Testing- Module testing verifies that individual software unit performs as expected according to the requirements using a small subset of possible input parameters. At the application level, testing verifies that the entire application functions together according to the requirements.

Example: Passing in real world parameters as well as valid but unusual parameters.

Parametric Testing- At the module level, testing verifies that individual software unit performs as expected according to the requirements for the full range of valid input parameters.

Example: Passing in each parameter at its minimum, maximum and median values, as well as passing in parameters at the minimum and maximum values at the same time.

Fault Tolerant Testing- Module testing verifies that individual software unit does not perform in a detrimental or unexpected manner for illegal or out-of-range input parameters. At the application level, testing verifies that the entire application functions together in a graceful manner according to the requirements when presented with unexpected and/or out-of-range values.

Example: Passing null pointers and the full range of possible values for each parameter.

Integration Testing- Integration testing is an additional step that is used when different sub-systems are being developed simultaneously by independent developers. It verifies that the parameters passed between sub-systems are being handled correctly.

Example: Passing null pointers and the full range of possible values for each parameter.

Regression Testing- Regression testing is retesting sub-systems/modules/units to insure that modifications to one sub-system/module/unit does not cause unexpected results in another sub-system/module/unit. This is also known as ripple effect testing.

12 comments:

  1. I do agree with all the ideas you have presented in your post. They’re really convincing and will certainly work. Still, the posts are very short for newbies. Could you please extend them a little from next time?..Keep this great work..

    Digital marketing company in Chennai

    ReplyDelete
  2. The blog was absolutely fantastic! Lot of great information which can be helpful in some or the other way. Keep updating the blog, looking forward for more contents...Great job, keep it up..Website Design Company Bangalore | Web Development Bangalore

    ReplyDelete
  3. Awesome article. It is so detailed and well formatted that i enjoyed reading it as well as get some new information too.


    SAP HR Training in Chennai

    ReplyDelete
  4. The blog was absolutely fantastic! Lot of great information which can be helpful in some or the other way. Keep updating the blog, looking forward for more contents...Great job, keep it up..
    Web Design Companies Bangalore | Web Development Company Bangalore

    ReplyDelete
  5. This is good blog of your company. I like to visit this blog some times.
    thanks. Sarkari Naukri

    ReplyDelete

  6. Nice Sharing..! I have been following you for a couple of months now but this is my first time commenting on a blog post. Thank you for sharing your knowledge and experience with us. Keep up the good work. Already bookmarked for future reference.

    Installment loans in Mississippi
    Payday loans in Mississippi
    Title loans in Mississippi

    ReplyDelete
  7. Great post you shared, you have now become top of my list. You were unknown to me before but have found your content to be fantastic.

    So great work for informing us of the possibilities and following a certain path.

    I really appreciate your hard work an giving us some information and inspiring others to follow.

    Thanks so much.

    I hope for more post in the future.


    Digital Brief

    ReplyDelete
  8. I think like I get a clear cut understanding while reading the content than anywhere else. Keep continuing this journey...!

    Pawn Shops in Montgomery

    Pawn Shops in Birmingham

    Pawn Shops in Mobile

    ReplyDelete
  9. helpful article, thanks for sharing. Visit here for more information about it solutions services

    ReplyDelete
  10. The blog was absolutely fantastic! Lot of great information which can be helpful in some or the other way. Keep updating the blog, looking forward for more contents...Great job, keep it up.. Website Designing Bangalore | Best Web Design Company Bangalore

    ReplyDelete