SDLC and STLC, A Must Know For Every Project

Software Development Life Cycle

SDLC is the process used by every organization for a software project. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.

Let's see the pictorial view and go deeper into each of the stages.

sdlc

  • Stage-1: Planning & Requirements Analysis

    Requirements is the first step of every project we start. It might be a mobile or a web application and planning for it in the most optimized way. The planning for the requirements are done by the senior professionals for satisfying the customer's needs, surveys and using the experts in the industry.

    Planning for the assurance of the product, the requirements and pre-identification of the risks are done so that every work output is feasible and optimum. This stage does the analysis of the product's requirements.

  • Stage-2: Defining Requirements

    After the analysis of all the requirements for the product, the proper documentation is done for the each requirements by defining them based on why and how (in a most optimum way) the requirements are to be taken care of. This is done using Software Requirements Specification (SRS) documents that contain all the requirements to be designed for the development of the product. The SRS is the fundamental and very important document since it is required in every stage of the product development.

  • Stage-3: Designing the Product architecture

    The architecture is done based on the SRS document that is made from the previous stages. Normally not only one design for the product is made/developed, more than one is developed and specified in the Design Document Specification (DDS). Then, this DDS is reviewed by all the stakeholders and keeping in mind the risk assessment, the product robustness, the design modularity and the most optimum design or architecture is chosen and before that every detail of the proposed or chosen architecture's internal structure should be specified in the DDS.

  • Stage-4: Building and Developing the Product

    Here in this stage, the actual work/development and product building starts. The coding starts by the developers working on the project based on the DDS prepared in the previous stage. Here the coding guidelines are followed. That is the basic and most important part since that is the first thing to be seen if the project transfers to other developers. The programming language is followed based on the software being developed.

  • Stage-5: Testing the Product

    This is another important part of SDLC models. This stage refers to the testing of the staging of the product where the defects of the products are reported by the testing group, then featured to the developers who fix the errors reported and again re-tested until and unless the product finally reaches the standards that is defined in the SRS.

  • Stage-6: Deployment of the product

    Once the development of the product is done after the series of coding and testing is done and the final outcome is satisfactory depending on the specification provided in the SRS, and based on the feedback from the customers, then the deployment is done and the application goes live for the users too.

Software Testing Life Cycle

As discussed above about the SDLC that was related to development, as we know the development is incomplete without testing, unless and until it is confirmed that the development is free of bugs or Issues, it cannot be released to the customers. Similar to the development, testing also has its life cycle. Now let's explain the Software Testing Life Cycle. This involves a series of activities that are required to certify a product before delivery.

The various stages are listed and briefly explained below:

stlc

  • Stage-1: Requirements Analysis

    In this phase, as the name suggests, the test team gathers and studies the information required from a testing point of view. The QA team discusses with the development team, the clients and other stakeholders to gather more knowledge on the product to be tested. Requirements are of the two types Functional (what the S/W must do based on the SRS) and Non Functional (testing the performance of the product).

    If in case the requirements or the flow of the application is not understood by the test team, they consult the respective Business Logic analysts, Team Leads/Developers, to get the thorough knowledge of the application. Also, here the priorities are kept in mind if there are any required by the client.

  • Stage-2: Test Planning

    As the name suggests, Test Planning it is the stage where the testers plan the process to follow for testing the product. This is a very important stage since this would decide the estimate of the completion of the testing process since if it is done in a planned and optimized manner it will lead to a good product development. Test tools selection plays a vital role here and also the Development team is given the estimation by which the testing process would end. The test team also provides the estimation of cost along with the time estimate.

  • Stage-3: Test Development

    This stage can also be called Test Design, where the test case is prepared. Where, depending on the planning done in the previous stage, the test design is made on the basis of which the work would be started. This is the STLC phase where the testing team documents the detailed test cases. Then these test cases are reviewed by the reviewer and then it is approved. The Requirements Traceability Matrix is prepared that is an industry-accepted format/rule for tracking requirements where each test case is mapped with the Requirements specified in the SRS (Requirements phase).

  • Stage-4: Test Execution

    Once the unit testing is done by the developers the test team gets the latest build. Here in this stage the test case is prepared and reviewed, is executed by the tester and the test results are the outcome here, these test results are captured, reviewed again and sent to the developers to work on the issues (if any), else a Green signal exists for the developers to continue with the new module as the previous work has passed the testing process. Hence, here we get to understand that "Testing is an iterative process, that is once the defect/issue is raised by the tester and then fixed by the developers, testing is again done to ensure the status of the defect".

  • Stage-5: Bug Tracking and Reporting

    As said above based on the test results, the tester files or reports the bugs/Issues found from thorough testing for the developers, so that they can go through and fix the bugs as soon as possible, so as to continue with further development. Once the developers are notified of the issue and bugs raised by the tester they begin fixing and implementing them. Not only issues, the testers also file suggestions if they think are required. The developers work on these points and then the testers test and assure the defects have been fixed and suggestions have been looked into and then pushed to the final testing.

  • Stage-6: Final Testing

    In this final stage the product is tested (functional and non-functional) for the final time with every bit taking into consideration, the quality of the product before releasing to the customers. Here apart from functional, non-functional testing is also taken into consideration. Then the final test and execution documentation is made.

Thus on a final note:

  • The SDLC and STLC are both interdependent, or so to be called STLC is a SUBSET of SDLC.

  • STLC cannot run independently since they are confined to the testing module only, whereas the SDLC is a vast model having wider area for executions and implementations.

  • SDLC is not sufficiently independent since the STLC is an important part of the product development since without testing the product cannot be released for delivery.

Thus for an efficient, optimized and best quality product, both SDLC and STLC are equally important in their aspects.