A common perception of behavior-driven development (BDD) focuses on test automation with Cucumber-style “Given..When..Then” scenarios. But this is just the tip of the iceberg: in fact BDD ranges from requirements discovery and description through to driving technical design and implementation; helping testers focus their testing efforts more effectively; and even providing reliable, useful, and accurate technical documentation.
This session discusses what BDD is about, its benefits, and how it affects development teams and processes. You will see how JVM teams can effectively implement BDD with tools such as JBehave, Cucumber, Thucydides, and Spock. Come learn how much more there is to BDD than just “Given..When..Then.”
A common perception of behavior-driven development (BDD) focuses on test automation with Cucumber-style “Given..When..Then” scenarios. But this is just the tip of the iceberg: in fact BDD ranges from requirements discovery and description through to driving technical design and implementation; helping testers focus their testing efforts more effectively; and even providing reliable, useful, and accurate technical documentation.
This session discusses what BDD is about, its benefits, and how it affects development teams and processes. You will see how JVM teams can effectively implement BDD with tools such as JBehave, Cucumber, Thucydides, and Spock. Come learn how much more there is to BDD than just “Given..When..Then.”
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
German Testing Day 2015 - How behavior-driven development fuses developers an...Bastian Seehaus
What was our motivation at Deutsche Post Adress to use Behaviour Driven Development (BDD), how did we implement it and what benefits did we discover afterwards.
The prelude with the motivation was done in Prezi: https://prezi.com/yon4j9tec8bd/deutschepostadress_and_s-labgermantestingday-part1/
Most API testing is a joke. We have things that resemble Unit Tests which are really integration tests which really just wrap our personal understanding in just a bit of code. And at the end of the day, we're still not sure it works. Instead, let's flip the entire experience around and look at it from the API consumer's point of view and confirm that we're solving real problems for real users. In this talk, we'll dive into some of the benefits of Behavior Driven Development and build some examples.
In this session we will cover as much as possible the following topics:
- Quick intro to TDD (Test-Driven Development) and BDD (Behavior-Driven Development)
- Gherkin
- Behat
- Mink
- Drupal extension with Drush integration
- Acceptance criteria
- Demonstrations and show cases
Bridging the gap between business and technology - Behaviour Driven Developme...marcin_pajdzik
A talk about how software development could be managed by both business interests and technical insights. It presents the best practices and software tools to support the development process in Drupal. Explains why and when a business may want to consider using Behaviour Driven Development and shows the advantages of using BDD from the perspective of both business stakeholders and developers.
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Synerzip
Behavior Driven Development (BDD) began as a means of helping developers practice Test Driven Development (TDD).
In this it was successful, but it quickly proved its value in many other ways. In this presentation, Larry Apke quotes heavily from the work of Uncle Bob Martin to make the case for TDD and then explains how developers can use BDD to take advantage of this excellent software development practice.
Larry also talks about his “Ten Reasons BDD Changes Everything” along with some easy ways to begin implementation of BDD in your software development organization immediately and what the corresponding future steps would be to take full advantage of this technique.
Behavior-Driven-Development (BDD) for Conversational ApplicationsFlorian Georg
My talk at Swiss Testing Day 2019: Use BDD, Cucumber and IBM Watson Assistant to build, specify and test conversational applications (like Chatbots). Case study with the UBS Innovation Lab, IBM and FaceMe on Virtual Avatars.
TDD & BDD in F# at Progressive F# Tutorials 2011Phillip Trelford
In this practical session we’ll start by implementing fluent unit tests in F# using FsUnit and NUnit. We’ll then break into teams and develop scenarios in English language to solve a real world scenario and then automate them with the TickSpec library.
Video: http://skillsmatter.com/podcast/scala/tdd-and-bdd
Tasks: http://trelford.com/progfsharp.zip
Prashant technical practices-tdd for xebia eventXebia India
Theme: Agile Technical Practices
Epic: TDD implementation
Stories:
Context of TDD
What is TDD
Response of Developers to TDD implementation
Practices complimenting TDD
Success with TDD
Greenfield projects are awesome – you can develop highest quality application using best practices on the market. But what if your bread actually is Legacy projects? Does it mean that you need to descend into darkness of QA absence? This talk will show you how to be successful even with the oldest legacy projects out there through the introduction of Agile processes and tools like Behat.
Why BaaS is crucial to early stage startupsJane Chung
Developing a mobile app can be time-consuming and frustrating -- writing server-side code, handling and scaling servers, designing APIs, all the while designing exceptional user experience. This presentation deck will help you understand the basics of serverless app development, and how it’ll save you and your team time and reduce development overhead.
Check out our open source serverless framework Skygear.io
Questions? Ask us anything at hello@skygear.io
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
When All Teammates Speak The Same Language
Two main problems in software development
It's all about brains
What is BDD?
BDD vs TDD vs ATDD
Three Amigos
Gherkin
Cucumber and Selenium WebDriver
How to use feature files and create steps definitions
Examples
German Testing Day 2015 - How behavior-driven development fuses developers an...Bastian Seehaus
What was our motivation at Deutsche Post Adress to use Behaviour Driven Development (BDD), how did we implement it and what benefits did we discover afterwards.
The prelude with the motivation was done in Prezi: https://prezi.com/yon4j9tec8bd/deutschepostadress_and_s-labgermantestingday-part1/
Most API testing is a joke. We have things that resemble Unit Tests which are really integration tests which really just wrap our personal understanding in just a bit of code. And at the end of the day, we're still not sure it works. Instead, let's flip the entire experience around and look at it from the API consumer's point of view and confirm that we're solving real problems for real users. In this talk, we'll dive into some of the benefits of Behavior Driven Development and build some examples.
In this session we will cover as much as possible the following topics:
- Quick intro to TDD (Test-Driven Development) and BDD (Behavior-Driven Development)
- Gherkin
- Behat
- Mink
- Drupal extension with Drush integration
- Acceptance criteria
- Demonstrations and show cases
Bridging the gap between business and technology - Behaviour Driven Developme...marcin_pajdzik
A talk about how software development could be managed by both business interests and technical insights. It presents the best practices and software tools to support the development process in Drupal. Explains why and when a business may want to consider using Behaviour Driven Development and shows the advantages of using BDD from the perspective of both business stakeholders and developers.
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Synerzip
Behavior Driven Development (BDD) began as a means of helping developers practice Test Driven Development (TDD).
In this it was successful, but it quickly proved its value in many other ways. In this presentation, Larry Apke quotes heavily from the work of Uncle Bob Martin to make the case for TDD and then explains how developers can use BDD to take advantage of this excellent software development practice.
Larry also talks about his “Ten Reasons BDD Changes Everything” along with some easy ways to begin implementation of BDD in your software development organization immediately and what the corresponding future steps would be to take full advantage of this technique.
Behavior-Driven-Development (BDD) for Conversational ApplicationsFlorian Georg
My talk at Swiss Testing Day 2019: Use BDD, Cucumber and IBM Watson Assistant to build, specify and test conversational applications (like Chatbots). Case study with the UBS Innovation Lab, IBM and FaceMe on Virtual Avatars.
TDD & BDD in F# at Progressive F# Tutorials 2011Phillip Trelford
In this practical session we’ll start by implementing fluent unit tests in F# using FsUnit and NUnit. We’ll then break into teams and develop scenarios in English language to solve a real world scenario and then automate them with the TickSpec library.
Video: http://skillsmatter.com/podcast/scala/tdd-and-bdd
Tasks: http://trelford.com/progfsharp.zip
Prashant technical practices-tdd for xebia eventXebia India
Theme: Agile Technical Practices
Epic: TDD implementation
Stories:
Context of TDD
What is TDD
Response of Developers to TDD implementation
Practices complimenting TDD
Success with TDD
Greenfield projects are awesome – you can develop highest quality application using best practices on the market. But what if your bread actually is Legacy projects? Does it mean that you need to descend into darkness of QA absence? This talk will show you how to be successful even with the oldest legacy projects out there through the introduction of Agile processes and tools like Behat.
Why BaaS is crucial to early stage startupsJane Chung
Developing a mobile app can be time-consuming and frustrating -- writing server-side code, handling and scaling servers, designing APIs, all the while designing exceptional user experience. This presentation deck will help you understand the basics of serverless app development, and how it’ll save you and your team time and reduce development overhead.
Check out our open source serverless framework Skygear.io
Questions? Ask us anything at hello@skygear.io
Similar to Behavior Driven Development: An Overview (20)
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
2. About Litle & Co.
• Litle & Co. is a leading financial technology company
• One of the largest, private, non-bank proprietary
processing platforms serving the Card-not-Present
marketplace
• Specific expertise in Card-not-Present transactions,
deep knowledge of Best Practices, Card Association
Regulations, PCI and Data Security requirements
• Litle Vault is the 2011 Stevie Award Winner in New
Product & Services (Web/IVR) category
3. Outline
• What is BDD?
• History
• Why not TDD?
• The Story
• Tools: Compare and Contrast
• Comments and Questions
4. What is BDD?
BDD can turn an idea for a requirement into
implemented, tested, production-ready code simply
and effectively, as long as the requirement is specific
enough that everyone knows what’s going on.
-Dan North
5. What is BDD?
BDD can turn an idea for a requirement into
implemented, tested, production-ready code simply
and effectively, as long as the requirement is specific
enough that everyone knows what’s going on.
-Dan North
6. What is BDD?
BDD can turn an idea for a requirement into
implemented, tested, production-ready code simply
and effectively, as long as the requirement is specific
enough that everyone knows what’s going on.
-Dan North
7. What is BDD?
BDD can turn an idea for a requirement into
implemented, tested, production-ready code simply
and effectively, as long as the requirement is specific
enough that everyone knows what’s going on.
-Dan North
8. History
1999
Test First
Development
2003
Behavior Driven
Development
9. History
1999
Test First
Development
2003
Behavior Driven
Development
Kent Beck
20. BDD: The Story
• A way to describe the requirement such that everyone
the business folks,
the analyst,
the developer,
the tester,
and others
has a common understanding of the scope of the work.
• A description of a requirement and its business benefit, and a set of
criteria by which we all agree that it is “done”.
• Remember: Given… When… Then…
21. BDD: The Story
• The title should describe an activity
Describes actual behavior by a user of the system.
• The narrative should include a role, a feature and a benefit
“As a [role] I want [feature] so that [benefit]“
• The scenario should be described in terms of givens, events
and outcomes
Given… When… Then…
22. BDD: The Story
Title
Easier user experience with online site
Narrative
As a(n) active, participating member of my company
I want a better online website
So that users can easily use and purchase on our website
Scenario 1: Smooth Checkout Process Scenario 2: Better Site Uptime
Given our world class web sales app Given that a potential buyer
And items in my shopping cart When a user enters our URL into a browser
When a user clicks “checkout” Then the site will be available over 99.97%
Then the user will move through checkout of the time
with a maximum of two page clicks
And maintain an https session with our site
24. Motivating Example
FizzBuzz
• Simple program that outputs a number and expects
the player to guess which word applies:
– Divisible by 3: “Fizz”
– Divisible by 5: “Buzz”
– Divisible by 3 and 5: “FizzBuzz”
26. How to write a BDD test in jbehave
• Write the story in a file with a <story_name>.story
name
• Create the implementation in Java in a class named
<StoryName>Steps.java
• Create an Runner, extending JUnitStory to link the
story to the implementation
• Runner also can specify other details such as output
formats
27. jbehave Story
• Story: Play fizz-buzz • Examples:
As a math game player |value|display|
I would like to play fizz-buzz |1|1|
So that I can learn how to calculate
|2|2|
multiples
|3|fizz|
Scenario: When to fizz |4|4|
Given a fizz-buzz player |5|buzz|
When I ask to fizz-buzz for 3 |6|fizz|
Then I should get a fizz |7|7|
|8|8|
Scenario: When to fizz-buzz
|9|fizz|
Given a fizz-buzz player
|10|buzz|
When I ask to fizz-buzz for <value>
Then I should get a <display>
|15|fizz-buzz|
|30|fizz-buzz|
28. jbehave Test Code
public class PlayFizzBuzzSteps @Then("I should get a <display>")
{ @Alias("I should get a $display")
private FizzBuzzer fb; public void isBuzz(@Named("display") final
private String answer; String display)
{
@Given("a fizz-buzz player") assertThat(answer, is(display));
public void givenAFizzBuzzPlayer() }
{ fb = new FizzBuzzer(3, 5);
}
@When("I ask to fizz-buzz for <value>")
@Alias("I ask to fizz-buzz for $value")
public void answer(@Named("value")
final int value)
{ answer = fb.answer(value);
}
29. jbehave Runner
public class PlayFizzBuzz extends JUnitStory {
public PlayFizzBuzz()
{
addSteps(new InstanceStepsFactory(configuration(), new PlayFizzBuzzSteps())
.createCandidateSteps());
}
@Override
public Configuration configuration()
{
return super.configuration()
.useStoryReporterBuilder(new StoryReporterBuilder().withFormats(Format.CONSOLE,
Format.TXT,
Format.HTML));
}
}
33. Cucumber Feature
Feature: Play Fizz Buzz
As a math game player
I would like to play fizz-buzz
So that I can learn how to calculate multiples
Scenario: When to fizz
Given a fizz-buzz player
When I ask to fizz-buzz for 3
Then I should get a fizz
34. Cucumber Test Code
Given /a fizz-buzz player/ do |n|
@fb = FizzerBuzzer.new
end
When /I ask to fizz-buzz for 3/ do |op|
@result = @fb.answer op
end
Then /I should get a fizz/ do |result|
@result.should == result.to_f
end
35. Compare and Contrast
Criteria jbehave easyb Cucumber
Language written Java Groovy Ruby
in
Languages Any language on Any language on Ruby or (with
supported the JVM the JVM Cuke4Duke) Java
Writing the story Separate files Single file Separate files
and test
Running tests Commandline, Ant, Commandline, Ant, Commandline or
Maven, IDEs like Maven, IDEs like (with Cuke4Duke)
Eclipse, JUnit Eclipse, JUnit Ant, Maven, IDEs
like Eclipse
36. Criteria jbehave easyb Cucumber
Pending tests Supported Supported Supported
feature
Running multiple Supported Supported Supported
tests
Assertion feature Can use Hamcrest Uses ‘ensure’ Uses Ruby
matchers for syntax, similar to framework
assertion assert
Installation Easy Easy Fair
Documentation Good Extremely good No documentation
support but good
community
support
Year of inception 2003 2009 2008
Author Dan North Andy Glover Aslak Hellesøy
37. Summary
Given that you have heard this presentation
And discovered that BDD is really fun
When you are thinking about testing strategies
Then you should give BDD a chance!
• Questions /Comments are welcome….
• Contacts
– Ben Maynard: bmaynard@litle.com
– Manodnya Lele: mlele@litle.com