Monday, May 3, 2021

Describe the test activities and respective tasks within the test process

A testing process consists of the following main activity groups: test planning, test monitoring and control, test analysis, test design, test implementation, test execution, test completion. Each activity consists of different tasks that can change from one project to another.

Although it may seem that the execution order of these activity groups is sequential, they are often performed iteratively. So, the agile development methodology involves the implementation of iterations at different stages. Even in sequential software development, there will be overlap, combination, parallelism, or omission of the main groups, and therefore it is usually necessary to adapt these main groups of actions in the context of the system and the project.

Test planning:

Test planning should define its objectives and the approach to achieving them, taking into account the existing constraints defined by the testing context. The test plan can be revised based on the results of monitoring its implementation.

Test monitoring and control:

Test monitoring is a continuous comparison of actual progress with planned progress, through the use of test monitoring metrics defined in the test plan.

Testing control involves taking the measures necessary to achieve the objectives of the test plan (it can be updated over time).

The monitoring and control of testing is based on the evaluation of the exit criteria.

Information about the real progress of testing, including deviations from the existing plan and other related information is issued in the form of reports for stakeholders.

Evaluating the exit criteria for performing a test within a given test level may include:

- Checking test results and logs in accordance with the specified coverage criteria

- Assessing the quality level of components or systems based on test results and logs

- Determining the need for additional tests

Test analysis:

In this process, the test base is analyzed to identify the opportunity for testing and to determine the corresponding conditions. Test analysis includes the following main activities:

- Analysis of the test basis corresponding to the test level under consideration, for example:

  -- Requirement specifications, user stories, epics, use cases, or similar work products that specify desired functional and non-functional component or system behavior

  -- Design and implementation information (architecture diagrams or documents, design specifications, call flow graphs, modelling diagrams, interface specifications, etc.)

  -- Implementation of a component or system, including code, database metadata and queries, and interfaces

  -- Risk analysis reports (functional, non-functional, and structural aspects)

- Evaluation of the test base and test to identify various types of defects, such as: ambiguities, contradictions, inconsistencies, inaccuracies, superfluous statements, omissions

- Detecting the features and feature sets to be tested

- Determining the test conditions for each feature based on the analysis of the test basis and prioritizing their implementation, taking into account functional, non-functional and structural characteristics, as well as other business and technical factors and risk levels.

- Ensuring bidirectional traceability between each element of the test basis and the corresponding test conditions.

Test design:

The test design should answer the question "how to test?"

In the process of the test design, the test conditions are converted into high-level test cases, sets of them, and into other testware.

Test design consists of the following activities:

- Designing and prioritization of test cases and their sets

- Determining the necessary data for test conditions and test cases

- Designing of a test environment and identification of the necessary infrastructure

- Providing bidirectional traceability between the test basis, test conditions, test cases and test suites

In the process of converting test conditions into test cases, testing techniques are often used.

During the test design, errors can be detected, both in the test basis and in the test analysis, which is a useful side effect of this process.

Test implementation:

In the process of implementing tests, test software is created and prepared, and tests are organized into test procedures.

Test implementation answers the question: "Do we have everything we need to run tests?"

Test implementation includes the following main activities:

- Development and ordering of test procedures according to their priority

- Creating test suites from test procedures

- Create a schedule for the execution of test suits to ensure their effective execution

- Creating a test environment (providing the necessary test binding, virtualization services, simulations, and other infrastructure elements) and verifying that everything you need is configured correctly

- Preparing test data and ensuring that it is loaded correctly

- Verifying and supporting bidirectional tracing between test basis, test conditions, test cases, procedures, and suites

Tasks of test design and test implementation are often combined.

Test execution:

Test suites, in the course of their execution, are launched in accordance with their launch schedule.

Test execution includes the following main activities:

- Recording of the version and identifier of the test item (object), test tool and test software

- Executing of tests

- Comparison of the expected result with the actual

- Analysis of abnormal results to determine their probable causes

- Report defects based on observed failures

- Logging test execution results

- Retesting (after fixing defects in the code, after fixing problems in the test environment, after fixing tests or for other reasons)

- Verifying and supporting bidirectional tracing between test basis, test conditions, test cases, procedures, and suites

Test completion:

Actions to complete testing are carried out at such points as: project release, integration completion, testing level completion, and others.

Test completion includes the following main activities:

- Checking if all defects have been eliminated

- Creation of a final report on test results for stakeholders

- Saving and archiving of the test environment, test data, test infrastructure and other test software for later reuse

- Transfer of test software to maintenance teams, other project teams, and/or other stakeholders who may benefit from its use

- Exploring of the lessons learned from completed testing activities to determine the changes needed for future iterations, releases, and projects

- Using of the collected information to increase the efficiency of the testing process

No comments:

Post a Comment

Explain the relationships between software development activities and test activities in the software development lifecycle

Regardless of the development model, there are several principles of good testing: