What is Software Testing Life Cycle(STLC)
Software Testing Life Cycle(STLC) is a sequence step process used in the IT industry to test out Softwares. The difference between software development life cycle and testing cycles lies that for development, you need to please the client! He has certain requirements, and you need to make sure you deliver that in the confined timeline whereas in the testing process is all internal process where all the interactions are with the developer, so that in the end a client gets well-tested defect-free application. Software testing is an integral part of any organization and becomes more and more serious as the project value increases as now every patch that goes in, is tested for multiple rounds again and again because here one tiny bug could cost millions, so it is pretty serious!
Software Testing Life Cycle Phases:
The steps through which every module or development change/patch goes through before getting deployed to live server is via testing it out explicitly. The reason this life cycle is adopted is to create transparency as to where the testing status lies in the code to be deployed. So, there are in total of six phases: Requirement analysis, Test Planning, Designing Test Cases, Test Environment Setup, Test Execution, and lastly test Case Closure. These steps never change whether there is automation testing or manual testing. As we are aware that there are automation tools like Jira that integrate with version control systems to create a seamless pipeline that is well documented and automatically merges the code once the test case is closed successfully. So, let’s take about each of these steps and how they are done in the industry.
This is the first step in the software testing life cycle where a quality Analyst gathers information about what was the client’s initial requirement and how the developer has decided to put across. Here the analysis is done at both the code level and functional level, to be able to perform both structural and functional testing, It is very important as getting the requirement right is necessary, then only a tester would be able to identify the loopholes or bugs that could creep in. Usually this part is assigned to the most experienced tester along with project manager.
Once the tester is brought parallel to the development now he could use his experience and tools that are available in the market to begin testing. Not every test case could have an automated tool and would be requiring manual help. This step is all about optimizing the resources in hand. For example- there is an input form developed by the developer where the user can enter his profile-name, age, gender. Limiting the size of Name, Making sure calendar input is based on the Indian calendar and gender is must fill. Then listing all the possibilities say user resubmit the form, or close the window and then try again, or enter age such as 200yrs, this all are test cases but not everyone is mandatory to test. Prioritizing and planning a roadmap to testing is what the main focus is.
Designing test Cases:
If the prior step is done efficiently, this becomes an easier step to design the test cases. Because once we know what needs to be done, then it is pretty much like a schedule. There is a standard form where an excel data sheet is maintained and tester needs to ensure that he is going through all the necessary steps, but now with automation tools these are integrated with VCS. This becomes even fun as when certain cases pass through the script, a workflow is executed which would automatically merge the code on successful completion. And that documentation is easily shareable to all too and is transparent!
Test Environment Setup:
If you are working in a software company for even few months, you would become aware that there are multiple servers allotted for testing, where there is a test server on which testing is performed, thereafter there is a UAT server where a user does his acceptance testing and finally live server. So, a separate test environment is set up which usually is the same server but with the different port to of course optimize the resources more efficiently.
Now testing itself is of two types- functional testing and structural testing. When talking about functional testing, manual test cases needs to be passed is sufficient. Like for a login form-On correct input there is a successful login and on incorrect you get an error message and based on that forming multiple test cases as if the username is empty, the password is empty or user is logged in from multiple geographic locations, etc. But for structural and performance-based testing where there is a speed test, performance test and load testing. Test cases are executed on the scripts which could be on Selenium, Appium and many tools there are in the market. Now, if there is a failure then, the code is sent back to the developer with entire documentation to redo the changes. This is the main step where developers are holding their breath😜
Test Case Closure:
This is the last step of the software testing life cycle. Just a few years back when all there was manual testing, the success result was documented in an excel sheet or word file, whatever the company was comfortable with. But now we have Softwares like Jira which integrates with version controls and since everything now is in the cloud, it is pretty efficiently documented there only. These automation testing tools bring a lot more clarity and efficiency to the testing process and made it a whole more convenient.
So, these were the 6 phases of the software testing life cycle. Hope you learnt something new. Do, check out similar blogs. Happy Day.😊