Start trefwoorden te typen om de site te doorzoeken. Druk enter om te verzenden.
Generative AI
Cloud
Testing
Artificial intelligence
Security
For DevOps teams to be able to efficiently deliver IT systems, end-to-end test automation that is fully integrated in the CI/CD process is essential and a pre-requisite for achieving good quality at speed. But many DevOps (or other Agile) teams struggle to achieve a good level of automation of their quality engineering activities. The World Quality Report shows as an important challenge: lack of guidance makes that many teams decide independently which tools they will use, which leads to a proliferation of tools in the organization. Also, the decision what to automate and what not, is not sufficiently considered. More about ‘Test Automation‘ continue here.
In the DevOps culture, the teams strive to automate as many tasks and activities as possible. Therefore, tooling is a prerequisite for all activities in DevOps, so it is much broader than just test tooling.
We will start this section with test tooling and then provide a more general overview of test tool capabilities and tool support needed in DevOps. In these sections we also give some examples of tools. However, the world of tooling evolves very rapidly.
This section starts with the effects of test tooling, the types of test tooling are then listed, and the implementation of test tooling discussed.
The use of any of these tools is aimed to produce an effect. It is useful to distinguish primary and derived effects.
Test execution tools accelerate test execution and make it possible to execute more test cases, which means that the primary effect is efficiency. Regression tests can now be run every time code is merged with the main branch, which increases the stability of the IT system.
Cost reduction on the other hand, is always a derived effect. The remarkable thing is that the main financial benefits of using test tools is not within the test process itself: reducing test time benefits the business by adding business value earlier, improving quality benefits operations by reducing the number of incidents, and finding problems earlier benefits development by decreasing the costs for fixing them.
There is a choice in the derived effects: either reducing test execution time, increasing coverage in the same test execution time, or increasing the number of times the tests are executed. The exception in this category of test tools is a performance test tool, whose primary effect is the ability to execute a performance test; the derived effect is insight in performance and stability.
The other types of test tools have different derived effects. Test control tools have an effect on quality and progress control; test design tools save time; and test environment tools enable control over the preconditions to execute tests. The primary and derived effects of the most commonly used types of test tools are given below. Multiple effects to be achieved mean a choice should be made in test automation.
The effects of individual types of test tools can be increased by combining or integrating them. And even more benefit can be gained by combining or integrating them with other tools used in the application life cycle, such as tools used in the development process for requirements management, system design, development or deployment, and tools used in the operations process for change and issue management.
There are lots of different types of test tools, each with its own purpose. This also goes with different views on the classification of types or test tool. For instance, in his book, Maurice Siteur [Siteur, 2019] divides types of test tooling into two groups: Fault detection (Static and Dynamic) and Support (Management and Utilities). In this book, we classify test tools by stating the testing activities they support, the so-called “Test tool capabilities”.
This does not mean that these individual activities are supported by a single test tool. Most test management tools feature a combination of testware management, anomaly management and reporting capabilities for example. In the below figure, a non-exhaustive list of needed capabilities and tool support for testing DevOps is given. Of course, there can be many more needed capabilities and possible tool support, depending on a specific project. The need for specific test tooling is also depended on the specific set of CI/CD test tools selected. Some functionality may be provided as part of available tooling, such as test management as part of a workflow, reporting as part for standard dashboards and (part of) test execution within the Integrated Development Environment (IDE).
To achieve the desired effects of using a test tool, we need to implement it. After implementation, the primary effect can be reached right away; the derived effects takelonger.
How to implement a test tool varies per type of test tool, but there are generic aspects that the implementation of any type of test tool should address. There is more to it than just installing the tool, as is visualized in the test tool implementation model.
Most types of test tools have a strong relationship with the technology of the test object and thereby the development tools and technology used. This technology determines if a test tool can be used and if so, the amount of effort required to implement and maintain a usable solution. Another factor is the number of releases of the test object, which determines the frequency of use of the test tool as well as the frequency of having to maintain it. Some of the repetitive tool maintenance tasks can also be automated using tools, for example using Robotic Process Automation (RPA) tools.
In this section we will focus on the required capabilities and tool support for the people in the DevOps team. Having an integrated suite of tools that supports the teams activities will greatly benefit efficient and effective IT delivery. There is, however, much more to say about tooling. To prevent repetition, we will refer to the relevant sections. For example, there is tooling for a CI/CD pipeline, which is described in CI/CD; For continuous testing, test automation solutions, test orchestration, smart automated frameworks and “everything” as code automation see: Test automation; For TDM see test data management; For monitoring & control; For setting up a test environment see infrastructure.
In this section, we will describe the capabilities and tools in more detail and refer to DevOps as a whole. This is a non-exhaustive list and there may be many more required capabilities and possible tool support, depending on a specific project:
In the figure below you will find a non-exhaustive list of tools supporting the above-described capabilities.
Organizing topics explained for DevOps
Continue to:
Related Building Blocks