Testing Software Development Life Cycle

0 views
Skip to first unread message

Edco Haglund

unread,
Aug 5, 2024, 1:52:48 PM8/5/24
to symvanider
Thesoftware testing life cycle is the sequence of activities that happen during software testing. By employing a sane software testing life cycle, an organization ends up with a quality strategy more likely to produce better results. Why is this so important, though? It all boils down to customer satisfaction. Presenting a perfect product to the customer is the end goal of every organization.

Nothing puts off customers more than bug-filled user experience. So when enterprises realized this, they began to include testing as a mandatory part of the SDLC. Since then, testing has become an integral part of every organization.


A life cycle is the sequence of changes an entity goes through from one form to another. Many concrete and obscure entities go through a series of changes from start to finish. When we talk about the software testing life cycle, the software is an entity. The software testing life cycle is the process of executing different activities during testing.


These activities include checking the developed software to see if it meets specific requirements. If there are any defects in the product, testers work with the development team. In some cases, they have to contact the stakeholder to gain insight into different product specs. Validation and verification of a product are also important processes of the STLC.


Validating every module of software or application is a must to ensure product precision and accuracy. Since software testing itself is an elaborate process, testers carry it out in the following phases:


Complexities can pop up if testing lacks organization. The complexities may include unresolved bugs, undetected regression bugs, or in the worst case, a module that skipped testing because the deadline got closer.


Your valuable software testers have to view, study, and analyze the available specifications and requirements. Certain requirements produce outcomes by feeding them with input data. These requirements are testable requirements. Testers study both functional and non-functional requirements. After that, they have to pick out testable requirements.


These things are universal and should always be tested. But the requirement analysis phase is about knowing more specific details about the product. You need to learn how the product should be in its ideal state. This phase generates as deliverables a detailed requirements report, besides analysis of test automation feasibility.


The second step is test planning, and the QA team creates this plan after analyzing all the necessary testing requirements. They outline the scope and objectives after understanding the product domain. The team then analyzes the risks involved and defines time schedules and testing environments to create a strategy.


After that, management finalizes the tools and assigns roles and responsibilities to individuals. An approximate timeline is also defined by which the testing of each module should be completed. The most important delivery generated in this step is the test plan, which is a document describing the motivation and details of the testing activities for a given project. To sum it up:


You can prioritize these test cases by researching which of them are most common or which of them would affect the product the most. Next comes the verification and validation of specified requirements in the documentation stage. Also, the reviewing, updating, and approval of automation scripts and test cases are essential processes of this stage.


This phase also includes defining different test conditions with input data and expected outcomes. So, the main deliverables produced in this phase are the actual test cases organized in their test suites. To sum it up:


An application is ready for testing once the team is done with all the previous phases. According to the test plan, the testers execute test cases. They also identify, detect, and log the defects, thus reporting the bugs. The team is also responsible for comparing expected results with the real outcome. If any bugs are found, they need to be documented to pass it on to the development team for a fix.


Once the development team removes a bug, regression testing begins. Regression testing is to ensure that the software or application works even after deploying a change. When testing after a bug fix, test the complete product again. Because a fix for a bug could create a bug on some other part of the product.


Apart from that, the team also considers test metrics, the fulfillment of goals, and their adherence to deadlines. Once they have a total grasp on what happened, they can evaluate the entire testing strategy and process. To sum it up:


Exit criteria state the requirements and actions to complete before the testing ends. In other words, they include items to cross off the task list and processes to complete before testing comes to a halt.


The Software Testing Life Cycle (STLC) is a sequence of specific actions performed during the testing process to ensure that the software quality objectives are met. The STLC includes both verification and validation. Contrary to popular belief, software testing is not just a separate activity. It consists of a series of methodological activities to help certify your software product.


Since we can explain STLC as a set of testing measures, we can assume that it includes various stages, such as planning, control, implementation, standardization, and so on. All this leads us to the fact that the STLC is needed not only to test the developed product but also for the following:


As mentioned earlier, the Software Testing Life Cycle and the Software Development Life Cycle are closely related to each other, but they simultaneously pursue different tasks of the same goal, namely:


Where the SDLC and the STLC lines move in parallel for most of the project but begin to converge rapidly during the software development phase with deep synchronization during the SDLC Test phase. This graph is relevant to many different types of projects, not just large or independent ones, and will remain the same for the implementation of a task within a project and reverse for a project with a huge number of iterations (but in this case, the lines will diverge and converge more often).


The exit criteria describe all of the requirements that must be met before testing in a particular phase can be completed. All deliverables should be finished in order to satisfy the exit criteria. There should be no flaws, mistakes, or bugs, and all high intensity and high priority mistakes have been corrected.


Requirements analysis is one of the most important phases because this is when you can fix project flaws almost completely free of charge. The requirements analysis phase also identifies the potential need for automated testing and allows making economic calculations of labor costs based on the project estimation. This is also when the Entry Criteria and the Exit Criteria are discussed and documented.


Now imagine that an edtech startup company is developing an online learning platform for K-12 students to be launched in six months. The platform will include various types of educational content, such as videos, quizzes, and interactive exercises, and will be accessible on desktop and mobile devices.


The edtech startup conducts market research and user surveys to identify the target audience and their preferences and needs. They discover that the majority of K-12 students prefer interactive and gamified content, and that teachers prefer content that aligns with their curriculum standards and provides analytics and progress tracking features.


Based on these findings, the company defines the requirements for the platform, including content types, curriculum standards, and the user interface and experience. For example, they decide to include animated videos, quiz games, and virtual labs, and to align them with the common core standards in science and math. They also design the user interface to be intuitive and engaging, with colorful graphics and sound effects, and to include features for tracking progress, communicating with teachers, and accessing learning resources.


Back to our example, this is when the testing team reviews the requirements and defines the testing objectives, strategies, and criteria. They decide to focus on functional, usability, and performance testing, and to use both manual and automated testing approaches.


They identify the testing types, such as functional, usability, performance, security, and accessibility testing, and plan the testing schedule, resources, and tools. For example, they decide to use JIRA for test case management, Selenium for automation testing, and LoadRunner for performance testing. They also allocate specific testing tasks to individual team members and set up regular testing meetings and checkpoints.


They also set the quality goals and metrics to track and measure the testing progress and results. For example, they set a goal of achieving a 95% pass rate for functional testing, a 80% satisfaction rate for usability testing, and a 3-second load time for each page.


The testing team from our example creates test cases for each testing type, based on the requirements and the testing objectives. For example, they create test cases for each type of interactive content, such as videos, quizzes, and labs, and test them for functionality, usability, and performance.


They design the test scenarios, inputs, expected outputs, and the test environment and data needed for each test case. For example, they create different scenarios for a quiz game, such as single-player mode, multiplayer mode, and time-limited mode, and test them with different input parameters and expected outcomes. They also create a test environment that simulates different user devices and networks, such as desktop, mobile, and 3G, and test the platform under various conditions.


They also develop the test scripts and automate the testing process wherever possible to increase efficiency and reduce manual effort. For example, they use Selenium to create automated scripts for regression testing, and to test the functionality and compatibility of the platform with different web browsers and operating systems.

3a8082e126
Reply all
Reply to author
Forward
0 new messages