STLC

The STLC is part of the SDLC. It's a systematic approach that ensures the quality of a software product or services. Like the SDLC, the STLC also consists of different phases, listed as follows:

  • Requirement analysis: Once the project gets initiated, the team actively starts working on gathering customer requirements. In this phase, testers, business analysts, and developers take a closer look at each specification requested by users. For requirement analysis in STLC, testers can do the following things:
    • Testers need to break drown broader and more complex requirements into smaller pieces to understand the testable requirements, the scope of the testing, and verification key points, and to identify the gaps in the requirements
    • They can clarify their doubts regarding technology or software requirements, limitations and dependencies, and so on with the developers and business analysts, and improve suggestions or highlight missing information that needs to be added into the requirements
    • Testers can also highlight risks and develop risk-mitigation strategies before proceeding to the test-planning phase
  • Test planning: This is where testers (usually lead testers or managers) plan testing activities and milestones based on various factors, such as time, scope, and resources that help them to track the progress of the project. Let's check out some activities that the tester performs during test planning:
    • In this phase, testers plan test activities and strategies that can be used effectively during the subsequent testing phases
    • Also, the scope of testing needs to be identified and parts out of scope should be marked as well
    • They also need to decide on the testing techniques and types that will be implemented during the test-execution phase based on the current product requirements
    • Along with that, an understanding of the tool's requirements and the number of resources required with their skill level can help them plan tasks better

Considering these factors and the timelines for the selected project, a tester can prepare an effective test plan that will fit into the project budget and help the team to create a quality product. 

  • Test designing: This is where the test team starts to break down each requirement and converts them into test scenarios. These test scenarios cover happy path, positive testing, the critical path that needs to be verified, and functions that need to be verified with a different set of parameters. It also consists of negatives scenarios, acceptance tests, and scenarios based on user-interaction workflows and data flows.
    • Based on the type of application and the types of testing listed in the requirement analysis, phase testers can work on creating automated test scripts, adding scenarios for stress and load testing, and performance testing can help testers to test the application better and find more defects.
    • Once the scenarios are ready and reviewed, testers move on to preparing the test cases or test scripts (in the case of automation testing) in order to list the detailed steps.
    • One scenario can have one or more test cases, whereas a requirement can be linked to one or more scenarios. This mapping is helpful when creating a Requirement Traceability Matrix (RTM).
  • Environment setup: Establishing a separate test environment is always good practice. Keeping testing code distinct from development code can help both testers and developers debug the code in the specific version and get to the root cause more quickly. Also, it gives developers a chance to make bug fixes in the code and in their copy of the code, and to verify it in their environment to confirm that the fix is working before sending it to the testers. It saves the time and effort needed to log defects and collect artifacts.
    • When setting up the environment, testers need to ensure that they have configured the required version of the tool, the software, the hardware, and the test data.
    • They also need to make sure that they have authorization to access the environment with the required roles to test the application, databases, and other tools required. The testing environment should mimic the end user's environment. This results in documenting the known behavior of the product and helps to manage expectations after delivery.
  • Test execution: Once the code is ready and unit tested by the developers, it's deployed in the test environment so that testers can initiate the test-execution phase.
    • The first test that testers perform is a smoke test to validate whether the software product or service caters to the basic requirements
    • After the software passes the smoke test, testers can continue with the validation process, following the types of testing as planned during the test-planning phase
    • During the execution phase, testers log an undesirable result as a defect. Once the defects have been fixed, testers need to retest the parts that have been changed and the part of the application that has not been changed, as part of regression testing
  • Test reporting: It is very important for testers, leads, and managers to track and monitor the progress of the project consistently so that it becomes easy to identify obstacles or risks early. It also helps being agile to provide the solution and resolve the problem.
    • Reporting the test helps the stakeholders to know the status of the test execution after each iteration or test cycle.
    • It also helps defect managers to identify the blocked test case that is dependent on the defect.
    • Accordingly, its priority or severity can be changed so that it can help to progress test execution.
    • At the end of all iterations, a final report is prepared with the number of defects found during the test execution phase, the number of defects closed or marked as deferred, and the number of test cases passed or marked N/A. Along with this report, all the artifacts are validated and made sure that it's been added whenever it's needed. 
  • Closure: During the closure phase, test managers or test leads make sure that all the tests completed successfully, as per the schedule.
    • Team leads or managers make sure that all the required deliverables and closure documents are approved and accepted as per the evaluation criteria, and signed off as part of the closure phase

We will be learning more about each phase in the STLC, along with its practical implementation in Jira and using its plugin, in the following chapters.