As we all know what software is so basically whenever you have a problem in real world, we see that with the help of a virtual world solution. We are solving a life issue with the help of software and then to build that we have certain steps to follow and we all know about Software Development Life Cycle (SDLC).
Now based on what model you follow letβs talk about the waterfall model we have certain steps to follow the first one is where you take the requirements then you have to design the software. Designing means that we use different designing tools to design the user interface and then we code the software and then the next step is very important which we normally miss which is testing.
Testing is a phase in the software development life cycle. So, what do we do in testing?
Whenever you say that you are building software of course itβs for the client. The client will make sure or you have to make sure that you are building the right product and you are building the product right and thatβs why we have these two words, validation and verification in testing in fact there is also a V model available but that simply means validation and verification.
Verification is more about whether are you building the project/product right it simply means whatever you are doing should work right. It should perfectly work there should not be any bugs in that.
For example, if you say you want to add two numbers it should be two plus two equals fours, it should not give you five.
On the other hand, we have validation is more of what you are building should match with the client requirement.
For example, If the client wants two plus two should be equal to five then you have to write software which says that two plus two equals five. In validation, we have to match client requirements.
When we build software the software should work and it should work efficiently and correctly but then at the moment, you said testing you know a lot of people who donβt like this word as well testing why you have to test. We love development but testing is important.
There are two types of testing:
- Manual Testing
- Automation Testing
Manual Testing means you are testing everything manually. You are checking the outputs; you are giving some inputs.
Automation testing, means you write scripts to automate your testing using different programming languages and testing frameworks.
Thereβs one more classification of testing which is functional testing and non-function testing.
Functional testing means you are testing the code letβs say if you write multiple classes or multiple methods, you are testing them so youβre basically testing the actual working of the software thatβs the functional testing of the code part and then input parts.
But what about the performance and the scalability? For example, when you say performance when you run the software it should work smoothly right. Scalability, letβs say can you scale your application like if you deploy an application on the cloud can you scale it thatβs also important rights so donβt just build a software which cannot scale but it works no oneβs wants that so your software should be scalable. These things come under non-functional.
What about load balancing or loads can your software takes loads?
For example, letβs say a streaming application had 25 million users at the same time watching a football match can your application handle that load thatβs also important thatβs comes under non-functional testing. So, how do we test it? We have two techniques which are black box testing and white box testing.
Black box testing means if you want to test a mobile phone now but you donβt know how this phone works internally so what will you do when you buy a new phone or when you go to mobile to buy a new phone what you do you unlock the phone you check okay so unlocking work you want to test the cameras. You test the screen and everything. You will test the phone outside. You donβt know how it is what is going on inside and thatβs called black box testing. You give the input and expect the output.
White box testing means we donβt just test the outer working of the software but internally, we will open this and we will check each and every component how that works. That is white box testing so in coding terms you will check the actual code.
Okay so, we have talked about testing types and techniques now itβs time for different levels of testing.
Letβs take an example of Java, in Java we write a lot of classes and each class will have certain methods. Now you want to test the smallest part of your software which is a class so you will test a class and you will test them as units. So basically, you will test each class which is a unit and we will class them as unit testing in Java if you want to achieve that we have JUnit. Then once you test each and every component now you will combine all the components to test this as software which is integration testing so you will combine a lot of different classes and then APIs and now once you have that you will do system testing itβs the overall testing of your system if you deploy it how that works with other software or about and with the actual data now once you have your system testing next step will go for is acceptance testing. Now this is where you will try to match your software with the user requirement you will have the business requirement with you and you will try to match - hey is it matching if that matches thatβs your acceptance testing.
So, these are the four-level available and then to do the actual testing we have different types of people. For example, when you use a developer, we normally focus on the unit testing and integration testing as well so nowadays things are changing initially, we used to have two different groups but now we have an agile team where everyone does everything as a developer itβs your responsibility at least to do the first part which is unit testing because when you write a class you have to make sure that class works. If you make a change in one class it should not affect the other classes you have to make sure that as well.
Let's connect π
You can follow me on Twitter, Instagram, LinkedIn & GitHub
If you like this post. Kindly support me by Buying Me a Coffee
Oldest comments (0)