Testing in software development is the process of executing the program with the aim of finding the errors. Software testing is the process of testing the software being developed and checking and finding if there is error or defects in the software being developed. We as a tester should be aware of different types of testing such as Functional testing, Automation testing, Agile testing and many other sub types.
Software Testing Principle:
Software testing is done to remove as many defects as possible. Software Testing should meet customer requirement and should be planned before implementing it.
Objective of Testing:
To execute a program with intend to find errors and to check the system as if it fits for the purpose or not.
Types of Software Testing:
The software testing is divided into two types:
1) Functional Testing: To check whether the software matches the functional requirement/Specifications or not. Some of the types of functional testings are:
a. Unit Testing:
– Individual units or components are tested.
– Done to focus on relatively small part of codes.
– To verify internal design
– Done by programmers
b. Integration Testing:
– Testing of combined parts
– To verify proper interfacing between the combined modules
– 2 types: Top Down and Bottom Up Integration Testing
– Done by developers
c. System Testing:
-It is done to check the whole system
– Done to check both the system performance and operational
features of the software
– Done by development team and users
d. Acceptance Testing:
– To check and verify if the system meets user requirements
– Tested by the end users.
2) Non Functional Testing: It is done to check the non functional aspects such as Performance, usability, reliability etc.
Various techniques and methodologies are used to check the logic of the system.Some of the most common testing methodologies are:
-Black Box Testing: No knowledge of internal design or code required
– White Box Testing: Knowledge of code and internal design required
– Incremental Testing: One of the methodology used in Integration
-Thread Testing: Used to verify the key functional capabilities of specific thread or task.
Alpha Testing and Beta Testing
Alpha testing is a testing done in earlier phase which is an alarm to detect the error in the earlier phase. Beta Testing is a testing done when development and testing are essentially completed. It is done to check the final bugs and errors need to found before releasing.
Testing in Agile Development
In the agile development the testing and development are concurrent unlike the waterfall model. The agile testing involves all section of cross functional agile team with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace.Specification by example is used to capture examples of desired and undesired behavior and guide coding.
Principles of Agile Testing:
1) Testing is continuous.
2) Continuous feedback mechanism
3) Test is performed by the whole team
4) Decrease time of feedback response
5) Less Documentation
6) Test Driven