Wednesday, 19 August 2015

What is Software Testing Life Cycle (STLC)?


Details of 8 Phases of Software Testing Life Cycle (STLC):

Evolution:
1960’s Trend:
STLC 1
1990’s Trend
STLC 2
2000’s Trend:
STLC 3
The trend and competency of testing is changing. Testers are now required to be more technical and process oriented. Testing now is not only limited just to find bugs but has a wider scope and is required right from the beginning of the project when the requirements are not even finalized.
Since testing is also standardized. Just like development of software has a lifecycle, Testing too has a lifecycle. In the subsequent sections, I will be discussing about what a life cycle is and how that is related to software testing and will try to elaborate it.
Lets start!
What is a Lifecycle?
Lifecycle in simple term refers to the sequence of changes from one form to other form. These changes can happen to any tangible or intangible things. Every entity has a lifecycle from its inception to retire / demise.
In a similar fashion, Software is also an entity. Just like developing software involves a sequences of steps, testing also has steps which should be executed in a definite sequence.
This phenomenon of executing the testing activities in a systematic and planned way is called testing life cycle.

What is Software Testing Life Cycle (STLC)

Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence to ensure that the quality goals have been met. In STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals and deliverables. Different organizations have different phases in STLC; however the basis remains the same.
Below are the phases of STLC:
  1. Requirements phase
  2. Planning Phase
  3. Analysis phase
  4. Design Phase
  5. Implementation Phase
  6. Execution Phase
  7. Conclusion Phase
  8. Closure Phase
#1. Requirement Phase:
During this phase of STLC, analyze and study the requirements. Have brain storming sessions with other teams and try to find out whether the requirements are testable or not. This phase helps to identify the scope of the testing. If any feature is not testable, communicate it during this phase so that the mitigation strategy can be planned.
#2. Planning Phase:
In practical scenarios, Test planning is the first step of the testing process. In this phase we identify the activities and resources which would help to meet the testing objectives. During planning we also try to identify the metrics, the method of gathering and tracking those metrics.
On what basis the planning is done? Only requirements?
The answer is NO. Requirements do form one of the bases but there are 2 other very important factors which influence test planning. These are:
– Test strategy of the organization.
– Risk analysis / Risk Management and mitigation.
#3. Analysis Phase:
This STLC phase defines “WHAT” to be tested. We basically identify the test conditions through the requirements document, product risks and other test basis. The test condition should be traceable back to the requirement. There are various factors which effect the identification of test conditions:
– Levels and depth of testing
– Complexity of the product
– Product and project risks
– Software development life cycle involved.
– Test management
– Skills and knowledge of the team.
– Availability of the stakeholders.
We should try to write down the test conditions in a detailed way. For example, for an e-commerce web application, you can have a test condition as “User should be able to make a payment”. Or you can detail it out by saying “User should be able to make payment through NEFT, debit card and credit card”. The most important advantage of writing the detailed test condition is that it increases the test coverage, since the test cases will be written on the basis of the test condition, these details will trigger to write more detailed test cases which will eventually increase the coverage. Also identify the exit criteria of the testing, i.e determine some conditions when you will stop the testing.