Photo by Auher. (2022)

Bug prevention with Repetitive and Continuous Testing

Olli Kulkki
Quality lives

--

Bugs can be prevented by shift left, where the Continuous Testing practices allow independent feedback loops. Think of it as tasting the water you drink.

Bugs can be prevented by shift right, where we allow the surrounding conditions to increasingly change during each step as we are closing production environments, and the experience that our users and customers receive. Think of it as looking at the color of the water you drink.

Both approaches are very useful, and are definitely not mutually exclusive. Both are repeatable and test-retestable actions that can contribute to decision-making. I would be very afraid to drink water that is clear, but tastes bad, or water that tastes good, but is colored blue, red or green.

When observing the drink I ordered at this bar I allow it to be bitter and yellow. We have a mutual understanding of this expected outcome. There is still water in it. We just changed conditions.

Testing as the act of increasing trust and increasing understanding is an iterative process. Each time that we change a configuration or the surrounding conditions we can ask ourselves if we still have trust in the historical results. The goal is to evaluate software quality, providing critical feedback and enabling higher-quality and faster deliveries.

Repeatability or test-retest reliability is the closeness of the agreement between the results of successive measurements of the same measure, when carried out under the same conditions of measurement. The only reason to repeat tests is to prevent misclassification, or in other words, to avoid making an error. As a result, repeating a test is only a useful strategy if the test results will contribute to decision-making.

Continuous testing (CT) is a software development process in which applications are tested continuously. When characterized by a continued occurrence or recurrence, continuous usually implies an uninterrupted flow or spatial extension. In CT automated tests are executed as part of the software delivery pipeline in order to obtain feedback on the business risks associated with a software release candidate as rapidly as possible.

Automated tests are used to ensure developers can independently receive immediate feedback to be able to quickly mitigate as many risks as possible in their work. Continuity is our attempt to know earlier if there are topics that require additional attention, and allows team members are able to understand their product behavior.

You can be as continuous as you want, but it still pays off to observe, to look what the color of your glass of water is in the end.

The author wishes to help the development environment hold the weather and reduce the number of disappointments experienced by millions of people in everyday life.

Originally published at https://www.linkedin.com.

--

--

Olli Kulkki
Quality lives

Eat the delicious food. Walk in the sunshine. Jump in the ocean. Be silly. Be weird. Do crazy stuff. Write Ruby. Run Cypress. Build on Jenkins.