In this topic, we will understand, what is software testing and what are its types. We will also discuss what may happen if we perform improper testing.
- It is an activity to check whether the actual result matches the expected result.
- We also ensure that the software is defect-free.
- Ensures that software should work as expected.
We can understand testing by this example. Let us suppose we are working to develop a calculator app through which we can perform multiple operations like calculation, division, subtraction, etc. We have developed the application and without proper testing, we give the application to the end-user.
Now when the end user will try to test the application at their end, he will try to perform some functions. He tries to add two numbers 5 and 7, the result should be 12 but instead of getting the result as 12, the application gives the result as 11. The error between the expected result and the actual result is a bug and it can be very irritating for the user. So, it is always advised to perform proper testing without releasing the app to the end-user.
We can perform software testing manually or through automation tools. Manual testing involves human effort and Automation testing includes tools like QTP, selenium. We will learn the manual and automation testing in detail in upcoming topics. We will also discuss what are bugs, defect bug cycle, how to make test cases, Agile methodology, etc.
It ensures that the customer gets a high-quality software product and it is bug-free. We need to perform a set of rules to check that the software is bug-free or not. We also need to report the errors to the developers and once the developer gets them fixed, we need to test the application again. If we want to get customer satisfaction then the software quality and performance should be high.
If you want to get certified in software testing then you can opt for the ISBTQ examination.
Why Software Testing is Important?
Software Testing is very important. Whenever you are working on software development or you are going to make your software live, proper software testing needs to be done.
Here I will give you some examples where testing isn’t performed and the results of improper testing are in front of you.
- When Microsoft launched Windows 98 live without proper testing, then the window got crashed. All of this happened due to improper testing.
- In 1997, Korean Air Flight 801 got crashed Three miles short of the runway in 2009 due to a fault in the ground proximity warning system and approx.. 230 people got killed in this accident.
- Lion Air Boeing 737 Max 8 Jetliner crashed into the java sea of Indonesia and approx… 189 people got killed in this due to a glitch in the plane’s flight control software.
- Nissan cars recalled over 1 million cars from the market due to software failure in the airbag sensory detector. And two accidents were reported due to this software failure.
- In May 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank to be credited with 920 million US dollars.
We can see a lot of examples where we should give proper attention to software testing. It can cause you money loss, as well as someone, who can also lose their life. So it becomes very important to implement this properly.
What are the benefits?
There are many benefits that testing offers to you. As you know improper testing can also lead to death or injury, it offers the following benefits too.
- Better Quality of products.
- Customer Satisfaction
- Improves user experience.
How Many Types of Software Testing?
Software Testing is classified into three types:
- Functional Testing
- Non-Functional Testing
This type of testing is based on the black box testing and we need to check the functionality of our software application. We need to check that our application is working as expected or not. We will provide the input and then we have to check that we get the expected result or not. The source code is not visible to us. We have nothing to do with the source code. If we are doing this in manual testing then we have to do this by entering the values manually. The other way to do this is through automation. There are tools like selenium which is based on java language. We can also perform this testing through that tool.
- Unit Testing
- Integration Testing
- UAT ( User Acceptance Testing)
Non Functional Testing is related to the performance, endurance, etc of the software application. It is not related to the coding section. We have to check how much time our application needs to load, how many users can log in at the same time, did our software application crashes, what will happen if we run our application on different platforms like android/ios/windows, etc. There are a lot of factors that we need to check in the functional testing. The following are the types of non-functional testing.
When the software passes all stages of testing, then it is released and is available in the market. Now it is possible that the software needs some updates in the future or it may receive some errors. So The testing activities which are performed in this phase are known as maintenance testing. Every client wants to remain up to date in the market and needs support even after the release of their software product, So this testing is very important and needs to be performed efficiently.
Maintenance testing is of four types:
- Corrective Maintenance
- Adaptive Maintenance
- Perfective Maintenance
- Preventive Maintenance