230 likes | 301 Views
Software Testing Life Cycle refers to 6 phases of the software testing process. Learn about each phase of STLC in-depth in our article, Source: https://www.goodcore.co.uk/blog/software-testing-life-cycle/
E N D
Software Testing Life Cycle – A Beginner’s Guide Blog URL: https://www.goodcore.co.uk/blog/software-testing-life-cycle/
Introduction: Testing is a fundamental part of any production process. No matter what the product is, it is always tested for quality and defects before it reaches the customers so that they receive a fully-functioning quality product. The same applies to software products as well. In the world of software, the testing process is formally called Software Testing Life Cycle (STLC)! For example, in a car manufacturing facility the production process consists of numerous steps including engineering, assembly, paint job, interior installations, etc. But before a car is shipped to a showroom to be sold to customers, it always passes through a rigorous testing procedure. This ensures that the final product meets the required quality and safety standards. Now think if the business is a software development firm and the product being produced is a customised piece of software. The same concept of quality assurance applies here as well! A software product is always tested and goes through a software testing life cycle before it is deployed to be used by the clients or end users. So if you are wondering how exactly is a software product tested, you need to understand what a software testing life cycle is and what steps are part of a successful software testing process.
What Is Software Testing Life Cycle? Software testing life cycle is a multi-step testing procedure that is carried out to certify a software product. It defines a series of phases that are performed by software engineers to test that the software is free of bugs and faults. You might already know that when developing a software, it goes through phases of a software development life cycle (SDLC). So how is software development life cycle (SDLC) different from software testing life cycle (STLC)?
STLC Vs. SDLC: How Do They Differ? The distinction between SDLC and STLC is actually very simple! SDLC outlines the steps of the overall software development process, all the way from gathering requirements to deployment and maintenance of the software. Testing is a step in SDLC that is performed before deployment. It is also commonly referred to as Quality Assurance. STLC on the other hand, is a series of steps performed within the testing phase. It outlines sequential phases and activities that are performed while testing a software product. Now that you are clear about what is STLC and how it differs from SDLC, let’s understand what are the different phases in STLC.
STLC Phases With the advancement of software technology, the testing process has also become more complex. Today a software product goes through multiple STLC phases before it is deployed and used. Various types of tests are conducted to identify not just the bugs but any minor glitches so that the clients are completely satisfied with the performance and quality of your products. STLC models usually consists of 6 phases of testing beginning from requirement analysis to test cycle closure. The phases of STLC take place in the following order: Requirement Analysis Test Planning Test case development Test Environment setup Test Execution Test Cycle closure
Continued… All software testing phases are important because they make sure that testing is carried out in a systematic manner and is documented to avoid any gaps. All STLC phases basically include a list of activities that need to be performed, and has a set entry and exit criteria.
What Is Entry And Exit Criteria? Entry Criteria: These are all the prerequisites that need to be completed before the phase of the testing life cycle can be initiated. Exit Criteria: These are the requirements that need to be met before the phase of testing cycle can be concluded. In the sections that follow we will take a closer look at what the entry and exit criteria for each phase of STLC testing are, and what activities are performed within it.
Requirement Analysis As the name suggests, a requirement analysis phase involves gathering information about the software requirements, and the purpose why the software is being built. It is very important to be familiar with the requirements of the software product in terms of its functionalities, specifications, and design. Reviewing these requirements allows the Quality Assurance (QA) team to know exactly what needs to be tested. This is the first step of a Software Development Life Cycle as well. The documents prepared at that stage, such as Functional Specification Document, Software Requirement Specification Document, and Application Design Document usually serve as a requisite for this phase. Using these documents, QA team reviews all the requirements and they consult project managers, clients, subject matter experts and other relevant people regarding any questions and queries they might have. This step ensures that they have a sound knowledge about the product that needs to be tested. Using the information gathered they should define the focus and priorities of the testing process. The test environment details should also be evaluated at this stage. Moreover, it should also be defined if automated testing will be required or not. Automated testing is a process where a software product is tested using automation tools that run predefined test cases. It needs to be decided in this phase whether testing will be carried out manually or using such automation.
Test Planning After the requirement analysis is completed the QA team proceeds to the test planning phase. It is a fundamental stage of a testing development life cycle. A test plan document is made during this stage that outlines the test strategy. You can think of this document as a blueprint of the entire testing process, the steps involved within it, the tools required and every other detail that will be important for testing of the software product. You can think of a test plan document as a business plan. A key step performed at this stage is that the risks and costs of the testing process are estimated. A team effort estimation document is prepared that measures the testing process in terms of hours required to complete it. Using this, a timeline for the process is created which becomes a part of the test plan document. The table below summarizes the requirements, activities and deliverables of the test planning phase.
Test Case Development Test case are detailed test scenarios that are executed to check every functionality of the software product. Imagine if you have to test an email app developed for mobile phones – for every functionality of the app, there will be a different test scenario. For example, to test that the login function of the app performs perfectly, emails are being transmitted from the sender to the recipient, formatting is proper, and hundreds of other test cases will be written in order to ensure that all aspects of the application are tested. Let’s take a closer look at this example. When a user tries to login to the app, they will perform the following steps: Launch the email app on their phone Enter their Email address Enter their Password Click the login/submit button. This scenario can result in a number of test cases, for example: Test Case # 1: Test result when correct email address and password is entered Test Case # 2: Test result when incorrect email address and password is entered Test Case # 3: Test result when correct email address and incorrect password is entered Test Case # 4: Test result when incorrect email address and correct password is entered Test Case # 5: Test result when email and password are left blank For a thorough testing process, multiple detailed test cases will be written for each functionality so any error or bug can be identified and fixed. In the test case development case, a different kind of test cases known as ‘Smoke cases’ are also prepared which I will explain in a bit more detail in the next section. Along with this, at this stage you also identify the data you require to execute all the test cases.
Continued… When test cases are developed, the software testing stages proceeds to the step of Test Environment setup.
Test Environment Setup Out of all the STLC phases, this is a particularly important phase of the entire software testing life cycle. It is important to ensure that the environment in which the software is being tested closely matches the environment in which the application will be used after deployment. For example, a banking application which will run on client’s server is to be tested, then for a successful testing process it is important to test the application in an environment which replicates the environment in which it will be used. Environment consists of software and hardware that are required for the application to function. Environment usually comprises of servers, systems, database, operating systems etc. A key step of this phase is what is referred to as “smoke” testing. Smoke test cases are positive test cases that are run to see if the software meets the build acceptance criteria. This basically means that they are executed to check that the software product is built stable enough to be tested. Since it is a non-exhaustive test, it only tests the main functionalities of a software product. For example, a smoke test for an online banking application would check if the login function of the app is working, if the interface is loading, if each clickable option on the homepage is working etc. Once it is established that the basic features are working only then a more exhaustive testing of the entire product can be completed in the next phase.
Test Execution This step is the main crux of the entire STLC process. This is the stage where all the test cases that were developed are executed. There are two ways to of execution: manual and automatic. In manual testing, a Q/A engineer manually performs the test cases and records the results. While for automated testing, test scripts are developed that are automatically run in an automated testing tool to check the results of each test case. There are 3 possible results of test case execution: Passed, Failed, or Blocked. Passed: A test case is passed when it is executed and the result is as per the required output. For example, in our login functionality example, when a correct email address and password is entered and the user is successfully logged in, it shows that the test case is passed. Or in other words, no bug is identified. Failed: If an incorrect email and password was entered and the user was still able to log in, instead of being shown an error, it shows that the test case failed. Blocked: A blocked test case is when a case execution fails due to some internal or external defects in the application. For any test cases that are failed or blocked, they are reported back to the development team who fix the bug. Once it is fixed, it is retested to ensure that the functionality performs perfectly.
Test Cycle Closure Test Cycle closure, as the name indicates, is the concluding stage of the software testing cycles. When the test execution stage is completed, as defined earlier, a closure report is prepared. Closure report is a document which evaluates the entire process and all the phases of software testing. It evaluates the process on the basis of objectives, time, cost, coverage, and number of defects and bugs identified. Testing is a process that can go on for multiple cycles, but to make sure that it is concluded an exit criteria is decided between the clients and the software engineers. Usually, this criteria can be something like when the 90% of the testing is bug free, or when there are less than 10% bugs reported, etc. When a STLC process meets the exit criteria, it is concluded by preparing a closure report. Often after this, the product is sent for User Acceptance Testing (UAT) where the software is tested by the actual users who will be using the product in the long run. If any errors or bugs are overlooked by the engineers and are identified by the users they can be communicated to them to have it fixed.
Now That You Know What the Software Testing Life Cycle Is – Let’s Understand at What Stage of SDLC It Is Performed As discussed previously, testing is an essential part of the software development process. But at what stage of the development cycle is testing performed? Well, the answer to this lies in differentiation between the kinds of testing. Testing can be for two kinds, one which is for the purpose of verification and one for validation. This can also be understood as the concepts of Quality Assurance and Quality Control, respectively. Validation or Quality Control of the software product is done only after it is developed. It is conducted on a completed or near-completed product to ensure that it performs flawlessly. In other words, the Test Execution phase of the STLC is a phase where the product is tested for Validation or Quality Control. While, verification or Quality Assurance of the software product is performed throughout the development process, even before the product reaches a completed form. It is a process of evaluating work products at every step to make sure that they are bug-free and meet the software specification. It is performed parallel to the development life cycle phases.
Conclusion: Let’s recap everything discussed about what is STLC and its different phases of testing. Software testing life cycle is similar to how any other products are tested for quality before they reach end customers. As discussed previously this process involves 6 stages beginning from requirement analysis to closure. In a world where we as users constantly demand applications and software for our needs, we remain connected to them 24/7 and some of our most important tasks are performed by them. We as users demand software products that perform perfectly, because let’s be honest, nobody likes an app full of bugs and glitches. Hence, all software products should pass through a rigorous STLC testing to make sure we as customers are satisfied with the performance quality.