Most important Definition in Software Testing
Before and during software development, reviewing or analysing that are we building project right?
After majority of software development work has been done.perform system testing such that we are building the right product.
What is software testing?
The goal of software testing is to
- Demonstrate the faults are not present.
- Finding Errors.
- Try to prove that the software doesn't work.
- Ensure that all the functionality has been implemented
- Ensure that the customer will be able to get his work done
- Software testing must be applied systematically
Testing involves in
- Operation of system or application
- under Controlled Conditions
- Evaluating the results
Types of Testing :
Static Testing : The testing that doesn't require program execution is known as static testing
Example : syntax testing
Dynamic Testing : the testing that requires program execution is known as Dynamic testing
- white box testing
- black box testing.
White box Testing : Test performed with the knowledge of internal structure of the program.it is said to be structural testing or white box testing.
Black box Testing : Test performed with out the knowledge of internal structure of the program,again the requirement document then it is said to be Functional testing or Black box testing.
Difference between White box testing and Black box testing
White box Testing
Black box testing
Inspect programmed behavior
Inspect specified behavior (againts requirement)
Also known as Structural testing
Also known as functional testing
Internal structure of program is visible Example : Unit Testing
Internal structure of program is not visiable Example : System testing
- Unit Testing
- Integration Testing
- System Testing
- (UAT) user Acceptance Testing
- Regression Testing
- Alpha Testing
- Beta Testing
- Reliability Testing
- Performance Testing
- Stress Testing
- Volume Testing
- Load Testing
- Configuration Testing
- Compatibility Testing
- Usability Testing
Unit Testing : Test the code of Single module.
Integration Testing : Integration testing is systematic technique to uncover errors associated with interfacing (build the program structure as per the design)modules/units.
Test drivers : It is a software which executes software in order to test it,Providing a framework for setting input parameters,executing the unit and reading the output parameters.
Stub : A stub is an imitation of a unit used in place of the real unit to facilitate testing.
integration Strategy : Top down, Bottom up, Umbrella.
System Testing : Testing the system in artificial conditions such that to ensure that the system should perform as expected and as required.
UAT user Acceptance Testing : Customer performs the test randomly and accepts or rejects the product.
Regression testing Vs Retesting
Regression Testing : Test after changes to ensure that what was working earlier has not broken as result of changes carried out.
Re- testing : Retesting is act of repeating a test to verify that a found defect has been correctly fixed or not
Alpha Testing: The first test of an experimental product carried out by the developers.
Beta Testing : The second test of an experimental product carried out by out organization.
Reliability Testing : The behavior of the application is tested under abnormal conditions such as "how does system behave when system is switched off?"
Performance Testing :
Stress Testing : Evaluate system for short period of time.
Volume Testing :
- involves handling large amount of data.
- Determine if data structure can accommodate all possible data.
Load testing : Evaluate response when all the users and /or devices are simultaneously using the system.
- Check if the system works with different hardware and software.
- Check if the system works with different settings.
Compatibility Testing :
- Check for compatibility with different flavors of environment.
Example : web application running on different versions of web browsers in different operating systems.
Usability Testing : Check for the end-user perspective if the application is usable to novice user