top of page

What is STLC? What stages of STLC do you know?



ISTQB definition:

A test process consists of the following main groups of activities:

  • Test planning;

  • Test monitoring and control;

  • Test analysis;

  • Test design;

  • Test implementation;

  • Test execution;

  • Test completion.

Test planning - the activity of establishing or updating a test plan.

Test planning involves defining the objectives of testing and the approach for meeting those objectives within project constraints and contexts. This includes deciding on suitable test techniques to use, deciding what tasks need to be done, formulating a test schedule, and other things.

Why do we write test plans? We have three main reasons: to guide our thinking, to communicate with others, and to help manage future changes. First, writing a test plan guides our thinking. Writing a test plan forces us to confront the challenges that await us and focus our thinking on important topics. Second, the test planning process and the plan itself serve as vehicles for communicating with other members of the project team, testers, peers, managers, and other stakeholders.

Third, the test plan helps us manage change. Test planning is an ongoing activity performed throughout the product’s life cycle.


Test monitoring and control - a test management activity that involves checking the status of testing activities, identifying any variances from the planned or expected status, and reporting the status to stakeholders

So, in test monitoring, we continuously compare actual progress against the plan, check on the progress of test activities, and report the test status and any necessary deviations from the plan. Test monitoring is the ongoing comparison of actual progress against the test plan, using any test monitoring metrics that we have defined in the test plan.

Test progress against the plan is reported to stakeholders in test progress reports or stakeholder meetings. One way we can monitor test progress is by using exit criteria, also known as the 'definition of done' in Agile development.


Test analysis - The activity that identifies test conditions by analyzing the test basis.

Test basis is everything upon which we base our tests. The test basis can include requirements, user stories, design specifications, risk analysis reports, system design and architecture, interlace specifications, and user expectations. In test analysis, we analyze the test basis to identify testable features and define associated test conditions.

Test condition (charter) - An aspect of the test basis that is relevant in order to achieve specific test objectives. See also: exploratory testing. Test analysis determines ‘what to test’, including measurable coverage criteria.


Test design - the activity of deriving and specifying test cases from test conditions

Test case - a set of preconditions, inputs, actions (where applicable), expected results, and post-conditions, developed based on test conditions. Test analysis addresses 'what to test' and test design addresses the question ‘how to test’ and what specific inputs and data are needed in order to exercise the software for a particular test condition. In test design, test conditions are elaborated (at a high level) in test cases, sets of test cases, and other testware. Test analysis identifies general ‘things’ to test, and test design makes these general things specific for the component or system that we are testing.


Test implementation - the activity that prepares the testware needed for test execution based on test analysis and design

In test implementation, we specify test procedures. This involves combining the test cases in a particular order, as well as including any other information needed for test execution. Test implementation also involves setting up the test environment and anything else that needs to be done to prepare for test execution, such as creating testware. Test design asked ‘how to test’, and test implementation asks ‘Do we now have everything in place to run the tests?’.


Test execution - The process of running a test on the component or system under test, producing actual result(s)

In test execution, the test suites that have been assembled in test implementation are run, according to the test execution schedule.


Test completion - the activity that makes test assets available for later use, leaves test environments in a satisfactory condition, and communicates the results of testing to relevant stakeholders.

Test completion activities collect data from completed test activities to consolidate experience, testware, and any other relevant information. These can include when a software system Is released when a test project is completed (or canceled) when an Agile project iteration is finished (e.g. as part of a retrospective meeting), when a test level has been completed, or when a maintenance release has been completed.


Human language:

In simple words, each stage with STLC can be described as:

Test planning - The process of writing and updating the test plan;

Test monitoring and control - is the process of checking whether everything is going according to the written test plan;

Test analysis - Is the process of determining ‘What to test’;

Test design - Is the process of determining 'How to test’;

Test implementation - is the process of setting up all the conditions necessary to start testing;

Test execution - is the process of executing test cases and comparing the expected and actual results;

Test completion - is the process of collecting data from completed test activities and reporting results.

Life example:

Example: The development team build a wishlist functionality for the website

Our first step of the STLC process is - Test planning

As explained in the article of the documentation section: What is a Test Plan? What does the test plan consist of? There are different types of test plans depending on the development methodology which is used.

In our example, we consider that the development team uses Agile methodology, in particular, Scrum. Therefore, we (usually this is a project manager or tester) write a test plan for a specific iteration of testing in which they will develop the wishlist feature.

This test plans consist of:

  • Test Plan Identifier:

  • References;

  • Introduction;

  • Test Items;

  • Features to be tested;

  • Features not to be tested;

  • Stakeholders;

  • Approach;

  • Pass/fail criteria;

  • Suspension and resumption criteria;

  • Testing activities and estimates;

  • Test deliverables;

  • Testing environment needs;

  • Risks And Contingencies;

  • Staffing and training needs - roles, activities, and responsibilities;

  • A schedule;

As you can see, one of the points of the test plan is the schedule. Imagine our test schedule for the wishlist feature looks like this: Component testing -2 days; Integration testing 2 days; System testing 3 - days.


The next step is test monitoring and control

During this process, we (usually this is a project manager or tester) verify whether everything is going according to the written test plan. Test monitoring and control might happen at any stage of the STLC, so we'll take a look at it at the next stage of Test analysis.


The next step is test analysis - Is the process of determining 'What to test'

So we review the functional requirements, specifications, and mock-up with a design for our wishlist feature. During test analysis, we notice, that the requirements mentioned functional requirements only for the wishlist as a registered user. While a guest user as well also is able to add products to the wishlist. We inform the team and customers about this, and the customers decide to add the same feature for the guest user as well. The development of this additional functionality affects our schedule specified in the test plan.


For such cases, we have test monitoring and control

Next, we carry out test monitoring and control and notice that our testing schedule looks like this: Component testing -2 days; Integration testing 2 days; System testing 3 - days.

However, we have added functionality that needs to be done. Therefore, we update our schedule considering that we will test additional functionality for the guest user as well. So your schedule changes to: Component testing -4 days; Integration testing 4 days; System testing 6 - days.


Our next step is Test design - It Is the process of determining 'How to test'

During test design, we create test cases for testing our functionality for both wishlists for registered use and guest user;


Our next step is Test implementation

Test implementation involves combining the test cases in a particular order and creating test suites. Based on our example, we create two suites of the test cases, one is for the guest users, and another one is for the registered users. The other test implementation process is preparing the test data, as we have test cases for the registered user, during the test implementation, we also create a test account for the registered.


Our next step is Test execution

During the test execution, we execute two suites of the test cases created during the test design and if the test cases failed, we create a bug report for each failed result. Bug report example we can see in a separate article in the documentation section: What is a bug (defect) report? What to include in a Bug Report?.


And our last step is Test completion

During the test completion, we collect test results of the completed suits of the test cases for both registered and guest users and report in detail about that.

Conclusion:

So, if you are asked at an interview Explain each stage of the STLC. The best way to answer is:

In simple words, each stage with STLC can be described as:

Test planning - The process of writing and updating the test plan;

Test monitoring and control - is the process of checking whether everything is going according to the written test plan;

Test analysis - Is the process of determining ‘What to test’;

Test design - Is the process of determining 'How to test’;

Test implementation - is the process of setting up all the conditions necessary to start testing;

Test execution - is the process of executing test cases and comparing the expected and actual results;

Test completion - is the process of collecting data from completed test activities and reporting results.

218 views

Recent Posts

See All
bottom of page