Software applications and products are developed as per the client requirements by the development team. The ultimate goal of any software development is client satisfaction and delivering as per the client requirement and with quality. Testing helps to evaluate the application, system or product with the client to check if it meets the specified requirements.

What is software testing and why is it important?

Software Testing is a process for identifying errors, bugs, defects, gaps or any missing requirements as compared to the actual requirements given by the client. Software testing is an important aspect of software development.  A software testing life cycle is not an isolated activity. It is a series of actions performed during the testing phase of the SDLC to confirm that the software or the product meets the quality goals. The importance of testing in SDLC is to identify all the errors and bugs in an application or software by improving its performance and enhancing reliability.

Types of software testing

A tester performs two types of testing to eliminate bugs/errors. Broadly, there are two types of testing - functional and non-functional. 

Functional testing:

Functional testing is performed to test the functional aspects of a software application. Every function should be tested to verify if the functional requirements are met. There are various types of functional testing.

  • Unit testing
  • Integration testing
  • Regression testing
  • Sanity Test
  • Smoke test
  • Interface testing
  • System test
  • Acceptance testing/Beta testing

Non-functional testing:

Non-functional testing is done to test the performance, reliability, security and usability of the application. This testing helps to improve the quality of the application. Non-functional testing is performed using certain tools and not done manually.

  • Performance Testing
  • Load Testing
  • Stress Testing
  • Volume Testing
  • Security Testing
  • Compatibility Testing
  • Install Testing
  • Recovery Testing
  • Reliability Testing
  • Usability Testing
  • Compliance Testing
  • Localization Testing
  • Alpha testing

What is Software Testing Life Cycle (STLC)?

The software testing life cycle is a part of the software development lifecycle (SDLC) which only deals with the testing aspects. Software Testing Life Cycle (STLC) is a critical phase in every organization which deals with software development or product development. It is done by the testing team to ensure the software or product is as per the quality standards. The testing life cycle has a series of steps or stages.

These phases or stages may differ from organization to organization.  A tester can choose the testing type based on the software application or the product under development. The application or the product should meet the quality standards as specified by the client. 

Entry and Exit criteria

Software Testing Life Cycle is a series of tests conducted during the STLC. The testing cycle has various stages. Each stage has a certain entry and exit criteria.  The criteria have some activities and deliverables associated with them.

Entry criteria: The entry criteria define all the prerequisites to be completed to start a test phase. 

In the entry criteria, all the source codes go through unit testing. The quality assurance professionals have to sound functional knowledge on the product/application/ software developed. The test plans and test cases should be studied. The application hardware and software should be in place. All the testing tools should be installed successfully. A proper testing environment must be there. Testers should have knowledge of the workflow.

Subscribe to our youtube channel to get new updates..!

Exit criteria: The exit criteria define all the prerequisites to be completed before completing testing in a specific phase. All the deliverables should be ready for meeting the exit criteria. There should not be any defects/errors/bugs. All the high severity and high priority errors are fixed.

Phases in STLC

Generally, the stages in an STLC are requirements analysis, test planning, test case development, test environment setup, test execution, and test cycle closure.

Requirement analysis:

Requirement analysis is the first stage in the STLC. In this stage, the testers identify all the testable requirements. The quality assurance professionals will interact with all the stakeholders like system architect, end clients, business analysts, etc. to understand all the requirements in-depth.

Once the requirements are identified and specified, they should be categorized into functional and non-functional tests. Testing priorities should be defined.

Entry criteria: In the requirement phase, the software requirement specification (SRS) should be done. A review defects document should be the starting point to analyze the requirements for testing. The quality assurance team analyzes the test parameters, what to test and how to test using testing methodologies. Different testing methods are applied based on functional or non-functional specifications. The application/software architecture report is also required.

Exit criteria: The exit criteria in the requirement analysis stage consists of requirement traceability matrix (RTM) document. The RTM document validates that all the requirements are checked with test cases in testing.

Test Planning:

Test planning is the next phase in the software testing life cycle. Once what needs to be tested is determined, the quality assurance professional will prepare a test plan. The senior quality assurance professional will prepare estimates for work (time and cost) and determine a test strategy.

Entry criteria: The entry criteria in the test planning phase will be the requirements traceability matrix and the requirements document. A test automation feasibility document is applicable is also needed.

Exit criteria: The exit criteria is the test plan document, test strategy document, test effort for time and cost document, resource planning document.

Test design/ test case development:

The test design phase in the next phase in the STLC. In the test design phase, test cases and test scripts are developed. The test data is gathered. The requirements traceability matrix has to be updated with which test should be conducted with which script and test case.

Entry criteria: The entry criteria into test case development or test design phase is the test plan and test strategy document which is duly completed. The resources will be allocated and the resource planning document will be updated. Automation test analysis report will also be created.

Exit criteria: All the test cases and test scripts are analyzed, reviewed and a baseline is created.

Test environment set-up:

After test cases are designed and developed, the test environment is setup. The software and hardware are determined to test the application or product. The test environment set-up can be done parallelly with the test case development. Alternatively, the client side can provide the test environment by providing the required hardware and software.

Entry criteria: In this phase, the test plan, smoke test cases, and information on test data are the entry criteria. Application design and system architecture documents are also created in this phase.

Exit criteria: To move ahead to the next stage, smoke test results document, environment setup document with test data updated are required.

Test implementation/execution phase:

In the test execution phase, all the errors, bugs and defects are tested based on the test plans. The test scripts and test cases are used. The defects are mapped to the test cases in the requirements traceability matric (RTM)All the errors/bugs/defects will be reported back to the developers for fixing and once fixed, retesting is done. The requirement traceability matrix is updated.

Entry criteria: The entry criteria in the text implementation phase are test environment setup document, test cases, test plan document, and test data document. A unit testing report, integration report and system test reports are created.

Exit criteria: After the accomplishment of the execution, test execution report is created, a detailed defect report which reflects the closed defects, the test cases used, the identified defects will be reported to the development team 

Testing closure phase:

Test closure phase is the last stage in the STLC. In this stage, all the functional and non-functional tests are completed and closed. In this final stage, the testing team will analyze the testing activities done in each phase. The lessons learned in each phase will be documented for future testing activities on similar applications in future.

Entry criteria: In this last stage, test execution report, defects report will be the entry criteria

Exit criteria: The exit criteria in the last phase test closure report to be presented to the client, test metrics report, test closure report approved from the client.

Conclusion: A STLC is an integral part of the SDLC. The phases mentioned are applicable in most of the organizations. The sequence of the phases can be one after another or some phases can run parallelly. Once the STLC is successful, only then the application or the product can be installed or deployed. Hence, STLC is a critical phase of the SDLC.