OpenStack Test Automation

image

Today, the problem of manual execution of testing processes is one of the urgent problems due to the detection of many errors at the implementation stage.

This publication proposes an approach to test automation OpenStack, which will help to increase the quality and speed of software development based on OpenStack, as well as reduce the time of implementation of IT products.

In the beginning, the automation process itself is described with diagrams and diagrams. After describing the process, we consider the tools that are designed to automate testing of OpenStack.

Building an OpenStack Testing Automation Process

This approach is based on continuous testing as part of a continuous software supply. Continuous testing allows you to stabilize and improve the quality of the code. Because If any application starts with development, then it is necessary to implement full-fledged testing into development cycles.

Stages :

  1. The developer makes a change;
  2. In this change, the version control system checks the syntax of the code;
  3. The change falls into the developer's branch;
  4. The testing process starts on the CHECK environment:

    1. Environment deployment
    2. Deploy
    3. Running code syntax tests
    4. Running unit tests
    5. Delete environment

  5. Create a merge request in the main branch of the project;
  6. The change falls into the main branch of the version control system;
  7. Testing process starts on DEV environment

    1. Deploy on DEVELOPMENT environment
    2. Running unit tests
    3. Run acceptance tests for new features
    4. Running smoke tests

  8. When all the necessary functionality is ready

    1. Creating a new software version

  9. Testing process starts on QA environment

    1. Deploy on QA environment
    2. Parallel verification of new functionality by a quality assurance engineer
    3. Running tests to check the environment infrastructure
    4. Running functional tests
    5. Running stress tests

  10. Starting the process of introducing the new version in the PRODUCTION environment

    1. Deploy on the combat environment
    2. Running tests to verify the main functionality


Scheme 1. The process of testing automation OpenStack

image

Fig. 1. Activity diagram of the first pipeline for testing on CHECK and DEV environments

image

Fig. 2. Activity diagram of the second pipeline for QA testing and deployment on the PRODUCTION environment

image

Figure 3. General sequence diagram of the OpenStack testing automation process

image

Steps in case of failure of one of the testing

steps Passing the test steps does not guarantee an immediate successful result, as sometimes new functionality is incorrectly implemented or when a new change affects the operation of other software functionality. For a quicker solution to the problems that have arisen, it is recommended to use a notification system, and preferably several.

In the proposed method of automation of the testing process, proposed in this paper, it is proposed to use the following notification methods:

  • via work email;
  • via messenger;

In addition to using the notification system, it will also be effective to use a task management system where, in automatic mode, an error task will be created if an error is found at the stage of software verification on the QA environment, and the task will be rediscovered by the new functionality to the developer if the error is found inclusively before the verification stage functionality on the DEV environment.

Instrumentation

You can use different tools to automate the OpenStack testing process, but after analysis the following tools were identified:

image

The above tools are recommended for building the OpenStack testing automation process.

The publication turned out to be very cumbersome, but I hope the article will help someone. In the next publication I will describe an example of using this approach in Jenkins CI with a detailed guide to integrating the above tools.

Also popular now: