Software Testing Life Cycle (STLC) identifies the test activities to perform and when to perform those test activities. While testing differs between organizations, there is a test lifecycle.
There are mainly eight phases of STLC
- Requirement Analysis
- Test Planning And Control
- Test Analysis
- Test Case Development
- Test Environment Setup
- Test Execution
- Exit Criteria Evaluation And Reporting
- Exit Criteria Evaluation And Reporting
Requirement Analysis:-
The entry criteria for this phase is the BRS document (Business Requirements Specification). During this phase, the test team studies and analyzes the requirements from a test perspective.
This phase helps to identify whether the requirements are likely or not. If any requirement is not verifiable, the test team can communicate with various stakeholders (customer, business analyst, technical leaders, system architects, etc.) during this phase so that the mitigation strategy can be planned.
Entry criteria: BRS (Business Requirement Specification) Results
Deliverables: list of all verifiable requirements, automation feasibility report (if applicable)
Test Planning And Control:-
Test planning is the first step in the testing process. At this stage typically Test Manager Test Lead involves determining the effort and cost estimates for the entire project. The preparation of the Test Plan will be made on the basis of the requirements analysis. Activities such as resource planning, determination of roles and responsibilities, selection of tools (if automation), training requirements, etc., are carried out at this stage.
The deliverables of this phase are Test Plan & Effort estimation documents.
Entry Criteria: Requirements Documents
Deliverables: Test Strategy, Test Plan, and Test Effort estimation document.
Test Analysis:-
Test Analysis Is the process of analyzing the test basis (all documents from which the requirements of a component or system can be inferred) and defining test objectives. It covers WHAT is to be tested in the form of test conditions and can start as soon as the basis for testing is established for each test level.
Following Is The Document Which Is Use In Test Analysis:-
- CRS (Customer Requirement Specification)
- SRS (Software Requirement Specification)
- BRS (Business Requirement Specification)
- Functional Design Documents
Test Case Development:-
This phase begins after the test planning and analysis phase is completed. From test analysis, we can understand how to test and what the test condition is. So easily understand and develop the test case. In This phase, the evaluator creates the manual / automation test scripts. The test data is prepared in this phase and the data is used to find the defect. The Requirement Traceability Matrix (RTM) is also ready Because the evaluator understands tracking the test case for the particular requirement.
Activities in the Test Case Development Phase
Following are the three activities that are carried out in the Test Case Development phase
Test Scenarios Identification
- Scenarios ease the testing and evaluation of a complex system. The following strategies help in creating good scenarios −
- Enumerate potential users, their actions, and their goals.
- Evaluate Users who have a hacker mindset and listed possible scenarios for abuse of the system.
- List System events and how the system handles these requests.
- List Benefits and create comprehensive tasks to verify.
- Read about similar systems and their behavior.
- Studying Complaints about competitors’ products and their predecessors.
Test Cases Writing
A test case is a document, which includes test data, preconditions, expected results, and postconditions, developed for a particular test case in order to verify compliance with a specific requirement.
Test Case serves as a starting point for running the test. After a set of input, values are applied; the application is final and leaves the system at an endpoint also known as a post-execution condition.
Test Data Preparation
Test Data is used to run the tests for test ware. Test Data must be precise and complete in order to detect the shortcomings. To achieve these three goals, follow a step-by-step approach as given below –
- Identify resources or test requirements
- Identify conditions/functionality to be tested
- Set priority test conditions
- Set priority test conditions
- Determine the expected result of test case processing
- Create Test cases
- Document test
- conditions Conduct test
- Verify and correct test cases based on modifications
Activity Block Diagram
The following diagram shows the different activities that form part of Test Case Development.
Test Environment Setup:-
A test environment is a software and hardware configuration that allows test teams to run test cases. In other words, it supports running tests with configured hardware, software, and network. The testbed or environment is configured as needed Application Under Test. On some occasions, the test may be the combination of the test environment and the test data that it operates. Setting a good test environment guarantees successful software testing. Any Loopholes in this process can result in additional costs and time for the customer.
Process of Software Test environment setup
Tests are limited to what can be tested and what not should be tested.
Following people are involved in test environment setup
- System Admins,
- Developers
- Testers
- Sometimes users or techies with an affinity for testing.
The test environment requires setting up of a various number of distinct areas like,
Setup of Test Server
Test Every may not be performed on a local machine. It may need to create a test server that can support applications.
For example, Fedora configuration for PHP, Java-based applications with or without mail server, cron configuration, Java-based applications, and so on.
Network
Network set up as per the test requirement. It includes,
- Internet setup
- LAN Wi-Fi setup
- Private network setup
It ensures that the congestion that occurs during testing doesn’t affect other members. (Developers, designers, content writers, etc.)
Test PC setup
For web testing, you may need to set up different browsers for different testers. For desktop applications, you need various types of OS for different testers’ PCs.
For example, Windows phone app testing may require.
- Visual Studio installation
- Windows phone emulator
- Alternatively, assigning a Windows phone to the tester.
Bug Reporting
Bug reporting tools should be provided to testers.
Creating Test Data for the Test Environment
Many companies use a separate test environment to test the software product. The common approach used is to copy production data to test. This helps the tester to detect the same issues as a live production server, without corrupting the production data.
The approach for copying production data to test data includes,
- Set up production jobs to copy the data to a common test environment
- All PII (Personally Identifiable Information) is modified along with other sensitive data. The PII is replaced with logically correct, but non-personal data.
- Remove data that is irrelevant to your test.
Testers or developers can copy this to their individual test environments. They can modify it as per their requirement.
Privacy is the main issue in copy production data. To overcome privacy issues you should look into obfuscated and anonymized test data.
For Anonymization of data two approaches can be used,
- Blacklist: In this approach, all the data fields are left unchanged. Except those fields specified by the users.
- Whitelist: By default, this approach, anonymizes all data fields. Except for a list of fields that are allowed to be copied. A whitelisted field implies that it is okay to copy the data as it is and anonymization is not required.
Also, if you are using production data, you need to be smart about how to source data. Querying the database using SQL script is an effective approach.
Every test may not be executed on a local machine. It may need establishing a test server, which can support applications.
For example, Fedora set up for PHP, Java-based applications with or without mail servers, cron set up, Java-based applications, etc.
Network
Network set up as per the test requirement. It includes,
- Internet setup
- LAN Wi-Fi setup
- Private network setup
It ensures that the congestion that occurs during testing doesn’t affect other members. (Developers, designers, content writers, etc.)
Test Execution:-
After The test plan, the development of the test case, and the configuration of the test environment are complete, and then the execution phase of the test is executed.
This manual test/automation script phase is executed. If any defect is detected during the execution of the test case, it will be reported to the developer through the bug tracking system.
If any test case result is a failure then this particular test case is marked as a failure.
If any test case result is matched to the expected result then a particular test case is marked as Pass.
If all module dependencies are tested and any fault is detected, the particular module test case is marked as blocked, first corrects the main module fault, and then runs the associated module test case. For example, B depends on module A.
If any fault is found in module A, the test case of module B is not executed. First correct the fault of module A then rerun the module A test case, If module A the result of the test case is Pass then run the module B execution of the test case.
Blocked Test noticed cases are executed after the fault is corrected by the developer.
Exit Criteria Evaluation And Reporting:-
In this phase, if the exit criteria match the test result. In Termination Criteria, There is one condition that is predefined. At this stage, The test summary report is generated. A Document containing a summary of testing activities and final test results is called Test Summary Report.
Test Closure:-
In the final stage where we prepare the Test Closure Report, Test Metrics.
The testing team will be called out for a meeting to evaluate cycle completion criteria based on Test coverage, Quality, Time, Cost, Software, Business objectives.
The test team analyses the test artifacts (such as Test cases, defect reports, etc.,) to identify strategies that have to be implemented in the future, which will help to remove process bottlenecks in the upcoming projects.
Test metrics and Test closure reports will be prepared based on the above criteria.
- Entry Criteria
- Test Case Execution report (make sure there are no high severity defects opened), Defect report
- Deliverables
- Test Closure report, Test metrics