Dev or Ops oriented testing
istockphoto.com

Dev or Ops oriented testing

Development vs. Operations testing - I’ve just realized, that there is such approaches.

The live-cycle of an actively developed software typically employs compilation, packaging, and installation.

When the compilation is needed to execute software and related tests, packaging and installation are not necessary.

Typically developers do not build packages and do not install them during development and test execution. It allows to iterate faster through an implement-test loop, and it does not require to install this software into the system (which typically requires dependencies of specific versions and configuration of the system).

Installation typically involves unpacking software, checking the target environment and dependencies there, potentially the installation of these dependencies, and configures the system for the intended use.

When writing test-automation scripts, we can follow the development workflow. It will test not only the software itself but also that the development workflow is still working. Along with this, such an approach typically allows

  • building only the parts of software which are required for tests,
  • split the test execution onto multiple working nodes
  • run several tests in parallel, since such executions are naturally isolated and do not rely on the system-wide configuration or dependencies.

If we follow the Operations workflow we include not only software testing in the testing cycle but the packaging and installation process as well. Note that these scripts typically do not have tests, and are not executed often enough to be sure, that it is working properly. The problem with such an approach is that it typically requires the hardware or virtual environment close to production one. Often it allocates significant resources that may stay idle when no tests are performed. And we do not invest much into development-friendly infrastructure.

Luckily these approaches are not mutually exclusive, and you can implement them both. For example, focus on development-focused tests. But still, execute some limited amount of development-oriented tests.

To view or add a comment, sign in

More articles by Evgeny Petrov

  • Efficient Bazel setup in GitLab CI

    On every commit to a merge request, Qwello rebuilds everything. And it takes us just a couple of minutes.

    4 Comments
  • Bazel: What is vendoring.

    By adding some generated files into repository you allow users to consume your repository in less steps. Let's look…

  • Bazel Adoption at Qwello: Surprisingly Easy for Rust Projects

    About a year ago, here at Qwello, we thought about good ways to reuse the code across our various projects. We had a…

    3 Comments
  • Story about Overcoming Development Challenges with Monorepo and CI

    One sunny afternoon, the CEO of Grow AI, Lisa, was going through the company's latest customer feedback. She noticed a…

    1 Comment
  • Visa Sponsorship in Germany

    Work Visa vs BlueCard Eu There are two main types of ways of letting foreigners work in the company: work Visa Blue…

    5 Comments
  • How to update embedded software

    In comparison to the PC-like systems, microcontrollers do not have an operating system, file system, and no network…

Explore content categories