The document discusses integrating behavior-driven development (BDD) with Cucumber and Citrus frameworks. It describes how Cucumber is used to define feature specifications in plain language and map them to Java step definitions. Citrus provides endpoints to simulate services and messaging for Cucumber integration tests. The talk includes a demo of a voting application tested with Cucumber features that use Citrus to interact with REST and JMS endpoints.
Finding the Right Testing Tool for the JobCiaranMcNulty
Over the last decade the idea that we should test our applications has slowly made its way from a niche idea to the mainstream of PHP development. With many tools and approaches to testing now available it can be difficult to choose which ones to use.
In this talk we will explore the current landscape of PHP testing practices, look at the different tools and approaches available, and find out how we can decide which are best for our project, team, and context.
Behavior driven integration with Cucumber & Citruschristophd
This document discusses using Cucumber and Citrus together for behavior driven integration testing. It provides examples of defining features and scenarios in Gherkin, implementing step definitions in Java, and using Citrus to test REST, messaging and other integrations. Citrus endpoints can be injected and configured, and Cucumber step definitions can use the Citrus DSL to define HTTP requests, JMS messages and more.
Testing Microservices with a Citrus twistchristophd
This document discusses Citrus, an open source integration test framework for automated interface testing of distributed systems. It focuses on testing message exchanges between services. The presentation provides an overview of Citrus capabilities such as ready-made endpoint components for REST, JMS, SOAP and others. It demonstrates how to write Citrus tests using actions like send, receive and validate messages. Integration with tools like Docker, Camel and Arquillian is also highlighted. The document concludes with information on learning more about Citrus.
Once upon a time, there was a poor, innocent language. It was friendly and kind. Everything could have been nice and peaceful, but there was another language that was grumpy and mean. One day they met and started to argue about who the better language was…. This session compares the Java language with TypeScript. It discusses how common problems are solved with these languages. At the end, you’ll see who is the beauty and who is the beast.
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB SchemasMongoDB
In this talk, Appboy co-founder and CIO Jon Hyman will discuss various schemas that Appboy has evolved to use on MongoDB, remaining agile as Appboy has grown to massive scale. Jon will discuss topics such as random sampling of documents, multivariate testing and multi-arm bandit optimization of such tests, field tokenization, and how Appboy stores multi-dimensional data on an individual user basis to be able to quickly optimize for the best time to deliver messages to end users. Appboy is the global leader in Marketing Automation for Apps, helping clients such as Urban Outfitters, Shutterfly, Kixeye, PicsArt, USA Today Sports, and iHeartRadio increase engagement through automated messaging. Each month, Appboy collects tens of billions of data points from hundreds of millions of monthly active users.
This document discusses the challenges of adding type checking to JavaScript code using Flow. It notes that adding types revealed errors in the code and documentation. It also discusses challenges like defining types for third party libraries, refactoring code without unintended consequences, handling null values, and getting organizational buy-in for the new requirements of using a type system. The document emphasizes that while challenging, adding types is worthwhile to improve the scalability and maintenance of the codebase.
The document discusses common mistakes made when benchmarking systems and provides examples. It notes that benchmarks should have a specific question in mind and clearly define the environment, load, and requirements being tested. Common errors discussed include failing to account for caches, warmup times, background noise, and using an unrealistic test environment. The document emphasizes the importance of collecting statistical metrics like percentiles and maximums, not just averages, to understand performance under different levels of load.
The document provides information about test-driven development (TDD) and behavior-driven development (BDD) using the Cucumber framework. It discusses the benefits of writing tests, different types of tests like unit and integration tests, and the TDD cycle of writing a failing test, making it pass, and refactoring code. Myths about TDD are debunked. Cucumber is introduced as a BDD framework that uses a simple language to define tests and bridge communication between stakeholders and developers. The Gherkin syntax and step definitions that power Cucumber tests are explained.
Finding the Right Testing Tool for the JobCiaranMcNulty
Over the last decade the idea that we should test our applications has slowly made its way from a niche idea to the mainstream of PHP development. With many tools and approaches to testing now available it can be difficult to choose which ones to use.
In this talk we will explore the current landscape of PHP testing practices, look at the different tools and approaches available, and find out how we can decide which are best for our project, team, and context.
Behavior driven integration with Cucumber & Citruschristophd
This document discusses using Cucumber and Citrus together for behavior driven integration testing. It provides examples of defining features and scenarios in Gherkin, implementing step definitions in Java, and using Citrus to test REST, messaging and other integrations. Citrus endpoints can be injected and configured, and Cucumber step definitions can use the Citrus DSL to define HTTP requests, JMS messages and more.
Testing Microservices with a Citrus twistchristophd
This document discusses Citrus, an open source integration test framework for automated interface testing of distributed systems. It focuses on testing message exchanges between services. The presentation provides an overview of Citrus capabilities such as ready-made endpoint components for REST, JMS, SOAP and others. It demonstrates how to write Citrus tests using actions like send, receive and validate messages. Integration with tools like Docker, Camel and Arquillian is also highlighted. The document concludes with information on learning more about Citrus.
Once upon a time, there was a poor, innocent language. It was friendly and kind. Everything could have been nice and peaceful, but there was another language that was grumpy and mean. One day they met and started to argue about who the better language was…. This session compares the Java language with TypeScript. It discusses how common problems are solved with these languages. At the end, you’ll see who is the beauty and who is the beast.
Remaining Agile with Billions of Documents: Appboy and Creative MongoDB SchemasMongoDB
In this talk, Appboy co-founder and CIO Jon Hyman will discuss various schemas that Appboy has evolved to use on MongoDB, remaining agile as Appboy has grown to massive scale. Jon will discuss topics such as random sampling of documents, multivariate testing and multi-arm bandit optimization of such tests, field tokenization, and how Appboy stores multi-dimensional data on an individual user basis to be able to quickly optimize for the best time to deliver messages to end users. Appboy is the global leader in Marketing Automation for Apps, helping clients such as Urban Outfitters, Shutterfly, Kixeye, PicsArt, USA Today Sports, and iHeartRadio increase engagement through automated messaging. Each month, Appboy collects tens of billions of data points from hundreds of millions of monthly active users.
This document discusses the challenges of adding type checking to JavaScript code using Flow. It notes that adding types revealed errors in the code and documentation. It also discusses challenges like defining types for third party libraries, refactoring code without unintended consequences, handling null values, and getting organizational buy-in for the new requirements of using a type system. The document emphasizes that while challenging, adding types is worthwhile to improve the scalability and maintenance of the codebase.
The document discusses common mistakes made when benchmarking systems and provides examples. It notes that benchmarks should have a specific question in mind and clearly define the environment, load, and requirements being tested. Common errors discussed include failing to account for caches, warmup times, background noise, and using an unrealistic test environment. The document emphasizes the importance of collecting statistical metrics like percentiles and maximums, not just averages, to understand performance under different levels of load.
The document provides information about test-driven development (TDD) and behavior-driven development (BDD) using the Cucumber framework. It discusses the benefits of writing tests, different types of tests like unit and integration tests, and the TDD cycle of writing a failing test, making it pass, and refactoring code. Myths about TDD are debunked. Cucumber is introduced as a BDD framework that uses a simple language to define tests and bridge communication between stakeholders and developers. The Gherkin syntax and step definitions that power Cucumber tests are explained.
How I Learned to Stop Worrying and Love jQuery (Jan 2013)David Giard
The document discusses how jQuery can be used to simplify JavaScript programming. It introduces jQuery, explaining that it provides cross-browser compatibility and built-in functions to make JavaScript coding easier. It also discusses how jQuery is widely used on popular websites and how to include jQuery in a web page.
Jeff Lindsay: Building Public Infrastructure with Autosustainable Servicesit-people
This document summarizes Jeff Lindsay's talk about creating autosustainable services. The talk discusses using public cloud platforms and following DevOps practices to minimize operations costs. It also proposes funding services through ongoing, automated donations based on real-time costs, showing users how long donations will keep the service running. The goal is to reduce economic barriers to building small, composable web services.
Real-Time Web Apps & .NET. What Are Your Options? NDC Oslo 2016Phil Leggetter
Real-time is becoming the life blood of applications. Facebook, Twitter, Uber, Google Docs and many more apps have increased user expectation to demand real-time features. Features such as Notifications, activity streams, real-time data visualisations, chat or collaborative experiences instantly keep users up to date and enable them to work much more effectively. So, how do you build these sorts of features with .NET?
This talk will cover the benefits of moving away from polling to push, the options you have with .NET web application to do this and when adding real-time features to your apps, and the pros and cons of each to help choose which is the best solution for you.
You Put *What* in Your Stream?! Patterns and Practices for Event Design with ...HostedbyConfluent
Events are the fundamental component of every streaming architecture, and how you implement them will hugely impact your event-driven architectures. Despite the wide range of materials on event-driven architectures and the importance of event modeling, this critical domain is often left as an exercise for you to implement on your own. Improperly modeling your events can have difficult and costly impacts on not only your event consumers but on the teams and systems that produce them as well.
In this talk, Adam covers the main considerations of modeling and implementing events. Data is often modeled as a Fact or a Delta, though the distinction isn't always clear.
For one, facts are commonly used in the event-carried state transfer pattern, while deltas are commonly used in event sourcing. But when communicating across domain boundaries, which ones should you choose? What are the tradeoffs, the benefits, and the best use-cases for each? Adam digs into these main event types, providing some examples and guidelines for when to use each.
Adam closes out the presentation with an opinionated list of best practices. Do you think naming is tricky? What about versioning? Evolving your data model got you down? Torn between multiple event types per stream and multiple streams per event? Adam's has a host of best practices, well-reasoned examples, and practical tips to help you model and implement your events and streams.
But what is the real-time data analytics stack? Kafka is the de facto standard for getting data-in-motion but what do we add in order to extract insights in real-time?
The modern developer has many options to choose from: there’s stream processing frameworks/engines such as Kafka Streams or Apache Flink, real-time OLAP databases such as Apache Druid or Apache Pinot, streaming databases such as Materialize and ksqlDB, time series databases such as TimescaleDB or InfluxDB and even your regular OLTP database such as PostgreSQL or MySQL.
What should you choose and why?
This talk will explore the real-time analytics technology space from the perspective of the software developer that wants real-time insights in their software. We’ll cover the main categories, how these technologies work and their strengths and weaknesses.
I want developers to come away from this talk empowered to add real-time insights to their software, using the right tool for their needs.
Django Introduction Osscamp Delhi September 08 09 2007 Mir NazimMir Nazim
Django is a high-level Python web framework that abstracts away common problems of web development. It provides shortcuts for building dynamic websites and includes features like URL mapping, templates, forms handling, database access, and more. The document provides an overview of Django and walks through building a sample polls application to demonstrate key aspects like models, views, templates, and the admin interface.
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...Docker, Inc.
What is the right balance between moving fast, innovating, experimenting with new technology, and protecting the personal data of our customers and interests of our stakeholders? How can we safely try new ideas in production without risking costly downtime? Does the utopia where developers are free from lock-in and operators enjoy the calm of a steadily running system exist in the real world? Is it possible to have open platforms with better security? At Kroger Digital we are still working through these questions every day but are redesigning our systems with the goals of true operational maturity and security. Discover how we are building capabilities for monitoring, A/B testing, and continuous delivery with Docker Datacenter, plugins, and open source building blocks such as NGiNX, ElasticSearch, and more.
Continuous Integration and Code Coverage in XcodeHiep Luong
Xcode 7 includes new code coverage features to help you design a powerful test harness for your app. Learn all about coverage along with integration and improvements with Xcode Server.
https://developer.apple.com/videos/play/wwdc2015/410/
API first with Swagger and Scala by Slava SchmidtJavaDayUA
How does one scale the development of a service landscape in a corporate enterprise environment utilizing Typesafe's Play and Akka software stack? How does one achieve API uniformity and coherence accross dozens of development teams, getting them and their subsequently developed subsystems to play together nicely? At Zalando we believe firmly in an API first approach, founded an API guild that ratifies and supports the development of APIs, and define them in a formal manner employing the Swagger API representation language.
This document discusses test-driven development with JavaFX. It covers testing JavaFX applications at the unit, integration, and system levels. It also discusses continuous integration/continuous delivery and different tools that can be used for testing JavaFX applications, including TestFX, MarvinFX, JemmyFX, and Automaton. TestFX is highlighted as the recommended tool, with details provided on how to interact with JavaFX applications using its fluent API. The document also discusses using the view object pattern to write more readable tests and testing JavaFX applications that use DataFX or Afterburner.fx frameworks. It provides an example of using CDI to inject mocks when testing.
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...GeeksLab Odessa
5.12.15 QA Lab: тестирование программного обеспечения.
Upcoming events: goo.gl/I2gJ4H
Доклад о Play-Swagger, проекте с открытым исходным кодом, разрабатываемом в Zalando с использованием Scala и Play Framework. О том, как использование API First и Swagger позволяет ускорить процесс разработки, упростить взаимодействие команд и повысить качество продукта.
The document summarizes a design systems meetup focused on conducting a UI audit workshop. It provides guidance on conducting different types of audits, including product, technology, tools, processes, and UI audits. For the UI audit, it discusses analyzing colors, typography, and creating a UI inventory to identify common patterns and components. It emphasizes starting with the most used elements, iterating based on insights, and sharing audit findings to help establish a design system.
BDD framework is more popular in terms of creating a user friendly framework. It helps to understand the scenarios without any prior technical knowledge. this pdf will help to make you understand the fundamentals of BDD/cucumber framework.
Rubyconf2016 - Solving communication problems in distributed teams with BDDRodrigo Urubatan
This was my talk in Rubyconf Brazil 2016, it summarises some of my experience using BDD to improve team interaction and communication in local and distributed teams, what are the differences, what benefits I found and how I used it.
I mainly focus in BDD as a communication tool, the automated tests are only a very good side effect, but I've already used it without test automation too.
DevLabs Alliance top 20 Cucumber Interview Questions for SDETDevLabs Alliance
DevLabs Alliance Cucumber Interview Questions for SDET will help SDETs to prepare for their interviews. Learn top 20 questions with their answers for Cucumber which are majorly asked in interview for SDET role.
DevLabs Alliance top 20 Cucumber Interview Questions for SDETDevLabs Alliance
DevLabs Alliance Cucumber Interview Questions for SDET will help SDETs to prepare for their interviews. Learn top 20 questions with their answers for Cucumber which are majorly asked in interview for SDET role.
How I Learned to Stop Worrying and Love jQuery (Jan 2013)David Giard
The document discusses how jQuery can be used to simplify JavaScript programming. It introduces jQuery, explaining that it provides cross-browser compatibility and built-in functions to make JavaScript coding easier. It also discusses how jQuery is widely used on popular websites and how to include jQuery in a web page.
Jeff Lindsay: Building Public Infrastructure with Autosustainable Servicesit-people
This document summarizes Jeff Lindsay's talk about creating autosustainable services. The talk discusses using public cloud platforms and following DevOps practices to minimize operations costs. It also proposes funding services through ongoing, automated donations based on real-time costs, showing users how long donations will keep the service running. The goal is to reduce economic barriers to building small, composable web services.
Real-Time Web Apps & .NET. What Are Your Options? NDC Oslo 2016Phil Leggetter
Real-time is becoming the life blood of applications. Facebook, Twitter, Uber, Google Docs and many more apps have increased user expectation to demand real-time features. Features such as Notifications, activity streams, real-time data visualisations, chat or collaborative experiences instantly keep users up to date and enable them to work much more effectively. So, how do you build these sorts of features with .NET?
This talk will cover the benefits of moving away from polling to push, the options you have with .NET web application to do this and when adding real-time features to your apps, and the pros and cons of each to help choose which is the best solution for you.
You Put *What* in Your Stream?! Patterns and Practices for Event Design with ...HostedbyConfluent
Events are the fundamental component of every streaming architecture, and how you implement them will hugely impact your event-driven architectures. Despite the wide range of materials on event-driven architectures and the importance of event modeling, this critical domain is often left as an exercise for you to implement on your own. Improperly modeling your events can have difficult and costly impacts on not only your event consumers but on the teams and systems that produce them as well.
In this talk, Adam covers the main considerations of modeling and implementing events. Data is often modeled as a Fact or a Delta, though the distinction isn't always clear.
For one, facts are commonly used in the event-carried state transfer pattern, while deltas are commonly used in event sourcing. But when communicating across domain boundaries, which ones should you choose? What are the tradeoffs, the benefits, and the best use-cases for each? Adam digs into these main event types, providing some examples and guidelines for when to use each.
Adam closes out the presentation with an opinionated list of best practices. Do you think naming is tricky? What about versioning? Evolving your data model got you down? Torn between multiple event types per stream and multiple streams per event? Adam's has a host of best practices, well-reasoned examples, and practical tips to help you model and implement your events and streams.
But what is the real-time data analytics stack? Kafka is the de facto standard for getting data-in-motion but what do we add in order to extract insights in real-time?
The modern developer has many options to choose from: there’s stream processing frameworks/engines such as Kafka Streams or Apache Flink, real-time OLAP databases such as Apache Druid or Apache Pinot, streaming databases such as Materialize and ksqlDB, time series databases such as TimescaleDB or InfluxDB and even your regular OLTP database such as PostgreSQL or MySQL.
What should you choose and why?
This talk will explore the real-time analytics technology space from the perspective of the software developer that wants real-time insights in their software. We’ll cover the main categories, how these technologies work and their strengths and weaknesses.
I want developers to come away from this talk empowered to add real-time insights to their software, using the right tool for their needs.
Django Introduction Osscamp Delhi September 08 09 2007 Mir NazimMir Nazim
Django is a high-level Python web framework that abstracts away common problems of web development. It provides shortcuts for building dynamic websites and includes features like URL mapping, templates, forms handling, database access, and more. The document provides an overview of Django and walks through building a sample polls application to demonstrate key aspects like models, views, templates, and the admin interface.
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...Docker, Inc.
What is the right balance between moving fast, innovating, experimenting with new technology, and protecting the personal data of our customers and interests of our stakeholders? How can we safely try new ideas in production without risking costly downtime? Does the utopia where developers are free from lock-in and operators enjoy the calm of a steadily running system exist in the real world? Is it possible to have open platforms with better security? At Kroger Digital we are still working through these questions every day but are redesigning our systems with the goals of true operational maturity and security. Discover how we are building capabilities for monitoring, A/B testing, and continuous delivery with Docker Datacenter, plugins, and open source building blocks such as NGiNX, ElasticSearch, and more.
Continuous Integration and Code Coverage in XcodeHiep Luong
Xcode 7 includes new code coverage features to help you design a powerful test harness for your app. Learn all about coverage along with integration and improvements with Xcode Server.
https://developer.apple.com/videos/play/wwdc2015/410/
API first with Swagger and Scala by Slava SchmidtJavaDayUA
How does one scale the development of a service landscape in a corporate enterprise environment utilizing Typesafe's Play and Akka software stack? How does one achieve API uniformity and coherence accross dozens of development teams, getting them and their subsequently developed subsystems to play together nicely? At Zalando we believe firmly in an API first approach, founded an API guild that ratifies and supports the development of APIs, and define them in a formal manner employing the Swagger API representation language.
This document discusses test-driven development with JavaFX. It covers testing JavaFX applications at the unit, integration, and system levels. It also discusses continuous integration/continuous delivery and different tools that can be used for testing JavaFX applications, including TestFX, MarvinFX, JemmyFX, and Automaton. TestFX is highlighted as the recommended tool, with details provided on how to interact with JavaFX applications using its fluent API. The document also discusses using the view object pattern to write more readable tests and testing JavaFX applications that use DataFX or Afterburner.fx frameworks. It provides an example of using CDI to inject mocks when testing.
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...GeeksLab Odessa
5.12.15 QA Lab: тестирование программного обеспечения.
Upcoming events: goo.gl/I2gJ4H
Доклад о Play-Swagger, проекте с открытым исходным кодом, разрабатываемом в Zalando с использованием Scala и Play Framework. О том, как использование API First и Swagger позволяет ускорить процесс разработки, упростить взаимодействие команд и повысить качество продукта.
The document summarizes a design systems meetup focused on conducting a UI audit workshop. It provides guidance on conducting different types of audits, including product, technology, tools, processes, and UI audits. For the UI audit, it discusses analyzing colors, typography, and creating a UI inventory to identify common patterns and components. It emphasizes starting with the most used elements, iterating based on insights, and sharing audit findings to help establish a design system.
BDD framework is more popular in terms of creating a user friendly framework. It helps to understand the scenarios without any prior technical knowledge. this pdf will help to make you understand the fundamentals of BDD/cucumber framework.
Rubyconf2016 - Solving communication problems in distributed teams with BDDRodrigo Urubatan
This was my talk in Rubyconf Brazil 2016, it summarises some of my experience using BDD to improve team interaction and communication in local and distributed teams, what are the differences, what benefits I found and how I used it.
I mainly focus in BDD as a communication tool, the automated tests are only a very good side effect, but I've already used it without test automation too.
DevLabs Alliance top 20 Cucumber Interview Questions for SDETDevLabs Alliance
DevLabs Alliance Cucumber Interview Questions for SDET will help SDETs to prepare for their interviews. Learn top 20 questions with their answers for Cucumber which are majorly asked in interview for SDET role.
DevLabs Alliance top 20 Cucumber Interview Questions for SDETDevLabs Alliance
DevLabs Alliance Cucumber Interview Questions for SDET will help SDETs to prepare for their interviews. Learn top 20 questions with their answers for Cucumber which are majorly asked in interview for SDET role.
Similar to Behavior driven integration with Cucumber & Citrus (20)
This presentation by OECD, OECD Secretariat, was made during the discussion “Pro-competitive Industrial Policy” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/pcip.
This presentation was uploaded with the author’s consent.
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...SkillCertProExams
• For a full set of 760+ questions. Go to
https://skillcertpro.com/product/databricks-certified-data-engineer-associate-exam-questions/
• SkillCertPro offers detailed explanations to each question which helps to understand the concepts better.
• It is recommended to score above 85% in SkillCertPro exams before attempting a real exam.
• SkillCertPro updates exam questions every 2 weeks.
• You will get life time access and life time free updates
• SkillCertPro assures 100% pass guarantee in first attempt.
Carrer goals.pptx and their importance in real lifeartemacademy2
Career goals serve as a roadmap for individuals, guiding them toward achieving long-term professional aspirations and personal fulfillment. Establishing clear career goals enables professionals to focus their efforts on developing specific skills, gaining relevant experience, and making strategic decisions that align with their desired career trajectory. By setting both short-term and long-term objectives, individuals can systematically track their progress, make necessary adjustments, and stay motivated. Short-term goals often include acquiring new qualifications, mastering particular competencies, or securing a specific role, while long-term goals might encompass reaching executive positions, becoming industry experts, or launching entrepreneurial ventures.
Moreover, having well-defined career goals fosters a sense of purpose and direction, enhancing job satisfaction and overall productivity. It encourages continuous learning and adaptation, as professionals remain attuned to industry trends and evolving job market demands. Career goals also facilitate better time management and resource allocation, as individuals prioritize tasks and opportunities that advance their professional growth. In addition, articulating career goals can aid in networking and mentorship, as it allows individuals to communicate their aspirations clearly to potential mentors, colleagues, and employers, thereby opening doors to valuable guidance and support. Ultimately, career goals are integral to personal and professional development, driving individuals toward sustained success and fulfillment in their chosen fields.
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsRosie Wells
Insight: In a landscape where traditional narrative structures are giving way to fragmented and non-linear forms of storytelling, there lies immense potential for creativity and exploration.
'Collapsing Narratives: Exploring Non-Linearity' is a micro report from Rosie Wells.
Rosie Wells is an Arts & Cultural Strategist uniquely positioned at the intersection of grassroots and mainstream storytelling.
Their work is focused on developing meaningful and lasting connections that can drive social change.
Please download this presentation to enjoy the hyperlinks!
This presentation by Juraj Čorba, Chair of OECD Working Party on Artificial Intelligence Governance (AIGO), was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by Professor Alex Robson, Deputy Chair of Australia’s Productivity Commission, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij
This is a workshop about communication and collaboration. We will experience how we can analyze the reasons for resistance to change (exercise 1) and practice how to improve our conversation style and be more in control and effective in the way we communicate (exercise 2).
This session will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
Abstract:
Let’s talk about powerful conversations! We all know how to lead a constructive conversation, right? Then why is it so difficult to have those conversations with people at work, especially those in powerful positions that show resistance to change?
Learning to control and direct conversations takes understanding and practice.
We can combine our innate empathy with our analytical skills to gain a deeper understanding of complex situations at work. Join this session to learn how to prepare for difficult conversations and how to improve our agile conversations in order to be more influential without power. We will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
In the session you will experience how preparing and reflecting on your conversation can help you be more influential at work. You will learn how to communicate more effectively with the people needed to achieve positive change. You will leave with a self-revised version of a difficult conversation and a practical model to use when you get back to work.
Come learn more on how to become a real influencer!
This presentation by OECD, OECD Secretariat, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
This presentation by Nathaniel Lane, Associate Professor in Economics at Oxford University, was made during the discussion “Pro-competitive Industrial Policy” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/pcip.
This presentation was uploaded with the author’s consent.
This presentation by Thibault Schrepel, Associate Professor of Law at Vrije Universiteit Amsterdam University, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
10. @cucumberbdd#Devoxx @citrus_test
Feature: Create voting
As a user I want to create new votings. Each voting is given default vote
options.
Scenario: Default voting options
Given voting title "Do you like Devoxx?"
When I create new voting
Then voting should have 2 options
And voting should have option "yes"
And voting should have option "no"
And voting title should be "Do you like Devoxx?“
Feature specification
11. @cucumberbdd#Devoxx @citrus_test
Feature: Create voting
As a user I want to create new votings. Each voting is given default vote
options. The user should be able to set custom vote options.
Scenario: Default voting options
Given voting title "Do you like Devoxx?"
When I create new voting
Then voting should have 2 options
And voting should have option "yes"
And voting should have option "no"
And voting title should be "Do you like Devoxx?"
Scenario: Custom voting options
When I create new voting "What type of Devoxx ticket do you have?"
And voting options are "University:Conference:Combi"
Then voting title should be "What type of Devoxx ticket do you have?"
And voting should have options
| University |
| Conference |
| Combi |
Feature specification
13. @cucumberbdd#Devoxx @citrus_test
@RunWith(Cucumber.class)
public class VotingFeatureTest {
}
JUnit Cucumber test
voting-close.feature
voting-create.feature
voting-results.feature
public class VotingSteps {
@Given("^New default voting$")
public void defaultVoting() { ... }
@When("^I create new voting "(.+)"$")
public void createVotingWithTitle(String title) { ... }
@Then("^voting should have (d+) options$")
public void votingShouldHaveOptions(int optionCount) { ... }
}
14. @cucumberbdd#Devoxx @citrus_test
@When("^I create new voting "(.+)"$")
public void createVotingWithTitle(String title) {
votingId = UUID.randomUUID();
Voting voting = new Voting(votingId, title);
votingService.add(voting);
}
Step definitions
@Then("^voting should have (d+) options$")
public void votingShouldHaveOptions(int optionCount) {
Assert.assertEquals(optionCount,
votingService.get(votingId).getOptions().size());
}
When I create new voting "What type of Devoxx ticket do you have?“
Then voting should have 3 options
15. @cucumberbdd#Devoxx @citrus_test
@Then("^(?:the )?voting should have options$")
public void votingShouldHaveOptions(DataTable dataTable) {
List<String> options = dataTable.asList(String.class);
votingShouldHaveOptions(options.size());
for(String option : options) {
votingShouldHaveOption(option);
}
}
Data tables
Then voting should have options
| University |
| Conference |
| Combi |
17. @cucumberbdd#Devoxx @citrus_test
Feature: Show voting results
As a user I want to vote for an option. All voting results are stored
and the user should be able to get top vote option for each voting.
Background:
Given I create new voting "Do you like Devoxx?"
And voting options are "yes:no"
Scenario: Initial vote results
Then votes of option "yes" should be 0
And votes of option "no" should be 0
Scenario: Get vote results
When I vote for "yes"
Then votes of option "yes" should be 1
And votes of option "no" should be 0
And top vote should be "yes"
Background
18. @cucumberbdd#Devoxx @citrus_test
Feature: Show voting results
As a user I want to vote for an option. All voting results are stored
and the user should be able to get top vote option for each voting.
Scenario Outline: Get vote results
Given I create new voting "<title>"
And voting options are "yes:no"
When I vote for "yes" <yes_votes> times
And I vote for "no" <no_votes> times
Then votes of option "yes" should be <yes_votes>
And votes of option "no" should be <no_votes>
And top vote should be "<top_vote>"
Examples:
| title | yes_votes | no_votes | top_vote |
| Did you enjoy the salad? | 12 | 5 | yes |
| Did you enjoy the crab sandwich? | 1 | 25 | no |
Scenario Outline
24. @cucumberbdd#Devoxx @citrus_test
Feature: Voting Http REST API
Background:
Given Voting list is empty
And New voting "Do you like Belgian beer?"
And voting options are "yes:no"
Scenario: Top vote
When client creates the voting
And client votes for "no"
Then votes should be
| yes | 0 |
| no | 1 |
And top vote should be "no"
Scenario: Close voting
Given reporting is enabled
When client creates the voting
And client votes for "yes" 3 times
And client votes for "no" 2 times
And client closes the voting
Then participants should receive reporting mail
"""
Dear participants,
the voting '${title}' came to an end.
The top answer is 'yes'!
Have a nice day!
Your Voting-App Team
"""
Messaging feature
25. @cucumberbdd#Devoxx @citrus_test
public class VotingRestSteps {
@CitrusEndpoint
private HttpClient votingClient;
@CitrusEndpoint
private MailServer mailServer;
@CitrusResource
private TestRunner runner;
@Given("^Voting list is empty$")
public void clear() {
runner.http(action -> action.client(votingClient)
.send()
.delete("/voting"));
runner.http(action -> action.client(votingClient)
.receive()
.response(HttpStatus.OK));
}
}
Endpoint Injection
26. @cucumberbdd#Devoxx @citrus_test
@Configuration
public class CitrusEndpointConfig {
@Bean
public HttpClient votingClient() {
return CitrusEndpoints.http()
.client()
.requestUrl("http://localhost:8080/rest/services")
.build();
}
@Bean
public MailServer mailServer() {
return CitrusEndpoints.mail()
.server()
.port(2222)
.autoStart(true)
.autoAccept(true)
.build();
}
}
Endpoint Configuration
27. @cucumberbdd#Devoxx @citrus_test
Citrus endpoints
Component Description
citrus-http Http REST client and server
citrus-jms JMS queue or topic destination
citrus-ws SOAP client and server
citrus-mail SMTP mail client and server
citrus-docker Docker container management
citrus-camel Apache Camel endpoint
citrus-selenium Selenium browser endpoint
citrus-vertx Vert.x endpoint
citrus-kubernetes Kubernetes client
…