Understanding Test Driven and Behavior Driven Development - XenonStack

Overview of Test Driven Development

Software testing plays an important role in the life cycle of software development. It is imperative to identify bugs and errors during software development and increase the quality of the product.Therefore, one must focus on software testing. There are many approaches and Test and Behavior Driven Development approach is one of them.

TDD is the key practice for extreme programming; it suggests that the code is developed or changed exclusively on the basis of the unit test results.

Test Driven Development Approach

Test Driven Development with Legacy Code

In simple words, a code without testing is known as legacy code. A big disadvantage of legacy code is that it’s not easily understandable (for both developments as well as the business team) and that is the only reason why it is difficult to change the code for new features. You can also learn more more about Test Driven Development for Big Data.

Therefore, a code without tests is bad code. It is necessary to write code with tests for best productivity and easy modifications.

Why Test Driven Development-TDD?

3 Benefits of Test Driven Development

  • It gives a way to think through our requirements or design before we write our functional code.
  • It is a programming technique that enables us to take small steps during building software.
  • It is more productive as compared to attempting to code in large steps.

Let’s take an example, assume that you write some code and then compile it and then test it and there may be chances of failure. In this case, it becomes easy to find and fix those defects if you’ve written two new lines of code as compared to if you’ve written a thousand lines of code.

What is Test Driven Development?

  • The most efficient and attractive way to proceed in smaller steps.
  • Following TDD means
    • Fewer Bugs
    • Higher quality software
    • Focus on single functionality at a given point in time

Importance of Test Driven Development (TDD)

  • Requirements – Drive out requirement issues early(more focus on requirements in depth).
  • Rapid Feedback – Many small changes vs One big change
  • Values Refactoring – Refactor often to lower impact and risk.
  • Design to Test – Testing driving is a good design practice.
  • Tests as information – Documenting decisions and assumptions.

Need of Test Driven Development

You May also Love to Read Test Driven & Behavior Driven Development in Scala


Acceptance Test Driven Development (ATDD) Overview

ATDD stands for Acceptance Test Driven Development. This technique is done before starting the development and includes customers, testers and developers into the loop.

These all together decided acceptance criteria and work accordingly to meet the requirements. ATDD helps to ensure that all project members understand what needs to be done and implemented. The failing tests provide us quick feedback that the requirement is not being met.

It is a collaborative practice where users, testers, and developers define automated acceptance criteria. ATDD helps to ensure that all project members understand precisely what needs to be done and implemented.

Failing tests provide quick feedback that the requirements are not being met. The tests are specified in business domain terms.

Each feature must deliver real and measurable business value: indeed, if your feature doesn’t trace back to at least one business goal, then you should be wondering why you are implementing it in the first place.

Why Acceptance Test Driven Development (ATDD)?

ATDD usually involves establishing the criteria first most often from a user perspective, and, acceptance tests are developed and run to see the results of failure with the right code based on examples. Customer need technical help. Developer and Tester to provide technical support. Pairwise authoring. Developers need business knowledge. Customer can provide business rules. Pairwise implementation.

3 Benefits of Acceptance Test Driven Development

  • ATDD closes the loop between product and dev teams
  • ATDD increases efficiency in the development process
  • ATDD promotes a shared understanding of “complete.”

When the whole team is involved in creating the requirements for the end goal, there is a lot more clarity on what the finished project should look like. No time is wasted on miscommunication, unmet expectations, or last minutes changes due to lack of understanding about the end user.

Importance of Acceptance Test Driven Development

If you use SCRUM and user stories to deliver your projects, chances are each of your user stories has many Acceptance Criteria associated with them. And, you’ll notice that each lowest level Acceptance Criterion represents a unit of a functional component that needs to be delivered before the user story can be marked ‘done’.

  • Developers write code with ‘Testing’ in mind
  • Receive quick feedback on code quality
  • Outlines the specific feature
  • Clear details to let the developers /testers know when they are ‘Done’
  • Fosters communication between the engineering and business customers
  • Understand and Write User stories
  • Convert Acceptance criteria into executable Acceptance test cases
  • Write code to match the Acceptance test cases

Benefits of Acceptance Test Driven Development (ATDD)

  • As we have ATDD very first, so it helps to reduce defect and bug fixing effort as the project progresses.
  • ATDD only focus on ‘What’ and not ‘How’. So, this makes it very easier to meet customer’s requirements.
  • ATDD makes developers, testers, and customers to work together, this helps to understand what is required from the system.

Behaviour Driven Development (BDD) Overview

Behaviour Driven Development is similar to Test Driven Development. In other words, Behaviour Driven Development is the extended version of Test Driven Development.

The process is similar to TDD. In this also, the code is first written in BDD and then production code. But, the main difference is that in BDD the test is written in plain descriptive English type grammar as opposed to TDD.

This type of development:-

  • Explains the behavior of the software/program.
  • User-friendly

The major benefit of BDD is that it can easily be understood by a non-technical person also.

Features of Behavior Driven Development

  • The major change is in the thought process which is to be shifted from analyzing in tests to analyzing in behavior.
  • Ubiquitous language is used, hence it is easy to be explained.
  • BDD approach is driven by business value.
  • It can be seen as an extension to TDD, it uses natural language which is easy to understand by non-technical stakeholders also.

Behavior Driven Development (BDD) Approach

We believe that the role of testing and test automation TDD (Test Driven Development) is essential to the success of any BDD initiative. Testers have to write tests that validate the behavior of the product or system being generated.

The test results formed are more readable by the non-technical user as well. For Behavior Driven Development to be successful, it becomes crucial to classify and verify only those behaviors that give directly to business outcomes.

Developer in the BDD environment has to identify what program to test and what not to test and to understand why the test failed. Much like Test Driven Development, BDD also recommends that tests should be written first and should describe the functionalities of the product that can be suited to the requirements.

Behavior Driven Development helps greatly when building detailed automated unit tests because it focuses on testing behavior instead of testing implementation. The developer thus has to focus on writing test cases keeping the synopsis rather than code implementation in mind.

By doing this, even when the requirements change, the developer does not have to change the test, input, and output to support it. That makes unit testing automation much faster and more reliable.

Though BDD has its own sets of advantages, it can sometimes fall prey to reductions. Development teams and Tester, therefore, need to accept that while failing a test is a guarantee that the product is not ready to be delivered to the client, passing a test also does not mean that the product is ready for launch.

It will be closed when development, testing, and business teams will give updates and progress report on time. Since the testing efforts are moved more towards automation and cover all business features and use cases, this framework ensures a high defect detection rate due to higher test coverage, faster changes, and timely releases.

Features of Behavior Driven Development (BDD)

It is highly suggested for teams and developers to adopt BDD because of several reasons, some of them are listed below:

  • BDD provides a very accurate guidance on how to be organizing communication between all the stakeholders of a project, may it be technical or non-technical.
  • BDD enables early testing in the development process, early testing means lesser bugs later.
  • By using a language that is understood by all, rather than a programming language, a better visibility of the project is achieved.
  • The developers feel more confident about their code and that it won’t break which ensures better predictability.

Differences Between BDD, TDD, and ATDD

BDD uses Ubiquitous language that can be easily understood by the developers and customers or stakeholders.

TDD is about writing tests to satisfy system requirements as outlined in the BRD, BDD encourages developers to write tests such that they reflect the behavioral expectations from the system of the stakeholders.

All three BDD, TDD and ATDD are closely related to each other. But neither can replace the other one as each one has its own merits and demerits.

BDD is more customer-focused than TDD and ATDD. This allows much easier collaboration with non-techie stakeholders than TDD.


Summary of Test and Behavior Driven Development

Test-driven development(TDD) is a development technique where the big data engineering team should test all their components first before putting everything in production.

It will help us to prevent the issues in the production environment and keep the performance of our Big Data based solutions predictable. TDD gives a proven way to ensure effective unit and integration testing.

We believe that Test and Behavior Driven Development is an incredible practice and that all software developers should consider during the deployment of Big Data Components and develop code for Big Data Solutions.


How Can XenonStack Help You?

XenonStack follows the Test Driven Development Approach in the development of Enterprise level Applications following Agile Scrum Methodology.

  • Application Modernization Services

Application Modernization means re-platforming, re-hosting, recoding, rearchitecting, re-engineering, interoperability, of the legacy Software application for current business needs. Application Modernization services enable the migration of monolithic applications to new Microservices architecture with Native Cloud Support including the integration of new functionality to create new value from existing application.

Develop, Deploy and Manage Agile Java Application on leading Cloud Service Providers – Google Cloud, Microsoft Azure, AWS, and Container Environment – Docker and Kubernetes.

  • Microservices Architecture

Take a cloud-native approach to building Enterprise Applications for Web and Mobile with Microservices Architecture. An Application based on Microservices Architecture is Small, Messaging–enabled, Bounded by contexts, Autonomously developed, Independently deployable, Decentralized, Language–agnostic, Built and released with automated processes.



[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/test-behaviour-driven-development/"><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 3</span><div class="wpforms-page-indicator-page-progress-wrap"><div class="wpforms-page-indicator-page-progress" style="width:33.333333333333%;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>Contact Us<span>!</span></h2> <p>Digitally Transform your Organization with <strong>XenonStack</strong><p> </div></div></div><div id="wpforms-7646-field_21-container" class="wpforms-field wpforms-field-radio custom-radio-btn-wrapper wpforms-list-2-columns wpforms-conditional-trigger" 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/06/application-modernisation-popup-option-e1593153816141.png" alt="Application Modernisation " title="Application Modernisation "></span><input type="radio" id="wpforms-7646-field_21_1" 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-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/06/bigdata-analytics-popup-option-e1593153889151.png" alt="Big Data Analytics" title="Big Data Analytics"></span><input type="radio" id="wpforms-7646-field_21_2" 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-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/06/cloud-migrations-popup-option-e1593153901704.png" alt="Cloud Migrations" title="Cloud Migrations"></span><input type="radio" id="wpforms-7646-field_21_3" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Cloud Migrations" tabindex="-1" required ><span class="wpforms-image-choices-label">Cloud Migrations</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/06/data-visualization-popup-option-e1593153911839.png" alt="Data Visualization" title="Data Visualization"></span><input type="radio" id="wpforms-7646-field_21_4" class="wpforms-screen-reader-element" name="wpforms[fields][21]" value="Data Visualization" tabindex="-1" required ><span class="wpforms-image-choices-label">Data Visualization</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/06/robotic-process-automation-popup-option-e1593153919805.png" alt="Robotic Process Automation" title="Robotic Process Automation"></span><input type="radio" id="wpforms-7646-field_21_5" 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></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 " 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-10 col-md-8 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-10 col-md-8 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-10 col-md-8 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_12-container" class="wpforms-field wpforms-field-pagebreak next-btn-wrapper" data-field-id="12"><div class="wpforms-clear wpforms-pagebreak-left"><button class="wpforms-page-button wpforms-page-next" data-action="next" data-page="2" data-formid="7646">Next</button></div></div></div><div class="wpforms-page wpforms-page-3 last next-btn-wrapper" style="display:none;"><div id="wpforms-7646-field_34-container" class="wpforms-field wpforms-field-html form-popup-header-wrapper" data-field-id="34"><div id="wpforms-7646-field_34"><div class="form-popup-header"> <h2>Share Your Requirements</h2> </div></div></div><div id="wpforms-7646-field_7-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="7" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_7">Application Modernization Services <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_7" class="wpforms-field-required"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_7_1" name="wpforms[fields][7][]" value="Application Re-platform " required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_7_1">Application Re-platform </label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_7_2" name="wpforms[fields][7][]" value="Application Migration " required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_7_2">Application Migration </label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_7_3" name="wpforms[fields][7][]" value="Cloud Native Transformation" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_7_3">Cloud Native Transformation</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_7_4" name="wpforms[fields][7][]" value="Application Assessment" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_7_4">Application Assessment</label></li><li class="choice-5 depth-1"><input type="checkbox" id="wpforms-7646-field_7_5" name="wpforms[fields][7][]" value="Application Re-engineering" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_7_5">Application Re-engineering</label></li></ul></div><div id="wpforms-7646-field_28-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="28" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_28">Data Visualization Services <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_28" class="wpforms-field-required" data-choice-limit="1"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_28_1" data-rule-check-limit="true" name="wpforms[fields][28][]" value="Data Visualization Cloud Services" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_28_1">Data Visualization Cloud Services</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_28_2" data-rule-check-limit="true" name="wpforms[fields][28][]" value="Dashboard and User Experience Design" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_28_2">Dashboard and User Experience Design</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_28_3" data-rule-check-limit="true" name="wpforms[fields][28][]" value="Data Visualization Integration " required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_28_3">Data Visualization Integration </label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_28_4" data-rule-check-limit="true" name="wpforms[fields][28][]" value="Analytics and Reporting Solutions " required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_28_4">Analytics and Reporting Solutions </label></li></ul></div><div id="wpforms-7646-field_35-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="35" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_35">Data Visualization Tools <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_35" class="wpforms-field-required" data-choice-limit="1"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_35_1" data-rule-check-limit="true" name="wpforms[fields][35][]" value="Microsoft Power BI" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_35_1">Microsoft Power BI</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_35_2" data-rule-check-limit="true" name="wpforms[fields][35][]" value="Amazon QuickSight" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_35_2">Amazon QuickSight</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_35_3" data-rule-check-limit="true" name="wpforms[fields][35][]" value="Google Data Studio" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_35_3">Google Data Studio</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_35_4" data-rule-check-limit="true" name="wpforms[fields][35][]" value="Tableau" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_35_4">Tableau</label></li></ul></div><div id="wpforms-7646-field_29-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="29" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_29">Big Data Services <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_29" class="wpforms-field-required"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_29_1" name="wpforms[fields][29][]" value="Modern Data Integration " required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_29_1">Modern Data Integration </label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_29_2" name="wpforms[fields][29][]" value="Big Data Governance and Security" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_29_2">Big Data Governance and Security</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_29_3" name="wpforms[fields][29][]" value="Enterprise Data Strategy" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_29_3">Enterprise Data Strategy</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_29_4" name="wpforms[fields][29][]" value="Data Catalog" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_29_4">Data Catalog</label></li><li class="choice-5 depth-1"><input type="checkbox" id="wpforms-7646-field_29_5" name="wpforms[fields][29][]" value="Data Discovery " required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_29_5">Data Discovery </label></li></ul></div><div id="wpforms-7646-field_8-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="8" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_8">Data Ingestion Tools <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_8" class="wpforms-field-required"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_8_1" name="wpforms[fields][8][]" value="Amazon Kinesis" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_8_1">Amazon Kinesis</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_8_2" name="wpforms[fields][8][]" value="Apache Kafka" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_8_2">Apache Kafka</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_8_3" name="wpforms[fields][8][]" value="Google Pub/Sub" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_8_3">Google Pub/Sub</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_8_4" name="wpforms[fields][8][]" value="Apache Pulsar" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_8_4">Apache Pulsar</label></li></ul></div><div id="wpforms-7646-field_30-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="30" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_30">Data Processing Tools <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_30" class="wpforms-field-required"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_30_1" name="wpforms[fields][30][]" value="Apache Spark" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_30_1">Apache Spark</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_30_2" name="wpforms[fields][30][]" value="Apache Flink" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_30_2">Apache Flink</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_30_3" name="wpforms[fields][30][]" value="Apache Beam" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_30_3">Apache Beam</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_30_4" name="wpforms[fields][30][]" value="Amazon EMR" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_30_4">Amazon EMR</label></li><li class="choice-6 depth-1"><input type="checkbox" id="wpforms-7646-field_30_6" name="wpforms[fields][30][]" value="Google Cloud Dataproc" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_30_6">Google Cloud Dataproc</label></li></ul></div><div id="wpforms-7646-field_31-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="31" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_31">Cloud Services <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_31" class="wpforms-field-required"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_31_1" name="wpforms[fields][31][]" value="Cloud Governance and Security" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_31_1">Cloud Governance and Security</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_31_2" name="wpforms[fields][31][]" value="Cloud Native Microservices" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_31_2">Cloud Native Microservices</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_31_3" name="wpforms[fields][31][]" value="Cloud Infrastructure Automation" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_31_3">Cloud Infrastructure Automation</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_31_4" name="wpforms[fields][31][]" value="Managed Cloud Services" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_31_4">Managed Cloud Services</label></li><li class="choice-5 depth-1"><input type="checkbox" id="wpforms-7646-field_31_5" name="wpforms[fields][31][]" value="Cloud Data Migration" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_31_5">Cloud Data Migration</label></li></ul></div><div id="wpforms-7646-field_32-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="32" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_32">IT Infrastructure <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_32" class="wpforms-field-required"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_32_1" name="wpforms[fields][32][]" value="AWS" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_32_1">AWS</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_32_2" name="wpforms[fields][32][]" value="Google" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_32_2">Google</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_32_3" name="wpforms[fields][32][]" value="Azure" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_32_3">Azure</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_32_4" name="wpforms[fields][32][]" value="Private Cloud" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_32_4">Private Cloud</label></li><li class="choice-6 depth-1"><input type="checkbox" id="wpforms-7646-field_32_6" name="wpforms[fields][32][]" value="Data Center" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_32_6">Data Center</label></li></ul></div><div id="wpforms-7646-field_33-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="33" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_33">AI Services <span class="wpforms-required-label">*</span></label><ul id="wpforms-7646-field_33" class="wpforms-field-required"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-7646-field_33_1" name="wpforms[fields][33][]" value="Computer Vision Services" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_33_1">Computer Vision Services</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_33_2" name="wpforms[fields][33][]" value="Robotic Process Automation" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_33_2">Robotic Process Automation</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-7646-field_33_3" name="wpforms[fields][33][]" value="Enterprise Operational Analytics" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_33_3">Enterprise Operational Analytics</label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_33_4" name="wpforms[fields][33][]" value="AI Based Development" required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_33_4">AI Based Development</label></li><li class="choice-5 depth-1"><input type="checkbox" id="wpforms-7646-field_33_5" name="wpforms[fields][33][]" value="AI Strategy Consulting " required ><label class="wpforms-field-label-inline" for="wpforms-7646-field_33_5">AI Strategy Consulting </label></li></ul></div><div id="wpforms-7646-field_36-container" class="wpforms-field wpforms-field-checkbox col-12 col-sm-12 col-md-12 custom-checkbox form-group wpforms-list-2-columns wpforms-conditional-field wpforms-conditional-show" data-field-id="36" style="display:none;"><label class="wpforms-field-label" for="wpforms-7646-field_36">Robotic Process Automation Platform</label><ul id="wpforms-7646-field_36"><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-7646-field_36_2" name="wpforms[fields][36][]" value="Blue Prism " ><label class="wpforms-field-label-inline" for="wpforms-7646-field_36_2">Blue Prism </label></li><li class="choice-4 depth-1"><input type="checkbox" id="wpforms-7646-field_36_4" name="wpforms[fields][36][]" value="UiPath" ><label class="wpforms-field-label-inline" for="wpforms-7646-field_36_4">UiPath</label></li><li class="choice-5 depth-1"><input type="checkbox" id="wpforms-7646-field_36_5" name="wpforms[fields][36][]" value="Automation Anywhere" ><label class="wpforms-field-label-inline" for="wpforms-7646-field_36_5">Automation Anywhere</label></li></ul></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">Name</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="3"><input type="hidden" name="wpforms[post_id]" value="393"><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 -->
[wpforms id="1328"]
<div class="wpforms-container wpforms-container-full subscription-form optin-monster-forms" id="wpforms-1328"><form id="wpforms-form-1328" class="wpforms-validate wpforms-form" data-formid="1328" method="post" enctype="multipart/form-data" action="/blog/test-behaviour-driven-development/"><noscript class="wpforms-error-noscript">Please enable JavaScript in your browser to complete this form.</noscript><div class="wpforms-field-container"><div id="wpforms-1328-field_1-container" class="wpforms-field wpforms-field-email col-12 col-sm-12 col-md-12 form-group" data-field-id="1"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-1328-field_1">Email <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-1328-field_1" class="wpforms-field-large wpforms-field-required" name="wpforms[fields][1]" placeholder="Email address" required></div><div id="wpforms-1328-field_8-container" class="wpforms-field wpforms-field-hidden" data-field-id="8"><input type="hidden" id="wpforms-1328-field_8" name="wpforms[fields][8]" value="Subscribe"></div></div><div class="wpforms-field wpforms-field-hp"><label for="wpforms-1328-field-hp" class="wpforms-field-label">Name</label><input type="text" name="wpforms[hp]" id="wpforms-1328-field-hp" class="wpforms-field-medium"></div><input type="hidden" name="wpforms[recaptcha]" value=""><div class="wpforms-submit-container" ><input type="hidden" name="wpforms[id]" value="1328"><input type="hidden" name="wpforms[author]" value="3"><input type="hidden" name="wpforms[post_id]" value="393"><button type="submit" name="wpforms[submit]" class="wpforms-submit om-trigger-conversion btn" id="wpforms-submit-1328" value="wpforms-submit" aria-live="assertive" data-alt-text="Sending..." data-submit-text="Subscribe">Subscribe</button></div></form></div> <!-- .wpforms-container -->