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)
Search this site - within more than 167 pages of Software Testing
Do not want to miss any Software Testing tips and latest updates? Subscribe the Software Testing Newsletter and get effective software testing tips