Contract Testing for Applications with Microservices

Consumer-Driven Contract Testing

If you are working in the testing domain, you probably have heard about microservices. Many organizations who have moved into modern DevOps practices are also investing in converting or building new projects into Microservice-based architecture. Contract Testing in the Microservice architecture is about splitting the application into small standalone services, each of which plays a separate role in the overall system. Being a new technology, it comes with certain challenges, especially in the testing domain. Testers, especially web testers, are now figuring out new ways of automation testing approach in the world of microservices. Before digging deeper, let’s understand what is microservices.

Benefits of Monolithic architecture

A Monolithic approach gives a boost a the beginning of the project. There is no need to define complex integration testing and deployment processes. Everything is trivialized to a single service.

Pros:

  1. Single codebase — simple to develop (at least in the beginning).
  2. No need to verify integration with other services since they don’t exist.
  3. Relatively easy deployment process — only one service needs to be deployed.

Cons:

  1. Single point of failure — if one app is down, the whole service is down.
  2. Maintenance complexity grows with time.
  3. Hard to adopt new technologies and techniques. Usually, it requires rewriting the application from scratch.

A/B testing is not only a one-off question or settling a disagreement; A/B testing is more than that.
Source- A/B Testing Tools and Practices

Benefits of Microservices

Microservices have many advantages over monolithic architecture (where a single application takes responsibility for the whole system). The most important ones are listed below:

  1. No single point of failure. When one service is down users can still use the application. Other services are still working.
  2. Individual Microservices can be scaled up to increase their capacity and availability.
  3. Security — most of the services aren’t exposed to the Internet.
  4. Every service can be deployed independently of other services. Providing they don’t break the API contracts.

Cons:

  1. Lots of work need to be invested to set up the foundation.
  2. Deployment processes are more complex. Some deployments may require deploying more than one service.
  3. Tons of work on DevOps. Especially with deployments.
  4. Dealing with integration testing.

Most large applications are developed by hundreds of developers. That’s why splitting an application into smaller services makes work easier and faster. The Microservices architecture is a good choice for medium and large applications, although the most successful startups began their applications in monolithic architecture, and migrated to Microservices later on.

Before testing a microservice application, a developer needs to perform the following strategies

  1. Ensure the code branch is correct.
  2. Pull the latest code from the repository.
  3. Ensure dependencies are all updated.
  4. Rerun if there is any database migration.
  5. Start the service.

Designing Microservices For Some Application

Let’s consider we have different services in an application like Website, Android App, iPhone App, API Gateway, User Service, Job Service, Payment Service, Email Service. The website and mobile apps communicate with services through the API Gateway. The API Gateway is the only way to access the services from the Internet. The services communicate with each other inside the internal network.

Imagine a user creates a new account. They enter the website, fill in the form, and send the request to the API Gateway. The API Gateway delivers this request to the User Service that creates a new account. After creating an account, User Service sends a request to the E-Mail Service to send an activation e-mail. An e-mail is then sent with a link that the user needs to click to activate their account.

As you noticed, the E-mail service isn’t available over the API Gateway. This is because only internal services can trigger e-mail notifications.

A process to check that the deployed build is stable or not, also helps a QA team to get confirmation so that team can proceed for further testing or not.
Source- Smoke Testing

Consumer-Driven Contract Testing

Consumer-driven contract tests are actually integration tests that are targetting your API, whether it’s REST-based or messaging-based. Imagine you’re working on an application that exposes its data using a REST API. Another team is using your exposed data for some functionality that they are providing. In order to guarantee that the functionality of the other team their application doesn’t break if we make changes to our API, we create a contract between the two teams. Key in this setup is that the contracts are defined by the consumer of your API instead of the developer that wrote the implementation of certain functionality. With this approach, we can generate tests by using those consumer-driven contracts and verify whether
we’re going to break any of our consumers’ applications.

Instead of running integration tests between all the services — get rid of them. All services communicate through RESTful APIs. That means that if we define a tight “contract” between APIs we don’t need to spin up the whole platform. It is enough to verify the fulfilment of the requirements of other services.

What is the Consumer?

  • A consumer is a client that wants to receive some data from other services (for example, a web front end, or a message receiving endpoint).
  • They define requirements towards the endpoint such as HTTP headers, status code, payload, and response.
  • The contracts are generated during the unit test runtime.
  • After all, tests succeed pact creates json files containing information on HTTP requests.

What is a Provider?

  • A provider is a service or server that provides the data (for example, an API on a server that provides the data with the client needs, or the service that sends messages).
  • A tool for verifying contracts towards provider is called Pact Provider Verifier. The verifier runs HTTP requests base on the contracts created by the consumer.
  • If the server response is in the form expecteContact tracing may sound like taking your contacts out of your eyes and then drawing circles around them. d by the consumer, the tests pass.

How to Deliver Contracts to all Peers?

After all tests on the consumer side succeed, the json files containing contracts are created. Our job is to deliver them to the providers to verify the contract. There are several ways of doing this listed below:

  1. Git repository for storing pacts, and including them into each project with a git submodule. In my opinion the best way of doing it,
  2. A file system.
  3. The Pact Broker.

The Pact Broker is an application for sharing for consumer-driven contracts and verification results. We can push our contracts there and allow the service providers to download them, and run tests against them.

DiUS provides a cloud version of the Pact Broker so, maybe you can take a look and use it. I don’t see too many advantages in running your own Pact Broker. In the end, it is yet another service which requires maintenance from DevOps. If you want to run by yourself here is the Docker images.

I think storing contracts in a separate git repository is good enough. Personally, I would create them during the integration pipeline, and run tests on the service providers within the same integration job— example integration pipeline here.

Why Should we do Contract Testing?

Usually, we want to move quickly with fast iterations, which means that we can try out ideas quickly and dispose of the ones that don’t work – so we don’t get stuck with bad decisions when it turns out there’s a better one.

However, as architectures grow, it can be difficult to figure out what broke what – especially when our service has multiple consumers. We can write integration tests to make sure that the service boundaries are safe, but those tend to be difficult and slow.
the way is to write contract tests, which help us to make sure that we

“ Another fulfil the contract that we provide to our consumers.

But what if a change has to be rolled out quickly, and we forget about contract testing?

We have a lot of responsibilities when we introduce changes: we have to make sure the new version does not introduce a breaking change, or if it does, we have to create a new version of the endpoint, document the updated API, write unit tests, write integration tests, and so on.

If we do not control all the consumers of our APIs, the exact needs of our consumers can get lost in translation. Even if our integration tests catch the problem, we might not know whether we caught a bug in the consumer, or we did not fulfil our contracts properly.

The good news is that our consumers surely have unit tests in place. These tests should run in isolation so all dependencies are ought to be mocked, including our API provider. These mocks essentially specify a contract they expect us to fulfil. Couldn’t we use those to make sure our API
serves the data they need?

Yes, we definitely can! That is called consumer-driven contract testing.

When it comes to contract testing, Pact is the go-to tool these days. We can use it for mocking on the client-side, and for sharing these mocks with the API providers. This way, the API providers can check if the changes they introduce would break anything downstream.

Let’s take a look at implementing such a solution!

Summary

To summarize, contract testing means that we verify our API against a set of expectations (contracts). This means that we want to check if upon receiving a specific call, our API provider server will return the data we specified in the documentation. We often lack precise information on the needs of our API consumers. To overcome this problem consumers can define their expectations as mocks that they use in unit tests, creating contracts that they expect us to fulfil. We can gather these mocks and verify that our provider returns the same or similar data when called the same way as the mock is set up, essentially testing the service boundary. This approach is called consumer-driven contract testing taking the following step

A bit of software that does something specific is sometimes called a service provider. Something that needs that service is a service consumer. If a client wants data from an API the API is the provider and the client is the consumer. This communication is done under a contract – a set of
specifications by which the consumer uses a provider. CDC testing is where you write the tests from the consumer’s point of view.

A Holistic Strategy to Contract Testing

Contract Testing in the digital world helps companies to develop and deliver software services which further help to serve the clients efficiently. To know more about Contract Testing,  we advise learning more About our Microservices Testing


Related Posts


Leave a Comment

Name required.
Enter a Valid Email Address.
Comment required.(Min 30 Char)

[wpforms id="8169"]
<div class="wpforms-container wpforms-container-full optin-monster-forms" id="wpforms-8169"><form id="wpforms-form-8169" class="wpforms-validate wpforms-form" data-formid="8169" method="post" enctype="multipart/form-data" action="/blog/contract-testing/" data-token="a9f01402e16f5ff152ad877e68ffcf5a"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-page-indicator progress" data-indicator="progress" data-indicator-color="#72b239" data-scroll="1"><span class="wpforms-page-indicator-page-title" ></span><span class="wpforms-page-indicator-page-title-sep" style="display:none;"> - </span><span class="wpforms-page-indicator-steps">Step <span class="wpforms-page-indicator-steps-current">1</span> of 2</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:50%;background-color:#72b239;"></div></div></div><div class="wpforms-field-container"><div class="wpforms-page wpforms-page-1 "><div id="wpforms-8169-field_10-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="10"></div><div id="wpforms-8169-field_24-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="24"><div id="wpforms-8169-field_24"><div class="form-popup-header"> <img src="https://www.xenonstack.com/images/managed-services-te-text.png" /> <h2>Next Generation <br>Cloud Managed Services<span>for <strong>24*7</strong> Operations</span></h2> </div></div></div><div id="wpforms-8169-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-3-columns" data-field-id="21"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-8169-field_21">Sevices <span class="wpforms-required-label">*</span></label><ul id="wpforms-8169-field_21" class="wpforms-field-required wpforms-image-choices wpforms-image-choices-modern"><li class="choice-1 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8169-field_21_1" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/kubernates-managed-services.png" alt="Kubernetes Managed Services" title="Kubernetes Managed Services"></span><input type="radio" id="wpforms-8169-field_21_1" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Kubernetes Managed Services" tabindex="-1" required ><span class="wpforms-image-choices-label">Kubernetes Managed Services</span></label></li><li class="choice-2 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8169-field_21_2" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/cloud-managed-services.png" alt="Cloud Managed Services" title="Cloud Managed Services"></span><input type="radio" id="wpforms-8169-field_21_2" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Cloud Managed Services" tabindex="-1" required ><span class="wpforms-image-choices-label">Cloud Managed Services</span></label></li><li class="choice-3 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8169-field_21_3" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/big-data-managed-services.png" alt="Big Data Managed Services" title="Big Data Managed Services"></span><input type="radio" id="wpforms-8169-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Big Data Managed Services" tabindex="-1" required ><span class="wpforms-image-choices-label">Big Data Managed Services</span></label></li><li class="choice-4 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8169-field_21_4" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/managed-soc.png" alt="Managed SoC" title="Managed SoC"></span><input type="radio" id="wpforms-8169-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Managed SoC" tabindex="-1" required ><span class="wpforms-image-choices-label">Managed SoC</span></label></li><li class="choice-5 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8169-field_21_5" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/nosql-database.png" alt="NoSQL Databases Managed Services" title="NoSQL Databases Managed Services"></span><input type="radio" id="wpforms-8169-field_21_5" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="NoSQL Databases Managed Services" tabindex="-1" required ><span class="wpforms-image-choices-label">NoSQL Databases Managed Services</span></label></li><li class="choice-6 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8169-field_21_6" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/graph-database-managed-services.png" alt="Graph Database Managed Services" title="Graph Database Managed Services"></span><input type="radio" id="wpforms-8169-field_21_6" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Graph Database Managed Services" tabindex="-1" required ><span class="wpforms-image-choices-label">Graph Database Managed Services</span></label></li></ul></div><div id="wpforms-8169-field_23-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="23"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="1" data-formid="8169">Next</button></div></div></div><div class="wpforms-page wpforms-page-2 last " style="display:none;"><div id="wpforms-8169-field_25-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="25"><div id="wpforms-8169-field_25"><div class="form-popup-header"> <img src="https://www.xenonstack.com/images/managed-services-te-text.png" /> <div> <h2>Lets Discuss and Understand the Requirements</h2></div> </div></div></div><div id="wpforms-8169-field_20-container" class="wpforms-field wpforms-field-name col-12 col-sm-12 col-md-12 form-group" data-field-id="20"><label class="wpforms-field-label" for="wpforms-8169-field_20">Name <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8169-field_20" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][20]" placeholder="Name" required></div><div id="wpforms-8169-field_2-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="2"><label class="wpforms-field-label" for="wpforms-8169-field_2">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-8169-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email" required></div><div id="wpforms-8169-field_3-container" class="wpforms-field wpforms-field-text col-12 col-sm-12 col-md-12 form-group" data-field-id="3"><label class="wpforms-field-label" for="wpforms-8169-field_3">Organization <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8169-field_3" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][3]" placeholder="Organization" required></div><div id="wpforms-8169-field_41-container" class="wpforms-field wpforms-field-hidden" data-field-id="41"><input type="hidden" id="wpforms-8169-field_41" name="wpforms[fields][41]" value="Sunday - Managed Services"></div><div id="wpforms-8169-field_11-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="11"><div class="wpforms-clear wpforms-pagebreak-left"></div></div></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-8169-field-hp" class="wpforms-field-label">Website</label><input type="text" name="wpforms[hp]" id="wpforms-8169-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" style="display:none;"><input type="hidden" name="wpforms[id]" value="8169"><input type="hidden" name="wpforms[author]" value="5"><input type="hidden" name="wpforms[post_id]" value="2684"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion mon-btn" id="wpforms-submit-8169" value="wpforms-submit" aria-live="assertive" data-alt-text="Submitting..." data-submit-text="Submit">Submit</button></div></form></div> <!-- .wpforms-container -->
[wpforms id="8134"]
<div class="wpforms-container wpforms-container-full optin-monster-forms" id="wpforms-8134"><form id="wpforms-form-8134" class="wpforms-validate wpforms-form" data-formid="8134" method="post" enctype="multipart/form-data" action="/blog/contract-testing/" data-token="a9f01402e16f5ff152ad877e68ffcf5a"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-page-indicator progress" data-indicator="progress" data-indicator-color="#72b239" data-scroll="1"><span class="wpforms-page-indicator-page-title" ></span><span class="wpforms-page-indicator-page-title-sep" style="display:none;"> - </span><span class="wpforms-page-indicator-steps">Step <span class="wpforms-page-indicator-steps-current">1</span> of 2</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:50%;background-color:#72b239;"></div></div></div><div class="wpforms-field-container"><div class="wpforms-page wpforms-page-1 "><div id="wpforms-8134-field_10-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="10"></div><div id="wpforms-8134-field_24-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="24"><div id="wpforms-8134-field_24"><div class="form-popup-header"> <h2>Implementing DevSecOps</h2> <p>and Compliance for Enterprises</p> </div></div></div><div id="wpforms-8134-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-3-columns" data-field-id="21"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-8134-field_21">Sevices <span class="wpforms-required-label">*</span></label><ul id="wpforms-8134-field_21" class="wpforms-field-required wpforms-image-choices wpforms-image-choices-modern"><li class="choice-1 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8134-field_21_1" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/infrastructure-automation.png" alt="Infrastructure Automation" title="Infrastructure Automation"></span><input type="radio" id="wpforms-8134-field_21_1" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Infrastructure Automation" tabindex="-1" required ><span class="wpforms-image-choices-label">Infrastructure Automation</span></label></li><li class="choice-2 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8134-field_21_2" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/continous-security.png" alt="Continuous Security" title="Continuous Security"></span><input type="radio" id="wpforms-8134-field_21_2" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Continuous Security" tabindex="-1" required ><span class="wpforms-image-choices-label">Continuous Security</span></label></li><li class="choice-3 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8134-field_21_3" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/complience-code.png" alt="Compliance as Code" title="Compliance as Code"></span><input type="radio" id="wpforms-8134-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Compliance as Code" tabindex="-1" required ><span class="wpforms-image-choices-label">Compliance as Code</span></label></li><li class="choice-6 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8134-field_21_6" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/devops-assembly-lines.png" alt="DevOps Assembly Lines" title="DevOps Assembly Lines"></span><input type="radio" id="wpforms-8134-field_21_6" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="DevOps Assembly Lines" tabindex="-1" required ><span class="wpforms-image-choices-label">DevOps Assembly Lines</span></label></li><li class="choice-4 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8134-field_21_4" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/cloud-native-devops.png" alt="Cloud Native DevOps" title="Cloud Native DevOps"></span><input type="radio" id="wpforms-8134-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Cloud Native DevOps" tabindex="-1" required ><span class="wpforms-image-choices-label">Cloud Native DevOps</span></label></li><li class="choice-5 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8134-field_21_5" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/kubernates.png" alt="Kubernetes" title="Kubernetes"></span><input type="radio" id="wpforms-8134-field_21_5" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Kubernetes" tabindex="-1" required ><span class="wpforms-image-choices-label">Kubernetes</span></label></li></ul></div><div id="wpforms-8134-field_23-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="23"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="1" data-formid="8134">Next</button></div></div></div><div class="wpforms-page wpforms-page-2 last " style="display:none;"><div id="wpforms-8134-field_25-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="25"><div id="wpforms-8134-field_25"><div class="form-popup-header"> <h2>Lets Discuss and Understand the Requirements</h2> </div></div></div><div id="wpforms-8134-field_20-container" class="wpforms-field wpforms-field-name col-12 col-sm-12 col-md-12 form-group" data-field-id="20"><label class="wpforms-field-label" for="wpforms-8134-field_20">Name <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8134-field_20" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][20]" placeholder="Name" required></div><div id="wpforms-8134-field_2-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="2"><label class="wpforms-field-label" for="wpforms-8134-field_2">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-8134-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email" required></div><div id="wpforms-8134-field_3-container" class="wpforms-field wpforms-field-text col-12 col-sm-12 col-md-12 form-group" data-field-id="3"><label class="wpforms-field-label" for="wpforms-8134-field_3">Organization <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8134-field_3" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][3]" placeholder="Organization" required></div><div id="wpforms-8134-field_41-container" class="wpforms-field wpforms-field-hidden" data-field-id="41"><input type="hidden" id="wpforms-8134-field_41" name="wpforms[fields][41]" value="Saturday - Devops"></div><div id="wpforms-8134-field_11-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="11"><div class="wpforms-clear wpforms-pagebreak-left"></div></div></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-8134-field-hp" class="wpforms-field-label">Email</label><input type="text" name="wpforms[hp]" id="wpforms-8134-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" style="display:none;"><input type="hidden" name="wpforms[id]" value="8134"><input type="hidden" name="wpforms[author]" value="5"><input type="hidden" name="wpforms[post_id]" value="2684"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion mon-btn" id="wpforms-submit-8134" value="wpforms-submit" aria-live="assertive" data-alt-text="Submitting..." data-submit-text="Submit">Submit</button></div></form></div> <!-- .wpforms-container -->
[wpforms id="8104"]
<div class="wpforms-container wpforms-container-full optin-monster-forms" id="wpforms-8104"><form id="wpforms-form-8104" class="wpforms-validate wpforms-form" data-formid="8104" method="post" enctype="multipart/form-data" action="/blog/contract-testing/" data-token="a9f01402e16f5ff152ad877e68ffcf5a"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-page-indicator progress" data-indicator="progress" data-indicator-color="#72b239" data-scroll="1"><span class="wpforms-page-indicator-page-title" ></span><span class="wpforms-page-indicator-page-title-sep" style="display:none;"> - </span><span class="wpforms-page-indicator-steps">Step <span class="wpforms-page-indicator-steps-current">1</span> of 2</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:50%;background-color:#72b239;"></div></div></div><div class="wpforms-field-container"><div class="wpforms-page wpforms-page-1 "><div id="wpforms-8104-field_10-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="10"></div><div id="wpforms-8104-field_24-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="24"><div id="wpforms-8104-field_24"><div class="form-popup-header"> <h2>Modernise Data Operations with DataOps</h2> </div></div></div><div id="wpforms-8104-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-2-columns" data-field-id="21"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-8104-field_21">Sevices <span class="wpforms-required-label">*</span></label><ul id="wpforms-8104-field_21" class="wpforms-field-required wpforms-image-choices wpforms-image-choices-modern"><li class="choice-1 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8104-field_21_1" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/data-catalog.png" alt="Data Catalog and Discovery Platform" title="Data Catalog and Discovery Platform"></span><input type="radio" id="wpforms-8104-field_21_1" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Data Catalog and Discovery Platform" tabindex="-1" required ><span class="wpforms-image-choices-label">Data Catalog and Discovery Platform</span></label></li><li class="choice-2 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8104-field_21_2" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/real-time-analytics.png" alt="Real Time Analytics Platform" title="Real Time Analytics Platform"></span><input type="radio" id="wpforms-8104-field_21_2" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Real Time Analytics Platform" tabindex="-1" required ><span class="wpforms-image-choices-label">Real Time Analytics Platform</span></label></li><li class="choice-3 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8104-field_21_3" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/migration-delta-lake.png" alt="Migration to Delta Lake" title="Migration to Delta Lake"></span><input type="radio" id="wpforms-8104-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Migration to Delta Lake" tabindex="-1" required ><span class="wpforms-image-choices-label">Migration to Delta Lake</span></label></li><li class="choice-4 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8104-field_21_4" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/cloud-data-warehouse.png" alt="Cloud Data warehouse" title="Cloud Data warehouse"></span><input type="radio" id="wpforms-8104-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Cloud Data warehouse" tabindex="-1" required ><span class="wpforms-image-choices-label">Cloud Data warehouse</span></label></li><li class="choice-5 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8104-field_21_5" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/enterprise-data-strategy.png" alt="Enterprise Data Strategy" title="Enterprise Data Strategy"></span><input type="radio" id="wpforms-8104-field_21_5" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Enterprise Data Strategy" tabindex="-1" required ><span class="wpforms-image-choices-label">Enterprise Data Strategy</span></label></li></ul></div><div id="wpforms-8104-field_23-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="23"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="1" data-formid="8104">Next</button></div></div></div><div class="wpforms-page wpforms-page-2 last " style="display:none;"><div id="wpforms-8104-field_25-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="25"><div id="wpforms-8104-field_25"><div class="form-popup-header"> <h2>Lets Discuss and Understand the Requirements</h2> </div></div></div><div id="wpforms-8104-field_20-container" class="wpforms-field wpforms-field-name col-12 col-sm-12 col-md-12 form-group" data-field-id="20"><label class="wpforms-field-label" for="wpforms-8104-field_20">Name <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8104-field_20" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][20]" placeholder="Name" required></div><div id="wpforms-8104-field_2-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="2"><label class="wpforms-field-label" for="wpforms-8104-field_2">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-8104-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email" required></div><div id="wpforms-8104-field_3-container" class="wpforms-field wpforms-field-text col-12 col-sm-12 col-md-12 form-group" data-field-id="3"><label class="wpforms-field-label" for="wpforms-8104-field_3">Organization <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8104-field_3" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][3]" placeholder="Organization" required></div><div id="wpforms-8104-field_41-container" class="wpforms-field wpforms-field-hidden" data-field-id="41"><input type="hidden" id="wpforms-8104-field_41" name="wpforms[fields][41]" value="Friday - Modernise Data"></div><div id="wpforms-8104-field_11-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="11"><div class="wpforms-clear wpforms-pagebreak-left"></div></div></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-8104-field-hp" class="wpforms-field-label">Comment</label><input type="text" name="wpforms[hp]" id="wpforms-8104-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" style="display:none;"><input type="hidden" name="wpforms[id]" value="8104"><input type="hidden" name="wpforms[author]" value="5"><input type="hidden" name="wpforms[post_id]" value="2684"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion mon-btn" id="wpforms-submit-8104" value="wpforms-submit" aria-live="assertive" data-alt-text="Submitting..." data-submit-text="Submit">Submit</button></div></form></div> <!-- .wpforms-container -->
[wpforms id="8095"]
<div class="wpforms-container wpforms-container-full optin-monster-forms" id="wpforms-8095"><form id="wpforms-form-8095" class="wpforms-validate wpforms-form" data-formid="8095" method="post" enctype="multipart/form-data" action="/blog/contract-testing/" data-token="a9f01402e16f5ff152ad877e68ffcf5a"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-page-indicator progress" data-indicator="progress" data-indicator-color="#72b239" data-scroll="1"><span class="wpforms-page-indicator-page-title" ></span><span class="wpforms-page-indicator-page-title-sep" style="display:none;"> - </span><span class="wpforms-page-indicator-steps">Step <span class="wpforms-page-indicator-steps-current">1</span> of 2</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:50%;background-color:#72b239;"></div></div></div><div class="wpforms-field-container"><div class="wpforms-page wpforms-page-1 "><div id="wpforms-8095-field_10-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="10"></div><div id="wpforms-8095-field_24-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="24"><div id="wpforms-8095-field_24"><div class="form-popup-header"> <h2>RPA and Cognitive Automation</h2> <p>Making business processes smarter and more efficient</p> </div></div></div><div id="wpforms-8095-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-3-columns" data-field-id="21"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-8095-field_21">Sevices <span class="wpforms-required-label">*</span></label><ul id="wpforms-8095-field_21" class="wpforms-field-required wpforms-image-choices wpforms-image-choices-modern"><li class="choice-1 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8095-field_21_1" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/automation-anywhere.png" alt=""></span><input type="radio" id="wpforms-8095-field_21_1" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Choice 1" tabindex="-1" required ><span class="wpforms-image-choices-label"></span></label></li><li class="choice-2 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8095-field_21_2" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/uipath.png" alt=""></span><input type="radio" id="wpforms-8095-field_21_2" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Choice 2" tabindex="-1" required ><span class="wpforms-image-choices-label"></span></label></li><li class="choice-3 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8095-field_21_3" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/blueprism.png" alt=""></span><input type="radio" id="wpforms-8095-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Choice 3" tabindex="-1" required ><span class="wpforms-image-choices-label"></span></label></li><li class="choice-4 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8095-field_21_4" tabindex="0"><input type="radio" id="wpforms-8095-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Intelligent Automation" tabindex="-1" required ><span class="wpforms-image-choices-label">Intelligent Automation</span></label></li><li class="choice-5 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8095-field_21_5" tabindex="0"><input type="radio" id="wpforms-8095-field_21_5" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="RPA with AI" tabindex="-1" required ><span class="wpforms-image-choices-label">RPA with AI</span></label></li><li class="choice-6 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8095-field_21_6" tabindex="0"><input type="radio" id="wpforms-8095-field_21_6" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Open Source RPA Implementation" tabindex="-1" required ><span class="wpforms-image-choices-label">Open Source RPA Implementation</span></label></li></ul></div><div id="wpforms-8095-field_23-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="23"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="1" data-formid="8095">Next</button></div></div></div><div class="wpforms-page wpforms-page-2 last " style="display:none;"><div id="wpforms-8095-field_25-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="25"><div id="wpforms-8095-field_25"><div class="form-popup-header"> <h2>Let Us Discuss and Understand the Requirement</h2> </div></div></div><div id="wpforms-8095-field_20-container" class="wpforms-field wpforms-field-name col-12 col-sm-12 col-md-12 form-group" data-field-id="20"><label class="wpforms-field-label" for="wpforms-8095-field_20">Name <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8095-field_20" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][20]" placeholder="Name" required></div><div id="wpforms-8095-field_2-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="2"><label class="wpforms-field-label" for="wpforms-8095-field_2">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-8095-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email" required></div><div id="wpforms-8095-field_3-container" class="wpforms-field wpforms-field-text col-12 col-sm-12 col-md-12 form-group" data-field-id="3"><label class="wpforms-field-label" for="wpforms-8095-field_3">Organization <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8095-field_3" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][3]" placeholder="Organization" required></div><div id="wpforms-8095-field_41-container" class="wpforms-field wpforms-field-hidden" data-field-id="41"><input type="hidden" id="wpforms-8095-field_41" name="wpforms[fields][41]" value="Thrusday RPA Form"></div><div id="wpforms-8095-field_11-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="11"><div class="wpforms-clear wpforms-pagebreak-left"></div></div></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-8095-field-hp" class="wpforms-field-label">Website</label><input type="text" name="wpforms[hp]" id="wpforms-8095-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" style="display:none;"><input type="hidden" name="wpforms[id]" value="8095"><input type="hidden" name="wpforms[author]" value="5"><input type="hidden" name="wpforms[post_id]" value="2684"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion mon-btn" id="wpforms-submit-8095" value="wpforms-submit" aria-live="assertive" data-alt-text="Submitting..." data-submit-text="Submit">Submit</button></div></form></div> <!-- .wpforms-container -->
[wpforms id="8085"]
<div class="wpforms-container wpforms-container-full optin-monster-forms" id="wpforms-8085"><form id="wpforms-form-8085" class="wpforms-validate wpforms-form" data-formid="8085" method="post" enctype="multipart/form-data" action="/blog/contract-testing/" data-token="a9f01402e16f5ff152ad877e68ffcf5a"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-page-indicator progress" data-indicator="progress" data-indicator-color="#72b239" data-scroll="1"><span class="wpforms-page-indicator-page-title" ></span><span class="wpforms-page-indicator-page-title-sep" style="display:none;"> - </span><span class="wpforms-page-indicator-steps">Step <span class="wpforms-page-indicator-steps-current">1</span> of 2</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:50%;background-color:#72b239;"></div></div></div><div class="wpforms-field-container"><div class="wpforms-page wpforms-page-1 "><div id="wpforms-8085-field_10-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="10"></div><div id="wpforms-8085-field_24-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="24"><div id="wpforms-8085-field_24"><div class="form-popup-header"> <img src="https://www.xenonstack.com/images/wednesday-digitally-transform-popup-img.png" /> <h2>Digitally Transform <span>your Organization </span></h2> </div></div></div><div id="wpforms-8085-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-2-columns" data-field-id="21"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-8085-field_21">Sevices <span class="wpforms-required-label">*</span></label><ul id="wpforms-8085-field_21" class="wpforms-field-required wpforms-image-choices wpforms-image-choices-modern"><li class="choice-1 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8085-field_21_1" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/continous-delivery-e1594278564177.png" alt="Continous Delivery and DevSecOps" title="Continous Delivery and DevSecOps"></span><input type="radio" id="wpforms-8085-field_21_1" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Continous Delivery and DevSecOps" tabindex="-1" required ><span class="wpforms-image-choices-label">Continous Delivery and DevSecOps</span></label></li><li class="choice-2 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8085-field_21_2" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/robotic-process.png" alt="Robotic Process Automation" title="Robotic Process Automation"></span><input type="radio" id="wpforms-8085-field_21_2" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Robotic Process Automation" tabindex="-1" required ><span class="wpforms-image-choices-label">Robotic Process Automation</span></label></li><li class="choice-3 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8085-field_21_3" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/big-data-analytics.png" alt="Big Data Analytics" title="Big Data Analytics"></span><input type="radio" id="wpforms-8085-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Big Data Analytics" tabindex="-1" required ><span class="wpforms-image-choices-label">Big Data Analytics</span></label></li><li class="choice-4 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8085-field_21_4" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/cloud-security.png" alt="Cloud Security" title="Cloud Security"></span><input type="radio" id="wpforms-8085-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Cloud Security" tabindex="-1" required ><span class="wpforms-image-choices-label">Cloud Security</span></label></li><li class="choice-5 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8085-field_21_5" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/data-science-ai.png" alt="Data Science and AI" title="Data Science and AI"></span><input type="radio" id="wpforms-8085-field_21_5" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Data Science and AI" tabindex="-1" required ><span class="wpforms-image-choices-label">Data Science and AI</span></label></li><li class="choice-6 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8085-field_21_6" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/cloud-migration.png" alt="Cloud Migration" title="Cloud Migration"></span><input type="radio" id="wpforms-8085-field_21_6" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Cloud Migration" tabindex="-1" required ><span class="wpforms-image-choices-label">Cloud Migration</span></label></li></ul></div><div id="wpforms-8085-field_23-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="23"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="1" data-formid="8085">Next</button></div></div></div><div class="wpforms-page wpforms-page-2 last " style="display:none;"><div id="wpforms-8085-field_25-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="25"><div id="wpforms-8085-field_25"><div class="form-popup-header"> <img src="https://www.xenonstack.com/images/wednesday-digitally-transform-popup-img.png" /> <div> <h2>How can we get in Touch</h2> <p>Fill the form and we will revert back to you soon.<p></div> </div></div></div><div id="wpforms-8085-field_20-container" class="wpforms-field wpforms-field-name col-12 col-sm-12 col-md-12 form-group" data-field-id="20"><label class="wpforms-field-label" for="wpforms-8085-field_20">Name <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8085-field_20" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][20]" placeholder="Name" required></div><div id="wpforms-8085-field_2-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="2"><label class="wpforms-field-label" for="wpforms-8085-field_2">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-8085-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email" required></div><div id="wpforms-8085-field_3-container" class="wpforms-field wpforms-field-text col-12 col-sm-12 col-md-12 form-group" data-field-id="3"><label class="wpforms-field-label" for="wpforms-8085-field_3">Organization <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8085-field_3" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][3]" placeholder="Organization" required></div><div id="wpforms-8085-field_41-container" class="wpforms-field wpforms-field-hidden" data-field-id="41"><input type="hidden" id="wpforms-8085-field_41" name="wpforms[fields][41]" value="Wednesday Generic form"></div><div id="wpforms-8085-field_11-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="11"><div class="wpforms-clear wpforms-pagebreak-left"></div></div></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-8085-field-hp" class="wpforms-field-label">Phone</label><input type="text" name="wpforms[hp]" id="wpforms-8085-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" style="display:none;"><input type="hidden" name="wpforms[id]" value="8085"><input type="hidden" name="wpforms[author]" value="5"><input type="hidden" name="wpforms[post_id]" value="2684"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion mon-btn" id="wpforms-submit-8085" value="wpforms-submit" aria-live="assertive" data-alt-text="Submitting..." data-submit-text="Submit">Submit</button></div></form></div> <!-- .wpforms-container -->
[wpforms id="8051"]
<div class="wpforms-container wpforms-container-full optin-monster-forms" id="wpforms-8051"><form id="wpforms-form-8051" class="wpforms-validate wpforms-form" data-formid="8051" method="post" enctype="multipart/form-data" action="/blog/contract-testing/" data-token="a9f01402e16f5ff152ad877e68ffcf5a"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-page-indicator progress" data-indicator="progress" data-indicator-color="#72b239" data-scroll="1"><span class="wpforms-page-indicator-page-title" ></span><span class="wpforms-page-indicator-page-title-sep" style="display:none;"> - </span><span class="wpforms-page-indicator-steps">Step <span class="wpforms-page-indicator-steps-current">1</span> of 2</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:50%;background-color:#72b239;"></div></div></div><div class="wpforms-field-container"><div class="wpforms-page wpforms-page-1 "><div id="wpforms-8051-field_10-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="10"></div><div id="wpforms-8051-field_24-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="24"><div id="wpforms-8051-field_24"><div class="form-popup-header"> <h2>Build an AI-Driven Enterprise</h2> <p>Unlock the potential of AI at scale</p> </div></div></div><div id="wpforms-8051-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-3-columns" data-field-id="21"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-8051-field_21">Sevices <span class="wpforms-required-label">*</span></label><ul id="wpforms-8051-field_21" class="wpforms-field-required wpforms-image-choices wpforms-image-choices-modern"><li class="choice-1 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8051-field_21_1" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/privacy-preserving-ai-1.png" alt="Privacy-Preserving AI" title="Privacy-Preserving AI"></span><input type="radio" id="wpforms-8051-field_21_1" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Privacy-Preserving AI" tabindex="-1" required ><span class="wpforms-image-choices-label">Privacy-Preserving AI</span></label></li><li class="choice-2 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8051-field_21_2" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/conversation-platform-ai-1.png" alt="Conversation AI Platform" title="Conversation AI Platform"></span><input type="radio" id="wpforms-8051-field_21_2" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Conversation AI Platform" tabindex="-1" required ><span class="wpforms-image-choices-label">Conversation AI Platform</span></label></li><li class="choice-3 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8051-field_21_3" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/enterprise-ai-platform-1.png" alt="Enterprise AI Platform" title="Enterprise AI Platform"></span><input type="radio" id="wpforms-8051-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Enterprise AI Platform" tabindex="-1" required ><span class="wpforms-image-choices-label">Enterprise AI Platform</span></label></li><li class="choice-4 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8051-field_21_4" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/continous-delivery-machine-learning-1.png" alt="Continuous Delivery for Machine learning" title="Continuous Delivery for Machine learning"></span><input type="radio" id="wpforms-8051-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Continuous Delivery for Machine learning" tabindex="-1" required ><span class="wpforms-image-choices-label">Continuous Delivery for Machine learning</span></label></li><li class="choice-5 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8051-field_21_5" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/featured-transfer-learning-1.png" alt="Federated and Transfer Learning" title="Federated and Transfer Learning"></span><input type="radio" id="wpforms-8051-field_21_5" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Federated and Transfer Learning" tabindex="-1" required ><span class="wpforms-image-choices-label">Federated and Transfer Learning</span></label></li><li class="choice-6 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-8051-field_21_6" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/explainable-artificial-intelligence-1.png" alt="Explainable Artificial Intelligence (XAI)" title="Explainable Artificial Intelligence (XAI)"></span><input type="radio" id="wpforms-8051-field_21_6" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Explainable Artificial Intelligence (XAI)" tabindex="-1" required ><span class="wpforms-image-choices-label">Explainable Artificial Intelligence (XAI)</span></label></li></ul></div><div id="wpforms-8051-field_23-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="23"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="1" data-formid="8051">Next</button></div></div></div><div class="wpforms-page wpforms-page-2 last " style="display:none;"><div id="wpforms-8051-field_25-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="25"><div id="wpforms-8051-field_25"><div class="form-popup-header"> <h2>How can we get in Touch</h2> <p>Fill the form and we will revert back to you soon.<p> </div></div></div><div id="wpforms-8051-field_20-container" class="wpforms-field wpforms-field-name col-12 col-sm-12 col-md-12 form-group" data-field-id="20"><label class="wpforms-field-label" for="wpforms-8051-field_20">Name <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8051-field_20" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][20]" placeholder="Name" required></div><div id="wpforms-8051-field_2-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="2"><label class="wpforms-field-label" for="wpforms-8051-field_2">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-8051-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email" required></div><div id="wpforms-8051-field_3-container" class="wpforms-field wpforms-field-text col-12 col-sm-12 col-md-12 form-group" data-field-id="3"><label class="wpforms-field-label" for="wpforms-8051-field_3">Organization <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-8051-field_3" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][3]" placeholder="Organization" required></div><div id="wpforms-8051-field_42-container" class="wpforms-field wpforms-field-hidden" data-field-id="42"><input type="hidden" id="wpforms-8051-field_42" name="wpforms[fields][42]" value="Tuesday - Build an AI-Driven Enterprise"></div><div id="wpforms-8051-field_11-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="11"><div class="wpforms-clear wpforms-pagebreak-left"></div></div></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-8051-field-hp" class="wpforms-field-label">Email</label><input type="text" name="wpforms[hp]" id="wpforms-8051-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" style="display:none;"><input type="hidden" name="wpforms[id]" value="8051"><input type="hidden" name="wpforms[author]" value="5"><input type="hidden" name="wpforms[post_id]" value="2684"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion mon-btn" id="wpforms-submit-8051" value="wpforms-submit" aria-live="assertive" data-alt-text="Submitting..." data-submit-text="Submit">Submit</button></div></form></div> <!-- .wpforms-container -->
[wpforms id="7646"]
<div class="wpforms-container wpforms-container-full optin-monster-forms" id="wpforms-7646"><form id="wpforms-form-7646" class="wpforms-validate wpforms-form" data-formid="7646" method="post" enctype="multipart/form-data" action="/blog/contract-testing/" data-token="a9f01402e16f5ff152ad877e68ffcf5a"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-page-indicator progress" data-indicator="progress" data-indicator-color="#72b239" data-scroll="1"><span class="wpforms-page-indicator-page-title" ></span><span class="wpforms-page-indicator-page-title-sep" style="display:none;"> - </span><span class="wpforms-page-indicator-steps">Step <span class="wpforms-page-indicator-steps-current">1</span> of 2</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:50%;background-color:#72b239;"></div></div></div><div class="wpforms-field-container"><div class="wpforms-page wpforms-page-1 "><div id="wpforms-7646-field_10-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="10"></div><div id="wpforms-7646-field_24-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="24"><div id="wpforms-7646-field_24"><div class="form-popup-header"> <h2>Accelerate Digital Transformation with Intelligent Automation</h2> </div></div></div><div id="wpforms-7646-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-2-columns" data-field-id="21"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-7646-field_21">Sevices <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_21" class="wpforms-field-required wpforms-image-choices wpforms-image-choices-modern"><li class="choice-1 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-7646-field_21_1" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/real-time-data-analysis.png" alt="Real Time Data Analytics" title="Real Time Data Analytics"></span><input type="radio" id="wpforms-7646-field_21_1" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Real Time Data Analytics" tabindex="-1" required ><span class="wpforms-image-choices-label">Real Time Data Analytics</span></label></li><li class="choice-2 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-7646-field_21_2" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/data-visualization.png" alt="Interactive Data Visualisation" title="Interactive Data Visualisation"></span><input type="radio" id="wpforms-7646-field_21_2" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Interactive Data Visualisation" tabindex="-1" required ><span class="wpforms-image-choices-label">Interactive Data Visualisation</span></label></li><li class="choice-3 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-7646-field_21_3" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/application-modernisation.png" alt="Application Modernisation" title="Application Modernisation"></span><input type="radio" id="wpforms-7646-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Application Modernisation" tabindex="-1" required ><span class="wpforms-image-choices-label">Application Modernisation</span></label></li><li class="choice-4 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-7646-field_21_4" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/enterprise-ai.png" alt="Enterprise AI" title="Enterprise AI"></span><input type="radio" id="wpforms-7646-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Enterprise AI" tabindex="-1" required ><span class="wpforms-image-choices-label">Enterprise AI</span></label></li><li class="choice-5 depth-1 wpforms-image-choices-item"><label class="wpforms-field-label-inline" for="wpforms-7646-field_21_5" tabindex="0"><span class="wpforms-image-choices-image"><img src="https://www.xenonstack.com/wp-content/uploads/2020/07/intelligent-cognitive-automation.png" alt="Intelligent and Cognitive Automation" title="Intelligent and Cognitive Automation"></span><input type="radio" id="wpforms-7646-field_21_5" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Intelligent and Cognitive Automation" tabindex="-1" required ><span class="wpforms-image-choices-label">Intelligent and Cognitive Automation</span></label></li></ul></div><div id="wpforms-7646-field_23-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="23"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="1" data-formid="7646">Next</button></div></div></div><div class="wpforms-page wpforms-page-2 last " style="display:none;"><div id="wpforms-7646-field_25-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="25"><div id="wpforms-7646-field_25"><div class="form-popup-header"> <h2>How can we get in Touch</h2> <p>Fill the form and we will revert back to you soon.<p> </div></div></div><div id="wpforms-7646-field_20-container" class="wpforms-field wpforms-field-name col-12 col-sm-12 col-md-12 form-group" data-field-id="20"><label class="wpforms-field-label" for="wpforms-7646-field_20">Name <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-7646-field_20" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][20]" placeholder="Name" required></div><div id="wpforms-7646-field_2-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="2"><label class="wpforms-field-label" for="wpforms-7646-field_2">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-7646-field_2" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][2]" placeholder="Email" required></div><div id="wpforms-7646-field_3-container" class="wpforms-field wpforms-field-text col-12 col-sm-12 col-md-12 form-group" data-field-id="3"><label class="wpforms-field-label" for="wpforms-7646-field_3">Organization <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-7646-field_3" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][3]" placeholder="Organization" required></div><div id="wpforms-7646-field_41-container" class="wpforms-field wpforms-field-hidden" data-field-id="41"><input type="hidden" id="wpforms-7646-field_41" name="wpforms[fields][41]" value="Monday popup"></div><div id="wpforms-7646-field_11-container" class="wpforms-field wpforms-field-pagebreak" data-field-id="11"><div class="wpforms-clear wpforms-pagebreak-left"></div></div></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-7646-field-hp" class="wpforms-field-label">Phone</label><input type="text" name="wpforms[hp]" id="wpforms-7646-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" style="display:none;"><input type="hidden" name="wpforms[id]" value="7646"><input type="hidden" name="wpforms[author]" value="5"><input type="hidden" name="wpforms[post_id]" value="2684"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion mon-btn" id="wpforms-submit-7646" value="wpforms-submit" aria-live="assertive" data-alt-text="Submitting..." data-submit-text="Submit">Submit</button></div></form></div> <!-- .wpforms-container -->