I am almost a hundred percent sure that, once you hear the phrase “the circle of life”, you immediately recall the good old movie “The Lion King”. You might have wondered why I decided to use these words in the article title. I will tell you everything later. First, let me start with the following:
What is software testing?
What is a software testing life cycle and what stages it consists of?
The Life Cycle of Software Testing
What is Software Testing?
Software testing (also referred to as Quality Assurance) is the process of checking software quality: its performance, reliability, and adherence to project requirements.
According to TEST INSTITUTE,
“Software Testing is the Science and Art of delivering Software Products and Solutions to the end-customers with utmost possible Service Quality and with minimal interruption in Business Processes and Services.”
Overall, the goal of a software testing services company is to make sure that the software solution meets predefined functional and non-functional requirements.
What is Software Testing Life Cycle?
Software testing life cycle is a continuous and consistent process of Quality Assurance, it is the flow of a testing process. There are not many different types of software testing life cycle – just two, actually. Usually, the life cycle model in software testing involves a set of 6 steps that need to be completed for a certain feature or the product in general to be considered as tested. Sometimes, the sixth stage is omitted.
What Software Testing Life Cycle Stages Are There?
There are 6 stages of QA life cycle:
Test case design
Test environment setup
Each of these stages has entry and exit criteria. The entry criteria define when the stage can be started, and the exit criteria define when the stage can be considered complete.
Entry criteria: A certain part of the project scope needs to be implemented, the Requirement Specification and Acceptance Criteria need to be available.
Requirement analysis is the first stage of the software testing life cycle. The goal of it is to identify all the requirements that must be tested during this particular cycle.
At first, a Quality Assurance specialist prepares a list of questions about requirements to be tested. Then, they consult with the development team and a Project Manager, Product Owner, Business Analyst – whoever understands the requirements best. The goal of this consultation is to perfectly understand a particular functional or non-functional requirement. For instance, they clarify how fast the app should load or how the login process should be organized. After all, they define testing priorities.
Exit criteria: The Quality Assurance team understands the requirements, the list of testable requirements is prepared.
Entry criteria: A summary of the requirements to be tested must be prepared.
A well-known saying has it “Measure Twice, Cut Once”. Indeed, planning is integral to project success. Test planning is the second stage of software testing life cycle. The goal of it is to formulate a strategy according to which a certain requirement will be tested. The QA specialists or the QA team lead has to:
analyze requirements gathered at the previous stage,
list testing types that will be applied,
select testing tools,
list the deliverables,
compile a testing timeline,
assign testing tasks to the team.
Exit criteria: The testing plan is created; the following questions are answered: what will be tested, by whom, when and how long, and what resources are needed?
Test case development
Entry criteria: A summary of the requirements and a test plan have to be prepared.
Test case development is the third stage of the software testing life cycle. It is aimed to have test cases prepared. Basically, if test planning formulates a strategy, test case development formulates a tactic.
A Quality Assessment specialist has to create test cases:
select a testable requirement,
assign a unique ID,
name a test case,
outline testing steps,
outline the expected results,
leave sections for status, actual results, and comments.
Exit criteria: Test cases have to be prepared.
Would you like to learn more about how test cases and other QA documents are written?
Check my recent article “How to Write QA Documentation That Will Work?”. The explanations I offer are simple, and the examples are super clear.
Test environment setup
Entry criteria: A test plan should be ready.
The environment setup is the fourth stage of software testing life cycle, which, however, can be conducted in parallel to test case development. The idea of it is to prepare the test environment: servers, hardware, software, and test data. Once the testing environment is prepared, a QA conducts smoke testing to make sure that everything works as it should.
Exit criteria: The test environment needs to be set up and checked.
Entry criteria: Requirements specification, test plan, test cases, and test environment are provided.
Test execution is the fifth stage of software testing life cycle – the stage where all the magic happens. Here, according to a test plan, a QA specialist executes test cases in a certain test environment to check if the requirements outlined in the first stage are met. At this point, each test case has a status identified:
passed – the test case is completed successfully;
failed – the test case is completed unsuccessfully;
in progress – the test case is not completed yet;
blocked – the test case cannot be completed because of some bug or error.
For all the identified bugs, a QA compiles a defect report. After all the identified bugs are fixed, QA specialists recheck them – this continues until all the errors are solved.
Exit criteria: Test case report has to be compiled.
Entry criteria: Test case report is provided.
Test closure is the final stage of software testing. Here, the QA team analyses the software testing life cycle, evaluates their own performance, and prepares a test closure report. The report may feature mistakes that need to be avoided in the future or best practices that can be reused.
Exit criteria: Test closure report has to be compiled.
The Circle Of Life
Now it is finally the time for me to explain why I mentioned “The Circle of Life” from The Lion King. There are two reasons for that, so let me show you.
1. Software testing life cycle is a circle
Software testing is a never-ending circle (it does end only when the app is delivered). All the five stages mentioned above should be repeated over and over again in order to ensure that the software solution is reliable, performant, and bug-free.
Once you complete the cycle of unit testing, you proceed to integration testing. When this cycle is completed, you start a new one for the system testing. If this is over as well, you launch an acceptance testing cycle. Each time a new feature is added, you have to start with user testing again. You go circles and circles to make sure that the app is impeccable.
Do the terms “unit testing”, “integration testing”, “system testing”, “acceptance testing” confuse you?
Look through my recent article “How to Find Your Way Around Different Types of Software Testing?” to find out more about these and other software testing types and life cycle models in software testing.
2. Software testing gives life to the application
Unless the application, should it be web or mobile, is properly tested, it cannot be delivered to the end-user. A software solution that lacks proper software testing definitely contains bugs. In the best-case scenario, the app layout would be flawed and images or text blocks would overlay. In the worst-case scenario, sensitive user data would be leaked.
Today’s software market is so overcrowded that you cannot a single error in your web or mobile app. According to Statista, at the end of 2019, there were about 2,570,000 apps on Google Play and 1,840,000 apps on the App Store. The WebsiteHostingRating states that there were 1,744,517,326 websites online as of January 1st, 2020. So, once the users see at least a minor flaw, they will most likely close your app or website and move on to your competitor. The modern software market gives no second chance.
As the “Circle of Love” says:
Some of us fall by the wayside,
And some of us soar to the stars
If you want your business to soar to the stars (of course, you do), your app has to succeed. For your app to live and flourish, you have to test it abundantly.
To Wrap Up
In this article, we have concluded that proper software testing is integral to software project success. The software testing should follow a certain procedure – six steps, each with predefined entry and exit criteria:
Test case design
Test environment setup
These steps comprise a software testing life cycle – a circle, which repeats over and over again until the app perfectly meets all the requirements and is ready to meet the client. And this process is integral – without it, you are bound to lose the trust of your users.