Few days back, I was taking some interviews. I surprised to see some candidates were not able to explain simple concepts like SDLC & STLC. Everybody, was giving me very standards answers. SDLC - a systematic approach to develop a software and STLC - process of testing a software in a systematic and planned way. No one explains me logical Differences & Similarities between these two.
My question is very simple – How you can relate six phases Requirement, Design, Development, Testing, Deployment & Maintenance to Software Testing Life Cycle?
Let’s see how I related these six phases with STLC
|S. No.||Phase||SDLC - Software Development Life cycle||STLC - Software Test Life Cycle|
|1||Requirements Gathering||Requirements gathering is done by business analyst. Development team analyse the requirements from the design, architecture & coding perspective.||Testing team also review & analyse the requirements. Testing team identifies the testing requirements like what types of testing will be required and review the requirements for logical functional relationship between various features / modules, so that any gaps can be caught at an early stage.|
|2||Design||Technical architect works for the high level & low design of the software. Business analyst works for the UI design of the application||Here, test architect generally the test lead/manager, does the test planning, identify high level testing points. Basically, requirement detailing is done in this phase.|
|3||Coding or development||Development team does the actual coding based on the designed architecture.||Testing team write the detailed test cases.|
|4||Testing||In SDLC, actual testing is carried out in this phase. It includes unit testing, integration testing & system testing etc..||Test Execution and bug reporting, manual testing, automation testing is done, defects found are reported. Re-testing and regression testing is also done in this phase. But, I don't agree with this statement. So, if I want to relate the testing phase with STLC, I would say it it is testing of test cases & test plans i.e. is basically review of test cases, test scenarios etc..|
|5||Deployment||Application is deployed on production environment for real end users.||Final testing and implementation is done is this phase and final test report is prepared. For this statement as well, I don't agree. For software / application deployment is basically, when it is installed for real use. So, this way, STLC, deployment would be when test when test cases getting used i.e. execution of test cases.|
|6||Maintenance||Basically, it includes, post production / deployment support & enhancements.||Most of people say - Maintenance testing is carried out in this phase. My definition for this is - updation & maintenance of test plans, test case required for the testing of support requests & enhancements as a part of maintenance.|
There are two sides of this coin:
- Testing within the software development (Here, the old definition of STLC may be applicable)
- Consider testing as a independent sub project of a software development project (Here, I believe, old definition no longer sustains)