Software testing is a procedure to check whether the expected results match to the actual results of the code.In testing.It is made sure that code doesn't have any semantic or syntax errors. Any gaps , missing code or requirements are identified. For example : Consider a source code to add two numbers.If I give input of 3 and 4 , the result should be 7. But somehow the result comes out to be 12 which means there is some logical error in the code.To identify the error , we need to test the source code. After testing only we will be able to find the error. This was the small example but in software industry ,there are big projects and thus huge scope of errors. Software bugs if unidentified can lead to huge loss including monetary and human loss. Therefore testing is the crucial thing to do.
Types of Testing
- Black Box
- White Box
- Gray Box
Black Box testing : It is a method to examine the system without going into the internal structure of the code.Tester needs to know what the system will do but how it does not need not be taken care of.Black box testing is focussed only on inputs and outputs.For example : A system that calculates average of given integer inputs .Test cases can include testing if the result of the average is accurate and matches to expected output, what happens if a string is given as an input instead of integer,what happens if negative number is given as the input.
White Box testing : It is a method to examine the system by going into the internal structure of the code.It can be done at unit,system or integration levels.Tester needs to know how the system works and also needs to apply his programming skills the test the code thoroughly.He needs to understand the functionality of the system and then create test cases and executes it.For example : If a person wants to transfer money to his friend's account.Number of steps and number of combinations are possible like if beneficiary is already added to his account , transfer currency is allowed and the amount is below/equal to limit then he can transfer the money,if it's not added then he needs to add beneficiary first and then check for transfer currency.And thus number of combinations are available.Testing has to be done at each and every step to make sure that money is not transferred to wrong account,the exact money is transferred and transfer limit has been taken care of.
Gray Box : It is a method in which tester has limited knowledge of internal details of the system. It is a combination of white box and black box testing.
Alpha Testing : It is done to find errors/defects in the software system before actually releasing into the market. The testing is done by highly skilled workers and involves both white and black box testing.
Beta Testing : It is also done to find errors/defects in the system before actually releasing into the market.The testing is done by end users.The users test the code and give feedback to company,the necessary changes are done and then code is released into the market.
Acceptance Testing : It is done by client to make sure that the flow of the system is as per business requirements and per needs of the user.If client accepts the code then it goes to production.It is also known as UAT(User Acceptance Testing).