Software testing is one of the most important steps that need to be taken in order to ensure the success of the system or product. It is the process of running a system to find out bugs. It is done to ensure that the product going out in the market is error-free and provides a smooth experience for the customers
In this article, I will shed light on what is software testing and why it is important. So let's get started ๐
What is Software Testing?
Software testing is the process of running/using the system with the intent to find errors and bugs. We check if the system is working as intended and if it fulfills all the requirements that were laid out by the stakeholders involved.
During software testing, we check the system under both the positive and negative scenarios and determine the response of System Under Test (SUT). We use both manual and automation testing techniques to perform testing.
Why is Software Testing Important?
Before answering this question, I would like to state some examples which result in loss both in terms of life and money to make my case stronger.
1) In 2015, F-35 was hit by a software bug due to which it lost its ability to detect targets correctly.
2) Another loss in the field of the military is the failure of the launch of a satellite in 1999. This resulted in a loss of $1.2 billion. Just set this amount with respect to inflation in today's time and you would know the impact a small bug had on the budget of the whole operation.
3) In 1985, Therac-25 Radiation Therapy Machine killed SIX patients due to a programming error. This resulted in patients being given doses a hundred times stronger than what was advised.
Now, I think you have a better idea of why it is important to spend some time and money on testing.
Software testing is carried out because it provides the following advantages:
- It improves the quality of the product
- It increases customer satisfaction because the software fulfills all the requirements that the user is expecting.
- It reduces the overall cost of the project.
- It increases the security of the system. This helps in increasing the confidence of users for your product.
What to test?
There is a common perception is that we only have to test the code or overall functionality of the system. Well, that is not the case as we also have to test the documents and check whether the requirements are implementable or not.
Moreover, it is not necessary to start testing once the whole project is developed. It should be started as early as the requirement analysis phase. Starting the testing process later in the development lifecycle increases the cost of bug removal.
When to terminate the testing process?
Removing 100% of bugs from the system is not possible at all. So the question is if it's not possible to remove all the bugs then when do we have to stop the testing process?
We terminate the testing process when one of the following conditions are met:
- When the testing deadline set by the management is met
- When a certain percentage of accuracy is achieved.
- When all the developed test cases are executed.
- When your team lead or project manager asks you to terminate the testing process.
Types of Software Testing
Software testing is generally divided into two categories:
1) Manual Testing: In manual testing, we execute all the test cases manually. For instance, a test case deals with logging into the system with invalid credentials then the tester will have to enter the wrong credentials manually. Manual testing is time-consuming.
2) Automation Testing: It is the process of executing test cases with help of automation tools and frameworks. It helps in reducing the time for the testing process.
Conclusion
All in all, I would like to say that companies should pay more attention to software testing before deploying the system for live users as it would help in saving costs and increasing customer satisfaction.