Test Execution Cycle
What is Test Execution?
Test Execution is an extension of Software Testing Life Cycle and is said to be the most important and “happening” part of Software Testing Life Cycle (STLC) and the entire software development. It is in short describes as the process of executing the code and comparing the expected and actual results. Test Executions starts when the entry criteria has been satisfied, i.e. the test manager ensures that the process of test executions starts only when the entry criteria is satisfied in order to avoid any unnecessary defects and delays in testing. Furthermore, it synchronizes the inputs with the application under test and measures the timing of tests. However, before elaborating more on Test Execution, it is important to know about Software Testing Life Cycle (STLC) to get a better understanding of Test Execution cycles.
Software Testing Life Cycle (STLC):
Software Testing Life Cycle (STLC) is defined as a sequence of activities conducted to perform Software Testing. In this testing process, tests are executed in a systematic and planned manner through different activities, which are carried out to improve and ensure the quality of the product. Software Testing Life Cycle consists various stages all of which have a definite entry and exit criteria, activities and deliverables associated with it. Similarly, Test Execution too is part of this cycle and plays a significant role in software testing. These various stages of Software Testing Life Cycle are:
- Requirement Analysis: The very first stage in Software Testing Life Cycle is Requirement Analysis, where the Quality Assurance team studies the requirements from a testing point of view to identify the testable requirements. If there are conflicts or any requirements left unattended, the Quality Assurance team interacts or follows up with various stakeholders like, technical leads, business analysts, clients and more to understand the requirements in detail.
These requirements can be functional (defining what the function of the software) or non-functional (defining system performance or security availability). Also, automation feasibility for the given testing project is done in this stage.
Test Planning: As suggested by its name, it is in this stage where the testing strategy is defined, which further makes it a significant as well as the most prominent stage of Software Testing Life Cycle (STLC). Due to its major function, Test Planning is also known as Test Strategy. In this stage the quality assurance manager/lead determines the efforts and cost estimates for the project and prepares and finalizes the test plan. Once the test planning is completed the quality assurance team can start test case development.
- Entry Criteria:Documents like, Requirement Specification, Application Architecture and well defined Acceptance Criteria should be available.
- Identify the type of tests to be performed.
- Testing priorities and focus are defined.
- Requirement Traceability Matrix needs to be prepared.
- Identifies the test environment details, where test needs to be carried out.
- If required, automation feasibility analysis is performed.
- Deliverables: Provides list of questions with all answers to be resolved from business i.e., testable requirements and automation feasibility reports if applicable.
Test Case Development : This stage of the Software Testing Life Cycle (STLC) involves the creation, verification and rework of test cases and test scripts. Here, test case development activity starts once the test case planning is finished. The testing team prepares the test cases as well as test data if any testing is required which later is reviewed by the quality assurance (QA) lead.
- Entry Criteria: Updated Requirements documents and automation feasibility report should be completed.
- Defines objective and scope of the project.
- Preparation of test strategy for various types of testing.
- Resource planning and determining roles and responsibilities.
- Test effort estimation.
- Listing of types of testing involved in Software Testing Life Cycle.
- Selection of testing tool if required.
- Define if any risks are involved.
- Deliverables:Testing plan or test strategy and testing effort estimation document is provided.
Test Environment Setup: To set test environment is a vital part of Software Testing Life Cycle (STLC). Test environment Setup is one of the critical aspects of testing process and can be done in parallel with Test Case development Stage. Executed independently, it basically decides the software and hardware conditions under which a work product is tested. Testing Environment Setup does not require a testing team and the testing environment based on company to company, may be developer or customer.
- Entry Criteria: Updated version of requirement document and automation feasibility report.
- Create test cases, automation scripts (if applicable).
- Review and baseline test cases and scripts.
- Create test data (If Test Environment is available).
- Deliverables:Test data, test cases and if required test automation scripts.
Test Execution: The Test Execution Stage finds its inception once the test cases are developed completely and the environment for the test is properly set. This is the most vital stage of all the Software Testing Life Cycle (STLC), as the tester not only tests the test cases here but is also able to detect errors and bugs in the software. Therefore, in this stage testing team starts executing test cases based on prepared test planning and prepares test cases in the prior step. If any test case fails then corresponding defect is reported to the developer team via bug tracking system where the bugs are linked to the corresponding test case for further analysis. Once the bugs and errors are detected they are reported back to the development team for correction so that retesting can be performed based on the test planning.
- Entry Criteria: Test plan, test data and smoke test cases are available.
- Understand the required architecture, environment set-up for Test Environment.
- Prepare hardware and software requirement list for the Test Environment.
- Setup test Environment and test data .
- Once the Test Environment is setup execute the Smoke test cases to check the readiness of the test environment.
- Deliverables:Test Environment will be ready with test data. Results of Smoke Tests will be provided.
- Entry Criteria: Test cases; Test Data; Test Plan or Test Strategy.
- Test cases are executed based on the test planning.
- Status of test cases are marked, like Passed, Failed, Blocked, Run, and others.
- Documentation of test results and log defects for failed cases is done.
- All the blocked and failed test cases are assigned bug ids.
- Retesting once the defects are fixed.
- Defects are tracked till closure.
- Deliverables:Provides defect and test case execution report with completed results.
Guidelines for Test Execution:
- The Build being deployed to the quality assurance environment is the most important part of the test execution cycle.
- Test execution is done in Quality Assurance (QA) environment.
- Test team size is not constant since the beginning of the project.
- Test execution happens in at least two cycles.
- Test execution phase consists Executing the test scripts + test script maintenance (correct gaps in the scripts) + reporting (defects, status, metrics, etc.)
- Exploratory tests are carried out once the build is ready for testing.
Test Execution Tools:
Also known as ‘test running tool’, Test Execution Tool is basically a tool used to run tests. These tools require a scripting/programming language in order to be executed, which creates a great advantage as they can repeat actions in loops for various data values, can take different routes depending on the outcome of a test and also can be called from other scripts giving structure to sets of tests.
Characteristics of Test Execution Tools:
- Captures tests inputs while tests are executed manually.
- Stores expected results in the form of a screen or an object for comparison when the tests are executed again.
- It executes tests from stored scripts and optionally data files accessed by the script.
- Provides a dynamic comparison of screens, elements, links, controls, objects and values while running the tests.
- It performs post execution comparison.
- Keeps a log of results of the completed tests cases.
- Synchronizes inputs with the application under test.
- Measures the timing of tests.
- At the end it sends the summary results to a test management tool.
Test Cycle Closure: Last but not the least significant stage of Software Testing Life Cycle (STLC), the Test Cycle Closure is where the testing team meets and evaluates cycle completion criteria based on test coverage, quality, cost, time, critical business objectives, and software. Here, the team members initiate in discussions to assess the features and the qualities of test cases.
They look into the positive and negative aspects of the test cycle and the areas that needs improvements. The main aim of this stage is to remove the process bottlenecks for future test cycles and share best practices for any similar projects in future.
- Entry Criteria:Test case execution is completed; test case execution and defect report is provided.
- Cycle completion criteria is evaluated on the basis of Test coverage, quality, cost, time, critical business objectives, and software.
- Prepares test metrics based on parameters mentioned above.
- The learning of the projects are documented.
- To find the defect distribution by type and severity test result in analysed.
- A quantitative and qualitative reporting of the end product to the client.
- Shares best practices for any similar projects in future.
- Deliverables:Test Closure Report and test metrics are delivered.
Software Testing Life Cycle (STLC) defines the various stages of testing a software. It consist of six important stages, which play a significant role in building an error free software of exceptional quality in limited period of time. Test Execution, though in itself is of utmost importance, it is incomplete without the other stages of Software Testing Life Cycle (STLC) and hence is quite dependable on them.
Therefore, by opting for Software Testing Life Cycle, a developer can enjoy a planned and managed software testing facility which aims at providing exceptional services while performing elaborative checks of its design, test data, test cases and other features.
To know more about test execution tools follow the link.