Software Phases
There are 5 main phases of software development:
1) Documentation: Requirement analysis, design document, test documents
2) Coding/Execution: The development phase
3) Testing: Different testing methodologies
4) Deployment : The software is delivered to the customer
5) Maintenance: After deployment, if any failure is detected.
Software Testing
The software testing can be broadly categorized into two categories:
A. Blackbox Testing: Tested overall functionalities of the software without knowing the details of the implementation, or design.
B. Whitebox Testing: White box testing also considers the implementation details, software design, database design.
Defect & Failure: If a defect reached to end-user, it is failure. 60% defects are prone to exist in design phase and 40% defects in development phase.
Testing Process
The testing process
Unit Testing => Integration Testing => System Testing => Acceptance Testing
Acceptance testing is carried out alpha-testing(carried out in development site) and beta-testing(tested by actual customer).
When a bug is found or some module is changed/added, we have to carry out
1) Confirmation Testing: Confirm that the bug/defect is fixed.
2) Regression Testing: Testing if all other parts of software( or module) are working
More…
We must be also concerned with
1) Defect cascading: A defect can be propagated to other modules and affects those modules too, this is called cascading.
2) Cohabiting Software: When software is installed in actual end-user machine, there might be other software installed which using the same shared libraries or resources. In this scenario, the other software need to be carried out testing.