Article

8min read

Continuous Testing in DevOps

Nowadays, organizations cannot afford to make any errors. If something does go wrong, it will more often than not result in disgruntled customers turning to competitors for better satisfaction. Consumer frustration quickly results in losing any potential leads and conversions. 

This is why continuously testing software through the software development life cycle is the key to eliminate any errors and ultimately release better and higher quality products.

This is especially important if you’re looking to implement DevOps practices within your organization as DevOps often relies on the fast and frequent release of software.

Continuous testing is now needed to keep up with the demand for speed in the modern software development world and keep pace with DevOps and Agile practices that advocate for shorter delivery cycles to keep up with rapidly changing consumer demands.

In other words, continuous testing goes hand-in-hand with effectively adopting DevOps practices and workflows in your organization.

What is continuous testing?

The basic idea behind continuous testing is evaluating and verifying the quality of the software as frequently as possible starting from the early stages of development using automation.

This means that the software undergoes continuous, uninterrupted testing at every stage of the software development lifecycle from development until it’s eventually deployed to the end-user to assess the quality and performance of the software.

This is the idea behind ‘shifting left’ or ‘shift-left testing’, which entails testing early on the development cycle so that issues are discovered early on, largely through the use of automated tests.

Put simply, if we want to retain the momentum of continuous testing, it’s important to automate whenever and wherever possible.

Therefore, automated testing can be carried out on a frequent basis every time code changes are made enabling fast feedback loops to quickly fix any issues as they arise. With such quick feedback loops, developers can quickly and efficiently optimize and improve products to match customer requirements.

Continuous testing is an integral part of continuous integration and continuous delivery. 

This is because these processes require the software to go through a series of automated tests from unit tests early on in development in order to test single parts of a software to integration and functional tests to make sure that the individual parts work seamlessly together. 

Why is this so important for a DevOps methodology?

Think of it this way: traditionally, testing is typically completed after the software development process is done, at which point it’s sent to quality assurance to be tested. If bugs are found, then the software is sent back to developers so that they can fix these bugs.

The issue with this traditional form of testing is that it’s risky. When developers rush to fix any issues, they often fix these issues so late in the development process that things get complicated fast. In this sense, it can be time-consuming and could delay the release process, which defeats the entire purpose of a DevOps methodology. 

Moreover, DevOps embraces everything ‘continuous’, meaning it is dependent on continuous feedback and improvement through the implementation of continuous integration, continuous delivery and continuous testing.

Continuous testing enables teams to achieve the main goal of DevOps, which is to deliver high quality software quicker than ever before, hence reducing time-to-market and accelerating release cycles.

Benefits of continuous testing

As can be deduced from the above, continuous testing is a key element of DevOps and has a number of benefits including:

  • Accelerating software delivery and helps teams respond quickly and efficiently to rapidly-changing market demands
  • Improving code quality as software is assessed at each stage which, in turn, reduces risk and increases confidence
  • Helping discover bugs early on: this is important as the earlier bugs are discovered, the less costly it will be to fix and also allows for faster recovery
  • Ensuring immediate feedback and encourages better collaboration between testing and development teams as well as continuous improvement as teams can use the feedback to improve products’ reliability and quality
  • Reducing manual efforts, hence freeing developers to focus on more important tasks
  • Earning customer loyalty and satisfaction with products optimized for their needs
  • Facilitating the adoption of a culture of DevOps and fulfills its underlying goal which is delivering of quality software faster

Challenges of continuous testing 

While there are a number of benefits to continuous testing, there are a few challenges and points that teams need to take into consideration.

First, teams need to ensure that the test environments are exact replicas of the production environment to make sure that the software behaves as expected as it would in the production environment. 

Setting up these simultaneous environments will require careful coordination of the different test environments and consume considerable resources and investments that may not always be readily available.

Keep in mind that teams should not only focus on testing. Continuous testing is not just about automating tests but it also involves using the results of these tests to continuously improve and optimize products. Consequently, it represents an opportunity for team members to utilize the feedback from these tests to find areas for improvement in code quality.

Thus, teams need to successfully implement a system for fast feedback loops that helps them gather relevant feedback in real-time, which may require advanced tools.

Furthermore, continuous testing becomes more complex as the scope for the product grows and moves towards the production environment. The number of tests increases as does the complexity of these tests. This may result in delayed tests which could result in some serious bottlenecks delaying releases and defeating the whole purpose of continuous testing.

There’s also the issue of the tools being used not having enough scalability as more tests are run which could overwhelm the testing system

Best practices for continuous testing

  • Adopt automation wherever possible

Automate tests as much as possible to achieve faster releases and reduce the human error component that often comes with manual testing.

Automation is also a key enabler of DevOps implementation and by setting up an efficient CI/CD pipeline, this will help automate workflows to reduce manual tasks.

Moreover, your products will reach your customers faster helping you gain competitive advantage.

Keep in mind, however, that continuous testing and test automation are not the same concept even though they’re sometimes used interchangeably.

As we mentioned above, test automation is a vital part of continuous testing but that’s not all there is to it. Continuous testing evolves beyond the idea of test automation.

It instead encompasses all the tools, processes and teams that come with automation and which aims to verify software through feedback at every step of the development process.

  • Select the right tools

Automation isn’t the only key component of continuous testing. It also involves teams having the right tools at hand to make the continuous testing process more efficient and easier.

Teams need to select the right tools that will reduce manual operations so they can focus on more pressing things: building better software. Therefore, they will need to set in place a robust test automation framework that focuses on all aspects of testing-for each layer of the testing pyramid- from unit to UI tests.

Remember that whatever tools you opt for will largely depend on your organization’s and teams’ needs and overall objectives. 

Read more: our picks of the best DevOps tools

  • Track the relevant metrics

You will need to keep track of relevant metrics to measure the success of your tests. In other words, you will need to keep track of all the bugs that occur as well as the number of successful and failed tests.

For example, if you see the number of errors and bugs increasing, you know that you will need to look into your development process in order to rectify it and in the long run will help you improve the functionality of your products.

Keeping tracks of tests will also help create a more efficient continuous testing strategy.

  • Establish clear lines of communication 

One of the most essential contributing factors to successfully implementing continuous testing is getting teams to collaborate to avoid different teams working in silos. This will help prevent bottlenecks and conflicts from occurring which could disrupt the development process.

Therefore, constant and transparent communication will keep your pipeline moving seamlessly and will increase productivity among teams.

Feature flags: Continuous testing in production

So you’ve run all the necessary tests to verify that the software is working as expected before releasing it into production so users can access it.

However, continuous testing shouldn’t end in staging environments pre-production. It’s still imperative to test your releases even after they’ve been deployed to production and thus should be incorporated into your testing strategy and framework.

No matter how much you try to replicate your staging environments to match a production environment, it’s unlikely that it would end up being an exact replica. This means that errors and bugs may still end up in production even after thorough testing pre-deployment.

As a result, testing in production is essential to uncover these bugs that you may have missed in your previous tests.

But how do you implement a safe strategy to test in production to reduce major negative impact on your end-users?

Two words: feature flags.

Through progressive deployment, feature flags will allow you to control who sees (or who doesn’t see) the new feature allowing you to verify this feature before releasing it to everyone else. You can even choose to limit a release to internal users only, a type of targeting known as dogfooding so your team can verify the code in production before end-users have access to it.

Read more: How feature flags can bring efficiency to your CI/CD pipeline to deliver releases quickly and more frequently

Continuous testing: The magic ingredient for your CI/CD pipeline for better and faster releases

As we’ve seen, uncovering bugs early on in the software development lifecycle will make your life and development process much easier and more efficient, not to mention that nowadays having major bugs show up in production is a major business risk that organizations can no longer afford to make. 

To fulfil the goal of DevOps, which is releasing high quality software fast, continuous testing needs to be implemented.

Make sure you set in place a robust testing strategy that covers all the stages of the software lifecycle and above all, make sure that it fulfills your requirements and needs.

There are many tests you can run as part of an effective continuous testing strategy. However, keep in mind that continuous testing goes over and beyond test automation and is key to building and maintaining an efficient CI/CD pipeline as well as reducing risk while accelerating time-to-market.

Subscribe to
our Newsletter

bloc Newsletter EN

We will process and store your personal data to respond to send you communications as described in our  Privacy Policy.

Article

7min read

3 Alternatives to Black Friday Promotions [+ Ethical Examples]

Black Friday – the time for sales and doorbusters and discounts – but what about the companies that are choosing not to participate this year? Rather than letting your site stay stagnant, you can still use this time to capitalize on the holiday traffic by testing new ideas for your site and gaining customer feedback in real-time.

There are many reasons why a company might opt to sit out of Black Friday sales. We’ve determined that most alternative Black Friday messaging falls into one of three major themes. These themes are:

  1. Fair Friday/Do Good Friday: Brands take the time during the busy shopping season to instead promote donations or partner charities to help drive awareness of issues while building brand trust and developing corporate social responsibility.
  2. Anti-Black Friday: Some brands choose to take not participating in Black Friday a step further by sharing messaging that challenges hyperconsumerism, promotes ethical consumption, or encourages a boycott of Black Friday. This might also take the form of a brand shutting down their e-commerce sales over the weekend in protest.
  3. Normal Friday: Certain brands, including many luxury retailers, have not historically offered sales and discounts during Black Friday. In lieu of promoting active sales, these brands might instead drive traffic to new collections and releases for the season. This can also be an extension of Black Friday protests by choosing to conduct business as usual over the fanfare of the shopping season. 

 

If you are considering an alternative Black Friday campaign this year, it is crucial to provide your visitors with clear communication about your campaign just like any other brand would do for their own sales and promotions. 

Experimenting with easy-to-understand messaging, banners spread throughout the customer journey, and pop-ins reminding visitors of your initiative can help reduce confusion and provide a consistent experience for your customers. 

Below, we have collected real-world examples of alternative Black Friday campaigns from AB Tasty clients and other brands who wanted to make the most out of the holiday traffic and gather important customer insights without compromising on their brand values.

Fair Friday / Do Good Friday Campaigns

L’Occitane

In addition to their Black Friday offers, the team at L’Occitane ran a “Give Back Friday” campaign in support of The Fred Hollows Foundation, a nonprofit organization focused on treating and preventing blindness and other vision problems. During the promotion period, $1 from every hand cream sold would be donated to the foundation.

Working within AB Tasty’s experimentation and personalization platform, custom code was created to support the campaign. The L’Occitane home page featured a large hero image along with a block of copy explaining the details of the promotion for customers. 

Transparency in both the foundation that would receive the funds and for how the funds would be used to benefit others helped boost engagement and buy-in.

B&B Hotels

The team at B&B Hotels: Spain & Portugal set up a campaign on Black Friday called “Green Friday” where 5% of bookings made on that day would go to support the reconstruction of La Palma Island after intense fires. 

They considered their users’ paths throughout the website when setting up their campaign. Clear messaging about the initiative was shared on the landing page and a reminder was displayed again at the booking stage to help push conversions. To reduce cart abandonment, an exit pop-in encouraged visitors to complete their booking before leaving the page.

 

Nature & Découvertes

As a part of their annual Fair Friday initiative, retailer Nature & Découvertes swapped out their standard hero image for one that highlighted their 2021 campaign for rewilding endangered habitats. 

Throughout the last week of November, Nature & Découvertes encouraged both online and in-person customers to donate to the initiative by rounding up their purchase amounts to the next dollar. The brand then matched the total amount of donations.

Beyond the hero image swap on their homepage, Nature & Découvertes also drove traffic to a landing page explaining the initiative in greater detail. This helped customers have confidence that the initiative was genuine and offered the brand an opportunity to be transparent about the impact donations would have on wildlife and conservation efforts.

Anti-Black Friday Campaigns

REI Co-op

Outdoor recreation retailer REI Co-op’s #OptOutside initiative is a great example of brands taking a stance against Black Friday that also aligns with their brand values. 

Instead of promoting a special sale or discount on Black Friday, REI Co-op chose to close their operations for their online store and drive visitors to learn more about the REI Cooperative Action Fund which works to make the outdoors more accessible for all communities. 

With operations paused for the day, REI Co-op made sure to communicate clearly that no orders would ship out on that day by displaying a banner at the top of their pages. The simple banner helped reduce confusion for visitors and helped build positive attention for the brand by educating visitors about the #OptOutside mission.

 

Normal Friday Campaigns

BackMarket

BackMarket, the renewed devices retailer, does not offer additional sales or discounts on their products. In order to still capture attention from Black Friday visitors, they created a campaign dubbed “Any Old Friday”. 

Taking inspiration from Black Friday doorbuster commercials, their landing page showed a new carousel image with copy that read “For an unlimited time only!”. 

This cheeky take on the usual sales quips was a great opportunity for BackMarket to have a fun and engaging holiday season campaign without the need for offering discounts or sales. 

 

 

Whether your brand wants to support an important cause or give visitors a break from Black Friday promotions, take advantage of increased traffic and drive engagement during the holiday shopping season with these creative alternatives to Black Friday.

On the fence about your Black Friday strategy? Get inspired by our e-book “How to Win Big During the E-Commerce Holiday Season”, featuring 30 experimentation and personalization ideas for Black Friday from AB Tasty clients around the world.