An Introduction to Software Testing


What is Software Testing?

Software Testing is an evaluation to determine the quality of a product. Or in other words, it is an activity intended to find defects in the product.

How this evaluation will be performed?

In order to determine the quality of the product, as a tester you will be performing a comparison task between the actual result/state with an expected result/state. For example, if you are testing the addition (+) functionality of a calculator, and the test case inputs are 2 and 3(and this case, the expected result is 5).Then once you get an actual result in the calculator, you will perform a comparison of that actual result against the expected result.

Every software system has been designed to perform certain functionalities.These functionalities are being considered as the expected results.After the implementation of the system, how the system is performing those intended functionalities are termed as actual results. If the actual results are not the same as that of expected results, then there is defect.These defects can be anywhere in the system.In general ,there are infinite number of input combinations even for a simple software component , the practicality of performing this evaluation is quite challenging.

How is testing increase the quality of the product?

Finding the defects giving us an opportunity to fix these defects and eventually increase the reliability of the product.

The definitions provided on the beginning of this topic looks pretty simple. However this is not in the case with real world testing scenario, at least systems with moderate complexity. As the software systems are getting more complex day by day, finding implementation flaws became extremely difficult. This is one of the major challenges in software testing industry today.This also opens up a whole new world of possibilities for testing and bunch of different strategies and tools.

Software complexity (and therefore that of bugs) grows to the limits of our ability to manage that complexity.(Boris Beizer, Software Testing Techniques. Second edition. )

Currently testing plays an vital part in Software Development Life cycle.Testing is applicable in each and every stages of SDLC. In order to ensure the quality of the product,testers need variety of sophisticated tools and methodologies in their arsenal.I will be sharing these methods in detail in upcoming posts.If you are aspiring for a career in software testing or simply wanted to understand these methods in detail, Stay tuned ..

Happy Testing!!!!