The document discusses using behavior driven development (BDD) to write better test scenarios. It provides an example of a scenario that tests whether a Confluence server is accessible. The author questions whether this scenario truly qualifies as BDD or is instead just a technical test. The discussion covers differences between BDD and technical testing, as well as considerations around using Cucumber for technical tests versus unit tests. The author emphasizes being pragmatic and ensuring scenarios will be read and understood by their intended audience.
The document summarizes a presentation on test automation with Cucumber-JVM. Cucumber allows writing tests in plain text and executing them as automated tests. It supports behavior driven development by writing specifications in a natural language format. Cucumber tests can be written in various programming languages like Java, Ruby, and executed using JUnit. It uses regular expressions and annotations to map steps in feature files to code implementations.
This document summarizes a task management tool called Taskly. It allows users to manage tasks in any workflow and supports getting things done more easily. The tool is designed to be easy to use, support any workflow, and actually help users complete tasks. It generates revenues through a freemium model with unlimited tasks for a $4 monthly fee. The company aims to grow through word of mouth, social media, and providing a helpful product to users.
The document discusses the benefits of meditation for reducing stress and anxiety. Regular meditation practice can help calm the mind and body by lowering heart rate and blood pressure. Studies have shown that meditating for just 10-20 minutes per day can have significant positive impacts on both mental and physical health over time.
This document discusses Vennd, a company that has created digital currencies. It summarizes Vennd's business model, which offers different pricing tiers for its currency creation service. It also outlines Vennd's customer acquisition strategies, competitors, advantages over competitors like a short time to market and lower costs. The document promotes raising $1 million for Vennd and envisions a future where digital currencies can be used for more aspects of daily life like trading stocks or paying car registration fees.
Stripe pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
Forget the Fairy Dust - How to Create Content That (Actually) WorksJoel Klettke
It's easy to talk about creating great content, but if you've ever actually tried it, you'll know it's not so easy in the real world. Joel Klettke, Copywriter & Owner of Business Casual Copywriting dispels that Fairy Dust as he walks you through a highly-actionable process for creating consistently engaging content across a variety of formats. As former lead SEO at a digital agency, Joel brings a deep understanding of search to the copywriting table, then adds acutely refined conversion optimization skills to the mix. The result is irresistible copy. The kind that moves people to take action. Learn how to stop spending time building copy that just takes up space.
🔮 Want more VC/investment startup pitch decks? We’ve centralised ALL succesful investor pitch decks at: https://chagency.co.uk/getstartupfunding — check all of them out
🔮 The effort is adhering to the ideology of “The Future Of Freemium” — read more here: https://chagency.co.uk/blog/ceo/the-future-of-freemium-how-to-get-peoples-attention/
🔮 Our library of pitch decks will not have any advertisement, only a signature. We are a design agency that helps SaaS CEOs reduce user churn.
Notes on Inspired: How to Create Products Customers Love by Marty CaganIvan Nashara
I made this note and presentation for the executives in my company. We discuss how the product organization should be evolving and how we can create a strong innovative company.
Inspired is one of the best books to introduce you to product management. And it's also a strong one that can be easily read and understood by the business and non-product people in the company.
The document summarizes a presentation on test automation with Cucumber-JVM. Cucumber allows writing tests in plain text and executing them as automated tests. It supports behavior driven development by writing specifications in a natural language format. Cucumber tests can be written in various programming languages like Java, Ruby, and executed using JUnit. It uses regular expressions and annotations to map steps in feature files to code implementations.
This document summarizes a task management tool called Taskly. It allows users to manage tasks in any workflow and supports getting things done more easily. The tool is designed to be easy to use, support any workflow, and actually help users complete tasks. It generates revenues through a freemium model with unlimited tasks for a $4 monthly fee. The company aims to grow through word of mouth, social media, and providing a helpful product to users.
The document discusses the benefits of meditation for reducing stress and anxiety. Regular meditation practice can help calm the mind and body by lowering heart rate and blood pressure. Studies have shown that meditating for just 10-20 minutes per day can have significant positive impacts on both mental and physical health over time.
This document discusses Vennd, a company that has created digital currencies. It summarizes Vennd's business model, which offers different pricing tiers for its currency creation service. It also outlines Vennd's customer acquisition strategies, competitors, advantages over competitors like a short time to market and lower costs. The document promotes raising $1 million for Vennd and envisions a future where digital currencies can be used for more aspects of daily life like trading stocks or paying car registration fees.
Stripe pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
Forget the Fairy Dust - How to Create Content That (Actually) WorksJoel Klettke
It's easy to talk about creating great content, but if you've ever actually tried it, you'll know it's not so easy in the real world. Joel Klettke, Copywriter & Owner of Business Casual Copywriting dispels that Fairy Dust as he walks you through a highly-actionable process for creating consistently engaging content across a variety of formats. As former lead SEO at a digital agency, Joel brings a deep understanding of search to the copywriting table, then adds acutely refined conversion optimization skills to the mix. The result is irresistible copy. The kind that moves people to take action. Learn how to stop spending time building copy that just takes up space.
🔮 Want more VC/investment startup pitch decks? We’ve centralised ALL succesful investor pitch decks at: https://chagency.co.uk/getstartupfunding — check all of them out
🔮 The effort is adhering to the ideology of “The Future Of Freemium” — read more here: https://chagency.co.uk/blog/ceo/the-future-of-freemium-how-to-get-peoples-attention/
🔮 Our library of pitch decks will not have any advertisement, only a signature. We are a design agency that helps SaaS CEOs reduce user churn.
Notes on Inspired: How to Create Products Customers Love by Marty CaganIvan Nashara
I made this note and presentation for the executives in my company. We discuss how the product organization should be evolving and how we can create a strong innovative company.
Inspired is one of the best books to introduce you to product management. And it's also a strong one that can be easily read and understood by the business and non-product people in the company.
Teresa Torres - An introduction to modern product discovery - Productized16Productized
The world of product management is changing quickly. In the past five years alone, we’ve seen the rise of The Lean Startup, design thinking, the Jobs-to-be-done framework, design sprints, OKRs, and much more. It can be hard for product teams to keep up. In this talk, you’ll learn a simple framework for how to make sense of all of these trends. You’ll learn how to mix and match methods in a way that leads to a coherent strategy that leads to better products.
Teresa is a product coach helping teams adopt user-centered, hypothesis-driven product development practices, and is the creator of Product Talk. She works with companies of all sizes on integrating user research, experimentation, and the right analytics into the product development process resulting in better product decisions.
Enhancing SEO Content Writing with AI: Opportunities & ChallengesSearch Engine Journal
This document provides an overview of AI-generated content and tips for using it effectively. It discusses how large language models (LLMs) work by predicting the next word based on statistical patterns in training data, but don't truly understand language. While AI content requires human oversight for accuracy, many businesses are using it to generate drafts or ideas. The document recommends prompt engineering to guide AI responses and tips like having AI suggest content topics or parts of drafts while leaving final revisions to human editors.
The document discusses Simba Chain, a blockchain platform that aims to make blockchain simple, scalable, and sustainable for businesses and developers. Some key points:
- Simba Chain provides a no-code API interface that allows generating APIs for smart contracts without needing blockchain programming knowledge. This makes blockchain accessible.
- It supports deployment on multiple blockchain networks and chains, allowing applications to be portable across platforms.
- The company has seen strong traction with customers in sectors like government, education, and enterprise supply chain management. It also has a strong investor base including founders of top firms like KKR.
EMPOWERED - Achieving Extraordinary Results with Ordinary People" by Marty CaganProductized
The document discusses the results of a study on the impact of COVID-19 lockdowns on air pollution. Researchers found that lockdowns led to significant short-term reductions in nitrogen dioxide and fine particulate matter pollution globally as human activity declined. However, the impacts on air quality were temporary and pollution levels rebounded once lockdowns were lifted and activity resumed.
This document summarizes key metrics and best practices for Software as a Service (SaaS) companies. It discusses important SaaS metrics like monthly recurring revenue (MRR), churn, lifetime value (LTV), and customer acquisition cost (CAC). Best practices include using incentivized referrals, optimizing the onboarding process, and creating valuable content. The document also provides an overview of the global SaaS market and notes that while the US dominates, European companies can also achieve strong growth and success in the SaaS space.
Our world is full of endless distractions: videos, special offers, articles, the list goes on. So, how do you make sure your content reaches your audience and grabs their attention?
During this webinar, content marketing expert Steve Rayson will share insights gained from analyzing a million headlines, across a range of publications, to discover what phrases amplify content and drive conversions.
And if that's not enough, advertising fanatic Larry Kim will show you how to use this data to craft click-worthy ad copy to use across paid search and social to increase click-through rates and significantly decrease cost-per-click.
Register now to hear this marketing dynamic duo crack the code on engagement.
You'll learn:
-What type of copy performs best on Facebook, Twitter, and Search
-How to curate attention-grabbing, engaging content
-What components make up a powerful headline
A talk I gave at Google on Strategy and Product Discovery
We discussed:
Discovering Features and Products (Product Strategy)
Discovering Products and Product Lines (Product Line / Company Strategy)
Marty Cagan: Using High Fidelity Prototypes for Product Discovery
Call Reluctance: 3 Steps to Overcome Your Fear of Rejection when Selling By P...InsideSales.com
Featuring Michael Pedone, founder of SalesBuzz, and Anil Somaney, VP of Business Development at InsideSales.com
Call reluctance is the #1 hidden fear of B2B inside sales reps and it’s costing them and their companies thousands of dollars in lost potential revenue every month. As a straight commission sales rep for 20+ years as well as a small business owner, Michael Pedone has been on both sides of the fence.
In this webinar you’ll learn:
• What causes call reluctance
• 3 steps to overcome your fear of rejection
• How to make sure it never comes back
Frank Underwood's Lessons For Digital MarketersMonetate
Despite being perhaps the most Machiavellian of all pop culture characters this century has seen, Frank Underwood ( Kevin Spacey’s House of Cards character) can be a guiding voice for digital marketers.
And in celebration of tonight's Emmy Awards, here are five lessons—straight from Frank's mouth to your screen.
As designers and developers, we don’t always have access to research to about our end users, or the opportunity to learn about them. This can leave us building products based on our managers personal opinion, or client specifications, and never really knowing how we can serve our users better.
But the good news is there are many opportunities for user research that most designers and developers just aren’t aware of. They are cheap, easy to implement, and can used straight away on almost any project.
Lily will talk you through 3 methods of no excuse user research that you can use immediately on the websites, products, apps and services you work on every day.
Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business. BDD helps teams focus not only on building features that work, but on ensuring that the features they deliver are the ones that the client actually needs.
In this talk, we will discuss what BDD is about, its benefits, and how it affects teams and processes. We will discuss two case studies where BDD practices have been successfully introduced, including the benefits gained and challenges met. We will see how much benefit was gained when BDD was integrated into the broader development infrastructure, including issue tracking systems, requirements management, and project reporting.
We will also see how BDD can be applied to all levels of the development process, from requirements down to low-level coding. We will also look at the principle BDD tools available that can help teams implement executable specifications, BDD-style test automation, and living documentation effectively. Some of the tools discussed will include JBehave, Cucumber, Specflow, Jasmine and Spock.
We will also look at two case studies where BDD practices have been successfully integrated into several projects in large government and financial organizations. Teams that adopted BDD effectively benefited from significantly lower defect rates, much earlier discovery of errors and inconsistencies in the requirements, and better overall communication and collaboration within the team. However, practicing BDD does involve a significant change in mind-set compared to more traditional approaches, a different collaboration model between team members, and a high degree of stakeholder by-in and engagement, all of which should not be underestimated. We will discuss how the teams managed these various challenges during their BDD adoption story.
Behavior Driven Development Pros and ConsIosif Itkin
The Cons of Behavior Driven Development (BDD)
Ivan Bobrov, ClubQA Co-Founder, Kostroma
The Pros of Behavior Driven Development (BDD): Business User Scenarios
Natalia Zaitseva, Exchange Functional Test Automation Lead Innovative Trading Systems
EXTENT Conference.
October 29-30, 2011
Test Automation for Trading Systems
Renaissance Hotel Moscow
Coinbase pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
Product Led Growth (PLG) is a go-to-market strategy that relies on product usage as the primary driver of acquisition, conversion and expansion. Learn why we're now in the end user era and how your org can adapt.
Best Super App development- Guide Yo All in One App in 2023CMARIX TechnoLabs
Super app development creates a digital marketplace by integrating several micro apps. Super app is a design for several app development blog to learn about the significance of a great app and development costs.
The document discusses writing smart contracts with Solidity on the Ethereum blockchain. It provides an overview of how blockchain and Ethereum works. It then discusses smart contracts and how they are written in Solidity, the programming language for Ethereum. It provides examples of writing a basic "Hello World" smart contract in Solidity and deploying it to the Ropsten test network.
Chrome DevTools are a set of free tools built directly into the Google Chrome browser, that offer developers and SEO specialists exceptional insights into underlying SEO issues. In this session, we will look at how to use it for technical SEO auditing, performance testing and crawlability, especially for JavaScript sites.
Evntr is a location-based app that allows users to connect locally, view live feeds of nearby events, and spontaneously create and share events. It aims to make meeting people locally quick, easy, and natural. Evntr addresses the problem of loneliness with current social apps by turning local conversations into instantly creatable events for a younger demographic, similar to Meetup. The founders are seeking $200k to further develop the app based on feedback and market it through their college ambassador program and social media targeting bored, lonely users interested in nearby events.
What are the challenges we face while developing the front-end for the largest accommodations reservations website in the world?
Working on an e-commerce interface is already a complex task itself; how do we make it work in 224 countries, for customers all around the world? In this presentation, we'll see how our architecture, performance and UI decisions impact the experience of millions of partners and users who book a room with us.
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.
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)Joshua Warren
PHPSpec and Behat are two amazing PHP tools that empower specification-driven development and behavior-driven development. These two tools combined can help you build test coverage, but many people don't realize they can also write much of your code for you. In this talk, we'll see what PHPSpec and Behat can do, through a series of examples and use cases. In other words, I heard you like to code, so I wrote code that writes code while you code.
Presented at #phptek - http://tek.phparch.com
Teresa Torres - An introduction to modern product discovery - Productized16Productized
The world of product management is changing quickly. In the past five years alone, we’ve seen the rise of The Lean Startup, design thinking, the Jobs-to-be-done framework, design sprints, OKRs, and much more. It can be hard for product teams to keep up. In this talk, you’ll learn a simple framework for how to make sense of all of these trends. You’ll learn how to mix and match methods in a way that leads to a coherent strategy that leads to better products.
Teresa is a product coach helping teams adopt user-centered, hypothesis-driven product development practices, and is the creator of Product Talk. She works with companies of all sizes on integrating user research, experimentation, and the right analytics into the product development process resulting in better product decisions.
Enhancing SEO Content Writing with AI: Opportunities & ChallengesSearch Engine Journal
This document provides an overview of AI-generated content and tips for using it effectively. It discusses how large language models (LLMs) work by predicting the next word based on statistical patterns in training data, but don't truly understand language. While AI content requires human oversight for accuracy, many businesses are using it to generate drafts or ideas. The document recommends prompt engineering to guide AI responses and tips like having AI suggest content topics or parts of drafts while leaving final revisions to human editors.
The document discusses Simba Chain, a blockchain platform that aims to make blockchain simple, scalable, and sustainable for businesses and developers. Some key points:
- Simba Chain provides a no-code API interface that allows generating APIs for smart contracts without needing blockchain programming knowledge. This makes blockchain accessible.
- It supports deployment on multiple blockchain networks and chains, allowing applications to be portable across platforms.
- The company has seen strong traction with customers in sectors like government, education, and enterprise supply chain management. It also has a strong investor base including founders of top firms like KKR.
EMPOWERED - Achieving Extraordinary Results with Ordinary People" by Marty CaganProductized
The document discusses the results of a study on the impact of COVID-19 lockdowns on air pollution. Researchers found that lockdowns led to significant short-term reductions in nitrogen dioxide and fine particulate matter pollution globally as human activity declined. However, the impacts on air quality were temporary and pollution levels rebounded once lockdowns were lifted and activity resumed.
This document summarizes key metrics and best practices for Software as a Service (SaaS) companies. It discusses important SaaS metrics like monthly recurring revenue (MRR), churn, lifetime value (LTV), and customer acquisition cost (CAC). Best practices include using incentivized referrals, optimizing the onboarding process, and creating valuable content. The document also provides an overview of the global SaaS market and notes that while the US dominates, European companies can also achieve strong growth and success in the SaaS space.
Our world is full of endless distractions: videos, special offers, articles, the list goes on. So, how do you make sure your content reaches your audience and grabs their attention?
During this webinar, content marketing expert Steve Rayson will share insights gained from analyzing a million headlines, across a range of publications, to discover what phrases amplify content and drive conversions.
And if that's not enough, advertising fanatic Larry Kim will show you how to use this data to craft click-worthy ad copy to use across paid search and social to increase click-through rates and significantly decrease cost-per-click.
Register now to hear this marketing dynamic duo crack the code on engagement.
You'll learn:
-What type of copy performs best on Facebook, Twitter, and Search
-How to curate attention-grabbing, engaging content
-What components make up a powerful headline
A talk I gave at Google on Strategy and Product Discovery
We discussed:
Discovering Features and Products (Product Strategy)
Discovering Products and Product Lines (Product Line / Company Strategy)
Marty Cagan: Using High Fidelity Prototypes for Product Discovery
Call Reluctance: 3 Steps to Overcome Your Fear of Rejection when Selling By P...InsideSales.com
Featuring Michael Pedone, founder of SalesBuzz, and Anil Somaney, VP of Business Development at InsideSales.com
Call reluctance is the #1 hidden fear of B2B inside sales reps and it’s costing them and their companies thousands of dollars in lost potential revenue every month. As a straight commission sales rep for 20+ years as well as a small business owner, Michael Pedone has been on both sides of the fence.
In this webinar you’ll learn:
• What causes call reluctance
• 3 steps to overcome your fear of rejection
• How to make sure it never comes back
Frank Underwood's Lessons For Digital MarketersMonetate
Despite being perhaps the most Machiavellian of all pop culture characters this century has seen, Frank Underwood ( Kevin Spacey’s House of Cards character) can be a guiding voice for digital marketers.
And in celebration of tonight's Emmy Awards, here are five lessons—straight from Frank's mouth to your screen.
As designers and developers, we don’t always have access to research to about our end users, or the opportunity to learn about them. This can leave us building products based on our managers personal opinion, or client specifications, and never really knowing how we can serve our users better.
But the good news is there are many opportunities for user research that most designers and developers just aren’t aware of. They are cheap, easy to implement, and can used straight away on almost any project.
Lily will talk you through 3 methods of no excuse user research that you can use immediately on the websites, products, apps and services you work on every day.
Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business. BDD helps teams focus not only on building features that work, but on ensuring that the features they deliver are the ones that the client actually needs.
In this talk, we will discuss what BDD is about, its benefits, and how it affects teams and processes. We will discuss two case studies where BDD practices have been successfully introduced, including the benefits gained and challenges met. We will see how much benefit was gained when BDD was integrated into the broader development infrastructure, including issue tracking systems, requirements management, and project reporting.
We will also see how BDD can be applied to all levels of the development process, from requirements down to low-level coding. We will also look at the principle BDD tools available that can help teams implement executable specifications, BDD-style test automation, and living documentation effectively. Some of the tools discussed will include JBehave, Cucumber, Specflow, Jasmine and Spock.
We will also look at two case studies where BDD practices have been successfully integrated into several projects in large government and financial organizations. Teams that adopted BDD effectively benefited from significantly lower defect rates, much earlier discovery of errors and inconsistencies in the requirements, and better overall communication and collaboration within the team. However, practicing BDD does involve a significant change in mind-set compared to more traditional approaches, a different collaboration model between team members, and a high degree of stakeholder by-in and engagement, all of which should not be underestimated. We will discuss how the teams managed these various challenges during their BDD adoption story.
Behavior Driven Development Pros and ConsIosif Itkin
The Cons of Behavior Driven Development (BDD)
Ivan Bobrov, ClubQA Co-Founder, Kostroma
The Pros of Behavior Driven Development (BDD): Business User Scenarios
Natalia Zaitseva, Exchange Functional Test Automation Lead Innovative Trading Systems
EXTENT Conference.
October 29-30, 2011
Test Automation for Trading Systems
Renaissance Hotel Moscow
Coinbase pitch deck designed by Zlides
Want to create a pitch deck that inspires your audience? Get your FREE presentation kit designed by Zlides: http://bit.ly/slideshare_zlides
Product Led Growth (PLG) is a go-to-market strategy that relies on product usage as the primary driver of acquisition, conversion and expansion. Learn why we're now in the end user era and how your org can adapt.
Best Super App development- Guide Yo All in One App in 2023CMARIX TechnoLabs
Super app development creates a digital marketplace by integrating several micro apps. Super app is a design for several app development blog to learn about the significance of a great app and development costs.
The document discusses writing smart contracts with Solidity on the Ethereum blockchain. It provides an overview of how blockchain and Ethereum works. It then discusses smart contracts and how they are written in Solidity, the programming language for Ethereum. It provides examples of writing a basic "Hello World" smart contract in Solidity and deploying it to the Ropsten test network.
Chrome DevTools are a set of free tools built directly into the Google Chrome browser, that offer developers and SEO specialists exceptional insights into underlying SEO issues. In this session, we will look at how to use it for technical SEO auditing, performance testing and crawlability, especially for JavaScript sites.
Evntr is a location-based app that allows users to connect locally, view live feeds of nearby events, and spontaneously create and share events. It aims to make meeting people locally quick, easy, and natural. Evntr addresses the problem of loneliness with current social apps by turning local conversations into instantly creatable events for a younger demographic, similar to Meetup. The founders are seeking $200k to further develop the app based on feedback and market it through their college ambassador program and social media targeting bored, lonely users interested in nearby events.
What are the challenges we face while developing the front-end for the largest accommodations reservations website in the world?
Working on an e-commerce interface is already a complex task itself; how do we make it work in 224 countries, for customers all around the world? In this presentation, we'll see how our architecture, performance and UI decisions impact the experience of millions of partners and users who book a room with us.
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.
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)Joshua Warren
PHPSpec and Behat are two amazing PHP tools that empower specification-driven development and behavior-driven development. These two tools combined can help you build test coverage, but many people don't realize they can also write much of your code for you. In this talk, we'll see what PHPSpec and Behat can do, through a series of examples and use cases. In other words, I heard you like to code, so I wrote code that writes code while you code.
Presented at #phptek - http://tek.phparch.com
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For YouJoshua Warren
This document provides an overview of the Behavior Driven Development (BDD) testing tools PHPSpec and Behat. It discusses how BDD differs from traditional test-driven development (TDD) in focusing on complete features rather than individual units. The document demonstrates using Behat and PHPSpec to write feature files and specifications for a sample time-off request application before implementing the code. Key steps include generating Behat and PHPSpec configuration files, writing feature files, generating PHPSpec specifications, and then implementing the code.
Php[tek] 2016 - BDD with Behat for BeginnersAdam Englander
Learn the basics of Behavioral Driven Development (BDD) with Behat to build quality applications. Behat utilizes natural language syntax to define feature test scenarios. In this tutorial you will learn how to write integration tests for web applications. This will include utilizing Selenium WebDriver for real world multi-browser testing including introductions to Selenium Grid and Sauce Labs. Learn a better way to perform integration testing today!
The document discusses achieving testing nirvana through test-driven development (TDD). It states that TDD involves writing tests before code, which provides confidence in the code and allows being more productive. It describes three levels of enlightenment through TDD: 1) tests answer "How" and provide access to testing, refactoring, and automation tools; 2) TDD is about design and tests answer "What"; 3) tests are behavior-driven development (BDD) specs in a domain-specific language (DSL), making them less brittle.
The document discusses writing tests for applications in a behavior-driven development (BDD) style using the Behat testing framework. It covers installing and configuring Behat and the Drupal extension, writing feature files with scenarios and steps, and executing tests from the command line. A real-world testing example is provided to demonstrate validating headings on a Drupal site using Behat. Tips are also given for minimizing regressions through testing.
With third party clients connecting to your service you may find that the assumptions or opinions of a typical rails application are not robust enough. We'll run through some key considerations when building an API that will be consumed by a mobile app.
Trying to establish a more consistent SEO structure within your organization?
Wish every SEO fire had a more standardized, easy-to-follow solution?
We know – no two days in SEO are the same.
However, it’s surprisingly easy to find a consistent approach that provides meaningful impact.
And – it works whether you're in-house, an agency, or a freelance consultant.
Watch this webinar and learn the 4-step process that will help you tackle SEO challenges head-on as they arise.
This 4-Step SEO Waltz takes you through:
Visibility
Diagnostics
Iteration
Monitoring
Jamie Indigo and Michelle Race from Deepcrawl walks you through a four-step process that helps you meet SEO challenges head-on as they arise and stop SEO fires before they start.
SEO professionals still view the SEO process as a complex dance, but it could be a simple and practical framework for addressing challenges in various forms.
Discover how you can use the steps, pillars, and methods for more effective SEO project management within your company.
Agenda:
After covering the basics about how to find and interact with UI elements, we will look into techniques of writing maintainable tests with selendroid.
In the end we will run our tests in parallel using the Selenium Grid.
The workshop repository can be found here:
https://github.com/DominikDary/selendroid-workshop
Zend con 2016 bdd with behat for beginnersAdam Englander
Learn the basics of behavioral driven development (BDD) with Behat to build high quality and well documented applications. You'll learn how BDD can help you deliver greater business value more efficiently while accurately documenting the functionality of your application along the way. You'll learn how to utilize Behat as your BDD tool. With Behat, you'll create tests for the features in your application by utilizing a natural language syntax called Gherkin backed by PHP code to execute the steps executed in the feature's scenarios.
This will be a hands-on tutorial. You'll learn how to implement BDD for a web application. This will include utilizing Selenium WebDriver for real world multi-browser testing including introductions to Selenium Grid and hosted integration services utilizing Selenium.
With the creation of the cucumber framework came the creation of the Gherkin Scripting format (also known as the Given-When-Then format). The structure of a Gherkin script is very straight-forward: Given provides you with the background When tells you what is being created Then tells you the expected results. Writing a script in a Given-When-Then format may be fairly simple. Writing a good Gherkin Script is an Art. Some are Picassos, some are Monets, some look like they were created by a toddler with a crayon. In this presentation Mr. Eakin will offer some tips on writing good Gherkin Scripts and show you how a well crafted Gherkin Script can be a beautiful work of Art.
We’ve all been there. We work incredibly hard to develop a feature and design tests based on written requirements. We build a detailed test plan that aligns the tests with the software and the documented business needs. And when we put the tests to the software, it all falls apart because the requirements were changed without informing everyone. Mary Thorn says help is at hand. Enter behavior-driven development (BDD), and Cucumber and SpecFlow, tools for running automated acceptance tests and facilitating BDD. Mary explores the nuances of Cucumber and SpecFlow, and shows you how to implement BDD and agile acceptance testing. By fostering collaboration for implementing active requirements via a common language and format, Cucumber and SpecFlow bridge the communication gap between business stakeholders and implementation teams. In this workshop, practice writing feature files with the best practices Mary has discovered over numerous implementations. If you experience developers not coding to requirements, testers not getting requirements updates, or customers who feel out of the loop and don’t get what they ask for, Mary has answers for you.
Behat is a testing framework that allows testing an entire website from the perspective of a user or tester. The document provides an overview of how to get started with Behat, including installing necessary components, writing feature files with scenarios and steps, and implementing custom steps. It also discusses best practices for writing good Behat tests and provides solutions to common problems encountered when using Behat.
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
Behat è nato per semplificare il processo di accettazione da parte del cliente: per evitare ambiguità si realizza un test automatico (leggibile anche da chi non ha competenze tecniche) la cui esecuzione con successo garantisce che le specifiche siano rispettate. L'integrazione di Behat nel processo di sviluppo Drupal permette tuttavia di andare ben oltre: si può usare Behat per condividere le specifiche con il cliente, per guidare lo sviluppo (scrivendo il test prima del codice), per assistere il debug (usando uno scenario per popolare una situazione di errore ripetibile) e persino per migrare un sito da Drupal 7 a Drupal 8 (codificando il comportamento del sito in una serie di test che vengono poi usati come base per lo sviluppo del nuovo sito). Per tutti gli scenari descritti vedremo esempi basati sull'esperienza di Nuvole.
di Andrea Pescetti
Do you TDD or BDD? Why not both? Come learn the "Double Loop" workflow and discover how you can use both Behavior Driven Development and Test Driven Development to write well designed, tested and documented code. Double Loop works for lone engineers, small teams or entire product departments. I'll cover the steps you'll take in the workflow as each role as well as tools for executing Double Loop
This document provides an introduction to Behavior Driven Development (BDD) testing using the Behat framework. It discusses how BDD adds structure to test-driven development by describing features and scenarios in natural language. This allows for collaboration between developers and non-technical stakeholders. It provides an example of defining a feature and scenarios in Behat's Gherkin language and running the tests. Steps define the code implementation and assertions. The Behat Symfony bundle can integrate BDD tests into Symfony projects. Resources for learning more about BDD and Behat are also listed.
This document discusses Gherkin, a language used for behavior-driven development (BDD) testing. It was created in 2009 to be business-readable. Gherkin feature files use a simple syntax with keywords like "Feature", "Scenario", "Given", "When", "Then" to describe tests in a natural language format. The document demonstrates setting up a testing project using Gherkin with Behat and Mink to automate tests for a website by linking feature files to test code.
Getting Started with Test Automation: Introduction to Cucumber with Lapis LazuliRebecca Eloise Hogg
Introduction to web testing with Cucumber using spriteCloud's Lapis Lazuli Cucumber helper.
This presentation will take you through the steps needed to set up a test automation project using Cucumber - a software tool that runs automated tests in the BBD style - in combination with Lapis Lazuli, a gem that provides Cucumber helper functions and scaffolding for easier web test automation suite development.
To do this you will need to have installed Ruby with some drivers and libraries. You can find detailed notes on how to do this here: http://www.testautomation.info/Getting_Started
To successfully follow this tutorial, prior knowledge of test automation isn’t needed, but knowledge of scripting - especially Ruby - and HTML skills are recommended.
Lapus Lazuli's GitHub depository: https://github.com/spriteCloud/lapis-lazuli
For more information about everything test automation, whether you need someone to help you set up TA in your organisation or want to find out more about our Test Automation as a Service options, email: info@spritecloud.com.
Brown Bag Lunch - BDD an introduction - 2017 feb/marArnauld Loyer
The document discusses Behavior Driven Development (BDD) and examples of scenarios for different situations. It provides examples of scenarios for horse betting, canceling a deal without an audit, and creating an option contract and OTC deal. It also discusses scenario analysis and improving scenarios by considering different contexts and outcomes. Tips are provided for writing scenarios using the Given-When-Then format and business language only.
Having conversations with domain experts and using examples to gain a shared understanding of the desired behavior and discover unknowns. BDD involves domain experts, testers, and developers having conversations using examples to illustrate and specify behavior. This helps discover gaps and issues to improve understanding between stakeholders.
The document describes the process of event storming for modeling domains. Event storming starts with identifying domain events and placing them on sticky notes in a timeline. The group then adds commands or triggers that cause the events. Sources of commands like users, external systems, or time are identified. Aggregates that accept commands and produce events are identified and grouped into bounded contexts. Key scenarios, users, and goals are incorporated into the model to help explore the domain from different perspectives.
Behavior Driven Development // Brown Bag Lunch v1.0.0Arnauld Loyer
The document discusses Behavior Driven Development (BDD) and Specification by Example. It provides examples of using examples to explore requirements through conversation. BDD focuses on using examples to facilitate communication between stakeholders to develop a shared understanding of desired behaviors. Examples are used to elaborate on requirements and verify that software meets expectations.
Dégraissons le mammouth ou Darwin a encore frappé - La théorie de l'évolution...Arnauld Loyer
Dégraissons le mammouth ou Darwin a encore frappé
La théorie de l'évolution appliquée au développement informatique - cas pratique de l'architecture du site PMU.fr
Depuis 1980, Lehman nous avertit: un programme doit évoluer ou péricliter, mais alors qu'il devient de plus en plus gros, la complexité résultante tend à limiter son évolution. Comment remédier à cela? Quelle architecture adopter pour un site à fort trafic comme celui du PMU?
Après avoir abordé les problématiques d'évolution et de maintenance d'une application monolithique, nous verrons pourquoi et surtout comment séparer les composants et les comportements de notre application.
Du monolithe aux micro services, du distribué, des messages, du publish/subscribe, du REST, une approche polyglotte, ... au cours de cet exposé, nous verrons quelques uns des choix retenus pour garantir la survie et l'évolution de notre application. Nous verrons comment nous avons construit un socle solide permettant de répondre aux nouvelles manières de faire du Web, d'être adapté aux applications mobiles et aux télés connectées. Ce sera l'occasion d'aborder aussi bien les principes architecturaux et les principes organisationnels qui nous ont permis d'atteindre cet objectif.
L'ABC du BDD (Behavior Driven Development)Arnauld Loyer
Une introduction au Behavior Driven Development, avec plein d'idées pour tout de suite! et applicable à tout projet. Il sera question:
* de passer de l'incompréhension à savoir qu'on ne sait pas
* des westerns spaghetti aux Three Amigos,
* de reléguer le Comment au second plan pour laisser sa place au Pourquoi!
* de rendre des spécifications exécutables
* de découvrir qu'un concombre n'est pas qu'un Cucurbitacée aux feuilles tri-lobées
* d'automatisation comme outil de non-regression
Au cours de cette session, nous expliquerons ce qu'est le BDD. Nous verrons qu'il n'est pas question d'outils ou de tests, mais de collaboration et de discussion entre les différentes parties prenantes: du métier aux développeurs en passant par les testeurs. Cette presentation s'adresse à l'ensemble de ces populations en expliquant l'importance qu'il y a à se comprendre, et qu'il n'est pas nécessaire d'avoir des outils sophistiqués pour avoir des bénéfices immédiats.
Nous verrons quelques pratiques de discussion qui permettent d'arriver à une meilleure compréhension et à une description du besoin. Nous verrons aussi comment des exemples concrets permettent de s'assurer d'une compréhension commune et comment ils permettent de construire un langage unique et non ambigu. Nous verrons comment rendre ces spécifications executables en réutilisant les exemples construits précédemment et en les automatisant. Ceux-ci viendront renforcer les tests d'acceptance et devenir des tests de non regressions. Enfin, nous verrons que cette démarche nous permettra d'avoir une documentation vivante et toujours à jour de notre système.
Idées pour tout de suite
Communication, Clarification par des Exemples concrets, Spécifications exécutables
Confiance & BDD - Présentation faite à Softshake sur les origines de la confiance et comment le Behavior Driven Development (BDD) contribue à restaurer ou instaurer la confiance entre les développeurs, le métier et les testeurs.
Rappellez-vous cette petite fille, la bouche pleine de chocolat qui dit "Mon papa il me dit toujours on ne doit pas manger de mousse au chocolat avant de manger... sinon tu trompes la confiance que tes parents ils ont mis à l'interieur de toi"
Cela vous rappelle quelque chose? Votre relation avec les développeurs, avec votre client ou encore avec vos testeurs?
Vous avez été trahis, la confiance s'est érodée, vous êtes au bord de la rupture, vos yeux sont cernés? Ne vous inquiétez pas il est encore temps de réagir. Que vous soyez testeurs, Business Analysts, clients, developpeurs, il y a toujours une issue. Nous allons voir comment en travaillant ensemble, vous allez pouvoir restaurez la confiance et la qualité de vos développements.
Avec "Adopte BDD", tous ensemble vous allez pouvoir écrire une nouvelle histoire, vous serez les propres acteurs de vos scénarios, l'automatisation n'aura plus de secret pour vous. Quelques rondelles de concombre, et fini les yeux gonflés, les cernes et les traits tirés. Vous serez enfin détendu.
Une présentation où il est question de mousse au chocolat, de confiance et de concombre.
The document outlines the steps in software development using Behavior Driven Development and Specification by Example. It shows stakeholders defining objectives and requirements, developers designing/coding and writing tests, testers writing test plans and testing the application, which is then deployed. It discusses sources of errors at each step from misunderstandings between roles. Examples are provided of writing scenarios in a Given/When/Then format to define features and test cases.
The document describes scenarios for withdrawing cash from an ATM. It includes scenarios where the account has sufficient funds and the withdrawal is successful, where the ATM has insufficient funds, where the account has insufficient funds, for an invalid PIN, and when the card has been disabled.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
2. Disclaimer
No scenario has been harmed during the investigation
github search:
extension:feature travel/deal/…
Most remarks are purely subjectives
@aloyer
3. Let’s try to diagnose the maturity
@aloyer
Anti-Pattern
… an antipattern was something
that seems like a good idea when
you begin, but leads you into
trouble.
http://martinfowler.com/bliki/AntiPattern.html
4. Having conversations with domain experts
and discover unknowns
and using examples
to gain a shared understanding of the desired behavior
@aloyer
C
9. Feature: The Confluence server is up
In order to make sure that Confluence has been installed and runs
As a developer
I want to access Confluence's home page
Scenario: Developer accesses the home page
Given the url of Confluences home page
When a web user browses to the url
Then the connection should be successful
Then the page status should be OK
Then the page should have the title "Confluence Setup Wizard - Confluence"
https://github.com/xebia-france/chef-confluence-jira-crowd/blob/a26e29a85d1e75b9b612a560685940b40c971adc/test/integration/confluence-jira-crowd/cucumber/confluence_up.feature
BDD ?
@aloyer
10. Feature: The Confluence server is up
In order to make sure that Confluence has been installed and runs
As a developer
I want to access Confluence's home page
Scenario: Developer accesses the home page
Given the url of Confluences home page
When a web user browses to the url
Then the connection should be successful
Then the page status should be OK
Then the page should have the title "Confluence Setup Wizard - Confluence"
https://github.com/xebia-france/chef-confluence-jira-crowd/blob/a26e29a85d1e75b9b612a560685940b40c971adc/test/integration/confluence-jira-crowd/cucumber/confluence_up.feature
Sanity CheckBDD ?
behavior ?
@aloyer
11. Feature: The Confluence server is up
In order to make sure that Confluence has been installed and runs
As a developer
I want to access Confluence's home page
Scenario: Developer accesses the home page
Given the url of Confluences home page
When a web user browses to the url
Then the connection should be successful
Then the page status should be OK
Then the page should have the title "Confluence Setup Wizard - Confluence"
https://github.com/xebia-france/chef-confluence-jira-crowd/blob/a26e29a85d1e75b9b612a560685940b40c971adc/test/integration/confluence-jira-crowd/cucumber/confluence_up.feature
Sanity CheckBDD ?
behavior ?
@aloyer
12. @aloyer 12
Given-When-Then
Then an outcome should be observed
Given a context
When an event happens
3 phases
setup/arrange
exercise/act
verify/assert
Tips
13. Feature: Asset Manager
@local-network
@normal
Scenario: check an asset can be loaded
Given I am testing "asset-manager"
And I am an authenticated API client
When I visit "/assets/513a0efbed915d425e000002"
Then I should get a 200 status code
And I should see "120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
@normal
Scenario: check an asset can be served
Given I am testing "static"
When I visit "/media/
513a0efbed915d425e000002/120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
Then I should get a 200 status code
And I should get a content length of "212880"
https://github.com/alphagov/smokey/blob/4c8fe739938e4a4b8b7bb393dfd485efd39dc034/features/asset_manager.feature
BDD ?
@aloyer
14. Feature: Asset Manager
@local-network
@normal
Scenario: check an asset can be loaded
Given I am testing "asset-manager"
And I am an authenticated API client
When I visit "/assets/513a0efbed915d425e000002"
Then I should get a 200 status code
And I should see "120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
@normal
Scenario: check an asset can be served
Given I am testing "static"
When I visit "/media/
513a0efbed915d425e000002/120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
Then I should get a 200 status code
And I should get a content length of "212880"
https://github.com/alphagov/smokey/blob/4c8fe739938e4a4b8b7bb393dfd485efd39dc034/features/asset_manager.feature
BDD ?
Business Language?
Technical Test
web page
Selenium
technical details
@aloyer
15. Feature: Asset Manager
@local-network
@normal
Scenario: check an asset can be loaded
Given I am testing "asset-manager"
And I am an authenticated API client
When I visit "/assets/513a0efbed915d425e000002"
Then I should get a 200 status code
And I should see "120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
@normal
Scenario: check an asset can be served
Given I am testing "static"
When I visit "/media/
513a0efbed915d425e000002/120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
Then I should get a 200 status code
And I should get a content length of "212880"
https://github.com/alphagov/smokey/blob/4c8fe739938e4a4b8b7bb393dfd485efd39dc034/features/asset_manager.feature
BDD ? Technical Test
differences?
@aloyer
different results?
Unclear and non-sustainable
17. Should I use cucumber to write technical tests?
Be pragmatic!
Who will read the scenario?
Are you ready to pay the cucumber overhead?
compared to raw xUnit tests
Do you really contribute to a shared knowledge or do you increase the
business/technical gap?
@aloyer
20. Feature: Asset Manager
@local-network
@normal
Scenario: check an asset can be loaded
Given I am testing "asset-manager"
And I am an authenticated API client
When I visit "/assets/513a0efbed915d425e000002"
Then I should get a 200 status code
And I should see "120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
@normal
Scenario: check an asset can be served
Given I am testing "static"
When I visit "/media/
513a0efbed915d425e000002/120613_Albania_Travel_Advice_WEB_Ed2_jpeg.jpg"
Then I should get a 200 status code
And I should get a content length of "212880"
https://github.com/alphagov/smokey/blob/4c8fe739938e4a4b8b7bb393dfd485efd39dc034/features/asset_manager.feature
Who wrote this ?
@aloyer
21. @MoveToken
Feature: Moving the token over the board
As a player
I want to move to new positions on the board
So that I can get rich and win the game
Scenario Outline: Moving a token after a single throw
Given players token is at starting position <startingPosition>
When player throws die1 <die1> and die2 <die2>
Then players token moves to a new position <newPosition>
Examples:
| startingPosition | die1 | die2 | newPosition |
| 1 | 1 | 2 | 4 |
| 2 | 3 | 4 | 9 |
| 39 | 2 | 2 | 3 |
Forgot the rule ?
https://github.com/xebia/spec-by-example-2014-09-29/blob/4eabded6b22e816f6509a3ecd2c2180b62f4d73d/src/test/resources/monopoly/cucumber/MoveToken.feature
@aloyer
22. @MoveToken
Feature: Moving the token over the board
As a player
I want to move to new positions on the board
So that I can get rich and win the game
Scenario Outline: Moving a token after a single throw
Given players token is at starting position <startingPosition>
When player throws die1 <die1> and die2 <die2>
Then players token moves to a new position <newPosition>
Examples:
| startingPosition | die1 | die2 | newPosition |
| 1 | 1 | 2 | 4 |
| 2 | 3 | 4 | 9 |
| 39 | 2 | 2 | 3 |
Forgot the rule ?
https://github.com/xebia/spec-by-example-2014-09-29/blob/4eabded6b22e816f6509a3ecd2c2180b62f4d73d/src/test/resources/monopoly/cucumber/MoveToken.feature
@aloyer
where is the rule?
The All-In-One Effect
23. @MoveToken
Feature: Moving the token over the board
As a player
I want to move to new positions on the board
So that I can get rich and win the game
Scenario Outline: Moving a token after a single throw
Given players token is at starting position <startingPosition>
When player throws die1 <die1> and die2 <die2>
Then players token moves to a new position <newPosition>
Examples:
| startingPosition | die1 | die2 | newPosition |
| 1 | 1 | 2 | 4 |
| 2 | 3 | 4 | 9 |
| 39 | 2 | 2 | 3 |
Forgot the rule ?
https://github.com/xebia/spec-by-example-2014-09-29/blob/4eabded6b22e816f6509a3ecd2c2180b62f4d73d/src/test/resources/monopoly/cucumber/MoveToken.feature
where is the rule?
the outline effect
@aloyer
The All-In-One Effect
24. Feature: Deal team invitations
1. A "My deals" section with
The deals that I created
The deals on which me or my team are deal leaders
The deals on which me or my team are deal members
2. A "Other deals" section with:
The deals for which me or my team are "other contact"
Scenario Outline: People invited into deal team directly
Given the following deals have been created
| Name | Creator | User leaders | User members | User other contacts |
| AF | John | Charlotte | Peter | Diego |
| KLM | Charlotte | John | Charlotte | Peter |
| IB | Charlotte | Charlotte | John | Peter |
| GW | Diego | Charlotte | Peter | John |
| TAP | Diego | Charlotte | Peter | |
| TUN | Diego | Charlotte | Peter | Matthieu |
When <user> logs into the platform
Then the My deals section should have only <my deals>
And the Other deals section should have only <other deals>
Examples:
| user | my deals | other deals |
| John | AF, KLM, IB | GW |
| Charlotte | AF, KLM, IB, GW, TAP, TUN | <none> |
| Peter | AF, GW, TAP, TUN | KLM, IB |
| Matthieu | <none> | TUN |
| Mariem | <none> | <none> |
Is the rule obvious?
@aloyer
25. Feature: Deal team invitations
1. A "My deals" section with
The deals that I created
The deals on which me or my team are deal leaders
The deals on which me or my team are deal members
2. A "Other deals" section with:
The deals for which me or my team are "other contact"
Scenario Outline: People invited into deal team directly
Given the following deals have been created
| Name | Creator | User leaders | User members | User other contacts |
| AF | John | Charlotte | Peter | Diego |
| KLM | Charlotte | John | Charlotte | Peter |
| IB | Charlotte | Charlotte | John | Peter |
| GW | Diego | Charlotte | Peter | John |
| TAP | Diego | Charlotte | Peter | |
| TUN | Diego | Charlotte | Peter | Matthieu |
When <user> logs into the platform
Then the My deals section should have only <my deals>
And the Other deals section should have only <other deals>
Examples:
| user | my deals | other deals |
| John | AF, KLM, IB | GW |
| Charlotte | AF, KLM, IB, GW, TAP, TUN | <none> |
| Peter | AF, GW, TAP, TUN | KLM, IB |
| Matthieu | <none> | TUN |
| Mariem | <none> | <none> |
Is the rule obvious?ARE
S
26. Feature: Deal team invitations
1. A "My deals" section with
The deals that I created
The deals on which me or my team are deal leaders
The deals on which me or my team are deal members
2. A "Other deals" section with:
The deals for which me or my team are "other contact"
Scenario Outline: People invited into deal team directly
Given the following deals have been created
| Name | Creator | User leaders | User members | User other contacts |
| AF | John | Charlotte | Peter | Diego |
| KLM | Charlotte | John | Charlotte | Peter |
| IB | Charlotte | Charlotte | John | Peter |
| GW | Diego | Charlotte | Peter | John |
| TAP | Diego | Charlotte | Peter | |
| TUN | Diego | Charlotte | Peter | Matthieu |
When <user> logs into the platform
Then the My deals section should have only <my deals>
And the Other deals section should have only <other deals>
Examples:
| user | my deals | other deals |
| John | AF, KLM, IB | GW |
| Charlotte | AF, KLM, IB, GW, TAP, TUN | <none> |
| Peter | AF, GW, TAP, TUN | KLM, IB |
| Matthieu | <none> | TUN |
| Mariem | <none> | <none> |
what if …I belongs to multiple group?
Is the rule obvious?ARE
S
the outline effect
27. Feature: Deal team invitations
1. A "My deals" section with
The deals that I created
The deals on which me or my team are deal leaders
The deals on which me or my team are deal members
2. A "Other deals" section with:
The deals for which me or my team are "other contact"
Scenario Outline: People invited into deal team directly
Given the following deals have been created
| Name | Creator | User leaders | User members | User other contacts |
| AF | John | Charlotte | Peter | Diego |
| KLM | Charlotte | John | Charlotte | Peter |
| IB | Charlotte | Charlotte | John | Peter |
| GW | Diego | Charlotte | Peter | John |
| TAP | Diego | Charlotte | Peter | |
| TUN | Diego | Charlotte | Peter | Matthieu |
When <user> logs into the platform
Then the My deals section should have only <my deals>
And the Other deals section should have only <other deals>
Examples:
| user | my deals | other deals |
| John | AF, KLM, IB | GW |
| Charlotte | AF, KLM, IB, GW, TAP, TUN | <none> |
| Peter | AF, GW, TAP, TUN | KLM, IB |
| Matthieu | <none> | TUN |
| Mariem | <none> | <none> |
what if …I belongs to multiple group?
Is the rule obvious?ARE
S
the outline effect
28. Feature: Deals display order in the home page
As an FO
I need to see my deals ordered in the way that fits my function
In order to have a clear view of the most important or urgent deals.
Clarifications:
Deals should be ordered by expected closing date, the first deals displayed should be the ones with the oldest expected closing date.
For cards display, the oldest cards will be on the top and for cards on the same row, the oldest card will be on the left.
For table display, the oldest cards will on the top.
For deals with the same expected closing date, they should be ordered by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user members | user other contacts | expected closing date | pricing status | Credit approval status | Lso deal code | Cwf request code | stage | confidentiality level |
| Aircraft AF | Air France | 150000000 | Johny | Charlotte | Peter | Diego | May 12, 2016 | true | Not submitted | L0377450 | 2015_07_001105 | Marketing | My Team |
| Aircraft KLM | KLM | 15000000 | Charlotte | Johny | Charlotte | Peter | Jul 11, 2014 | false | In progress | L0377451 | 2015_08_001105 | Bidding | Confidential |
| Aircraft TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte | Peter | Jul 12, 2014 | false | In progress | L0377451 | 2015_09_001105 | Bidding | My Team |
When Charlotte logs into the platform
Then the My deals section must be ordered as Aircraft KLM,Aircraft TUN,Aircraft AF
the A4 rule ?
@aloyer
29. Feature: Deals display order in the home page
As an FO
I need to see my deals ordered in the way that fits my function
In order to have a clear view of the most important or urgent deals.
Clarifications:
Deals should be ordered by expected closing date, the first deals displayed should be the ones with the oldest expected closing date.
For cards display, the oldest cards will be on the top and for cards on the same row, the oldest card will be on the left.
For table display, the oldest cards will on the top.
For deals with the same expected closing date, they should be ordered by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user members | user other contacts | expected closing date | pricing status | Credit approval status | Lso deal code | Cwf request code | stage | confidentiality level |
| Aircraft AF | Air France | 150000000 | Johny | Charlotte | Peter | Diego | May 12, 2016 | true | Not submitted | L0377450 | 2015_07_001105 | Marketing | My Team |
| Aircraft KLM | KLM | 15000000 | Charlotte | Johny | Charlotte | Peter | Jul 11, 2014 | false | In progress | L0377451 | 2015_08_001105 | Bidding | Confidential |
| Aircraft TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte | Peter | Jul 12, 2014 | false | In progress | L0377451 | 2015_09_001105 | Bidding | My Team |
When Charlotte logs into the platform
Then the My deals section must be ordered as Aircraft KLM,Aircraft TUN,Aircraft AF
the A4 rule ?
Feature: Deals display order in the home page
Deals should be ordered by expected closing date, the first deals
displayed should be the ones with the oldest expected closing date.
For deals with the same expected closing date, they should be ordered
by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user memb
| AF | Air France | 150000000 | Johny | Charlotte | Peter
| KLM | KLM | 15000000 | Charlotte | Johny | Charlotte
| TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte
When Charlotte logs into the platform
Then the My deals section must be ordered as KLM, TUN, AF
30. Feature: Deals display order in the home page
As an FO
I need to see my deals ordered in the way that fits my function
In order to have a clear view of the most important or urgent deals.
Clarifications:
Deals should be ordered by expected closing date, the first deals displayed should be the ones with the oldest expected closing date.
For cards display, the oldest cards will be on the top and for cards on the same row, the oldest card will be on the left.
For table display, the oldest cards will on the top.
For deals with the same expected closing date, they should be ordered by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user members | user other contacts | expected closing date | pricing status | Credit approval status | Lso deal code | Cwf request code | stage | confidentiality level |
| Aircraft AF | Air France | 150000000 | Johny | Charlotte | Peter | Diego | May 12, 2016 | true | Not submitted | L0377450 | 2015_07_001105 | Marketing | My Team |
| Aircraft KLM | KLM | 15000000 | Charlotte | Johny | Charlotte | Peter | Jul 11, 2014 | false | In progress | L0377451 | 2015_08_001105 | Bidding | Confidential |
| Aircraft TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte | Peter | Jul 12, 2014 | false | In progress | L0377451 | 2015_09_001105 | Bidding | My Team |
When Charlotte logs into the platform
Then the My deals section must be ordered as Aircraft KLM,Aircraft TUN,Aircraft AF
the A4 rule ?
Feature: Deals display order in the home page
Deals should be ordered by expected closing date, the first deals
displayed should be the ones with the oldest expected closing date.
For deals with the same expected closing date, they should be ordered
by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user memb
| AF | Air France | 150000000 | Johny | Charlotte | Peter
| KLM | KLM | 15000000 | Charlotte | Johny | Charlotte
| TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte
When Charlotte logs into the platform
Then the My deals section must be ordered as KLM, TUN, AF
31. Feature: Deals display order in the home page
As an FO
I need to see my deals ordered in the way that fits my function
In order to have a clear view of the most important or urgent deals.
Clarifications:
Deals should be ordered by expected closing date, the first deals displayed should be the ones with the oldest expected closing date.
For cards display, the oldest cards will be on the top and for cards on the same row, the oldest card will be on the left.
For table display, the oldest cards will on the top.
For deals with the same expected closing date, they should be ordered by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user members | user other contacts | expected closing date | pricing status | Credit approval status | Lso deal code | Cwf request code | stage | confidentiality level |
| Aircraft AF | Air France | 150000000 | Johny | Charlotte | Peter | Diego | May 12, 2016 | true | Not submitted | L0377450 | 2015_07_001105 | Marketing | My Team |
| Aircraft KLM | KLM | 15000000 | Charlotte | Johny | Charlotte | Peter | Jul 11, 2014 | false | In progress | L0377451 | 2015_08_001105 | Bidding | Confidential |
| Aircraft TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte | Peter | Jul 12, 2014 | false | In progress | L0377451 | 2015_09_001105 | Bidding | My Team |
When Charlotte logs into the platform
Then the My deals section must be ordered as Aircraft KLM,Aircraft TUN,Aircraft AF
the A4 rule ?
Feature: Deals display order in the home page
Deals should be ordered by expected closing date, the first deals
displayed should be the ones with the oldest expected closing date.
For deals with the same expected closing date, they should be ordered
by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user memb
| AF | Air France | 150000000 | Johny | Charlotte | Peter
| KLM | KLM | 15000000 | Charlotte | Johny | Charlotte
| TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte
When Charlotte logs into the platform
Then the My deals section must be ordered as KLM, TUN, AF
B
32. Feature: Deals display order in the home page
As an FO
I need to see my deals ordered in the way that fits my function
In order to have a clear view of the most important or urgent deals.
Clarifications:
Deals should be ordered by expected closing date, the first deals displayed should be the ones with the oldest expected closing date.
For cards display, the oldest cards will be on the top and for cards on the same row, the oldest card will be on the left.
For table display, the oldest cards will on the top.
For deals with the same expected closing date, they should be ordered by deal name
Scenario: Deals display order
Given the following deals
| name | client name | total amount | creator | user leaders | user members | user other contacts | expected closing date | pricing status | Credit approval status | Lso deal code | Cwf request code | stage | confidentiality level |
| Aircraft AF | Air France | 150000000 | Johny | Charlotte | Peter | Diego | May 12, 2016 | true | Not submitted | L0377450 | 2015_07_001105 | Marketing | My Team |
| Aircraft KLM | KLM | 15000000 | Charlotte | Johny | Charlotte | Peter | Jul 11, 2014 | false | In progress | L0377451 | 2015_08_001105 | Bidding | Confidential |
| Aircraft TUN | Tunisair | 16000000 | Johny | Charlotte | Charlotte | Peter | Jul 12, 2014 | false | In progress | L0377451 | 2015_09_001105 | Bidding | My Team |
When Charlotte logs into the platform
Then the My deals section must be ordered as Aircraft KLM,Aircraft TUN,Aircraft AF
the A4 rule ?
Feature: Deals display order in the home page
Deals should be ordered by expected closing date, the first deals
displayed should be the ones with the oldest expected closing date.
For deals with the same expected closing date, they should be ordered
by deal name
Scenario: Deals display order
Given the following deals
| name | expected closing date |
| AF | May 12, 2016 |
| KLM | Jul 11, 2014 |
| TUN | Jul 12, 2014 |
When Charlotte logs into the platform
Then the My deals section must be ordered as KLM, TUN, AF
O
37. Scenario should be written using the Business Language
Together
What is the intent?
Have I understood the expected behavior?
Do I clearly understand the rule when reading a scenario?
How many rules are exposed within the scenario?
@aloyer
Try to limit to One rule per scenario
38. What level of details ?
Writing better scenario
@aloyer
39. @BuyingProperties
Feature: Buying properties
As a player
I want to buy properties
So that I can ask rent when my opponents land on it
Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
Scenario: No sufficient funds
Given I land on unowned property
And my funds are not sufficient
Then I am not able to buy the property
https://github.com/xebia/workshop-agile-testing/blob/8705e3f93270662285cd9c8ec8c24e5ac957f3ed/src/test/resources/features/BuyingProperties.feature
Enough details ?
@aloyer
40. @BuyingProperties
Feature: Buying properties
As a player
I want to buy properties
So that I can ask rent when my opponents land on it
Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
Scenario: No sufficient funds
Given I land on unowned property
And my funds are not sufficient
Then I am not able to buy the property
https://github.com/xebia/workshop-agile-testing/blob/8705e3f93270662285cd9c8ec8c24e5ac957f3ed/src/test/resources/features/BuyingProperties.feature
Enough details ? too declarative
which one?
what does it mean?
« Pay »
is an outcome?
Choose?
@aloyer
41. Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
@aloyer
42. Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
@default_properties
Scenario: Buying property
Given I land on unowned "west" property
And my funds are 2000
When I buy the property
And I pay the printed price
Then I should receive the "west" title deed
And my funds should be decreased to 1800
@aloyer
43. Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
to pay is an action (when)
not an outcome (then) value can be changed
@default_properties
Scenario: Buying property
Given I land on unowned "west" property
And my funds are 2000
When I buy the property
And I pay the printed price
Then I should receive the "west" title deed
And my funds should be decreased to 1800
can help to project to other case
Can it always be applied?
@aloyer
44. Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
@default_properties
Scenario: Buying property
Given I land on unowned "west" property
And my funds are 2000
When I buy the property
And I pay the printed price
Then I should receive the "west" title deed
And my funds should be decreased to 1800
@Then("^my funds should be (?:decreased to |increased to )?(d+)$")
public void my_funds_should_be_(int amount)
@aloyer
45. Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
@default_properties
Scenario: Default properties - by tag
Then the available properties should be at least:
| name | price |
| east | 150 |
| west | 200 |
| north | 100 |
| south | 40 |
@default_properties
Scenario: Buying property
Given I land on unowned "west" property
And my funds are 2000
When I buy the property
And I pay the printed price
Then I should receive the "west" title deed
And my funds should be decreased to 1800
@aloyer
46. Scenario: Default properties - explicit
Given the default properties are used
Then the available properties should be at least:
| name | price |
| east | 150 |
| west | 200 |
| north | 100 |
| south | 40 |
Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
@default_properties
Scenario: Default properties - by tag
Then the available properties should be at least:
| name | price |
| east | 150 |
| west | 200 |
| north | 100 |
| south | 40 |
@default_properties
Scenario: Buying property
Given I land on unowned "west" property
And my funds are 2000
When I buy the property
And I pay the printed price
Then I should receive the "west" title deed
And my funds should be decreased to 1800
@aloyer
47. Scenario: Buying property
Given I land on unowned property
And my funds are sufficient
When I choose to buy the property
Then I pay the printed price
And I receive the title deed
@default_properties @default_player
Scenario: Buying property
Given I land on unowned "west" property that cost 180
When I choose to buy the property
And I pay the printed price
Then I should receive the "west" title deed
And my funds should be decreased by 180
@default_properties
Scenario: Buying property
Given I land on unowned "west" property
And my funds are 2000
When I buy the property
And I pay the printed price
Then I should receive the "west" title deed
And my funds should be decreased to 1800
@aloyer
48. Scenario: Create a Stock option
Given the following option:
| Property | Value |
| delivery | Cash |
| bo strike | no |
| floor | 0 |
| forex constat | - |
| forex constat date | 1970-JAN-01 |
| forex start date | 1970-JAN-01 |
| guaranteed currency | EUR |
| guaranteed rate | 0 |
| initial spot | 0 |
...
| maturity | 2020-FEB-05 |
| option quotity | 1 |
| strike | 2500 |
| underlying id | SOCIETE-GLE_X |
| underlying type | Stock |
And the option’s restriking infos is:
| Property | Value |
| floating rate | no |
| fixed rate | no |
...
| last update | <now> |
| first trading date | <now> |
| rate offset | 0.0 |
When I create the option
Then the option id should be filled in
Scenario: Create a Fund option
Given the following option:
| Property | Value |
| delivery | Cash |
| bo strike | no |
| floor | 0 |
| forex constat | - |
| forex constat date | 1970-JAN-01 |
| forex start date | 1970-JAN-01 |
| guaranteed currency | EUR |
| guaranteed rate | 0 |
| initial spot | 0 |
...
| maturity | 2020-FEB-05 |
| option quotity | 1 |
| strike | 2500 |
| underlying id | SOCIETE-GLE_X |
| underlying type | Fund |
And the option’s restriking infos is:
| Property | Value |
| floating rate | no |
| fixed rate | no |
...
| last update | <now> |
| first trading date | <now> |
| rate offset | 0.0 |
When I create the option
Then the option id should be filled in
~53 properties
~20 properties
@aloyer
Too much details ?
49. Scenario: Create an external OTC deal
Given the following option:
| Property | Value |
| delivery | Cash |
| bo strike | no |
| floor | 0 |
| forex constat | - |
| forex constat date | 1970-JAN-01 |
| forex start date | 1970-JAN-01 |
| guaranteed currency | EUR |
| guaranteed rate | 0 |
| initial spot | 0 |
...
| maturity | 2020-FEB-05 |
| option quotity | 1 |
| strike | 2500 |
| underlying id | SOCIETE-GLE_X |
| underlying type | Stock |
And the option’s restriking infos is:
| Property | Value |
| floating rate | no |
| fixed rate | no |
...
| last update | <now> |
| first trading date | <now> |
| rate offset | 0.0 |
And an external OTC deal:
| Property | Value |
| category | OTC |
| delivery | - |
| initial price | 0 |
| internal market | yes |
| last update | <now> |
...
| quantity | 6000 |
| remaining quantity | 6000 |
And the deal’s counter part is:
| Property | Value |
| confirm mode | ST |
| market maker | Nefertiti |
...
And the deal’s sales part is:
| Property | Value |
| accounting center | - |
| derogation | no |
...
And the deal’s collateral is:
| Property | Value |
| IA | no |
| currency | - |
...
When I create the option
And I create the deal with the created option
Then the deal id should be filled in
~58
~5
~58
~22
@aloyer
Too much details ?
50. Scenario: Standard option
Given a standard option with no specifics
Then the option should have the following properties:
| Property | Value |
| delivery | Cash |
| bo strike | no |
| floor | 0 |
| forex constat | - |
| forex constat date | 1970-JAN-01 |
| forex start date | 1970-JAN-01 |
| guaranteed currency | EUR |
| guaranteed rate | 0 |
| initial spot | 0 |
...
| maturity | 2020-FEB-05 |
| option quotity | 1 |
| strike | 2500 |
| underlying id | SOCIETE-GLE_X |
| underlying type | Stock |
| restriking infos | <standard> |
~53 properties
Scenario: Standard option’s restriking infos
Given a standard option’s restriking infos
Then the option’s restriking infos should be:
| Property | Value |
| floating rate | no |
| fixed rate | no |
...
| last update | <now> |
| first trading date | <now> |
| rate offset | 0.0 |
~20
@aloyer
Too much details ? use persona
Persona is checked
AND documented
51. Scenario: Create a Stock option
Given the following option:
| Property | Value |
| delivery | Cash |
| bo strike | no |
| floor | 0 |
| forex constat | - |
| forex constat date | 1970-JAN-01 |
| forex start date | 1970-JAN-01 |
| guaranteed currency | EUR |
| guaranteed rate | 0 |
| initial spot | 0 |
...
| maturity | 2020-FEB-05 |
| option quotity | 1 |
| strike | 2500 |
| underlying id | SOCIETE-GLE_X |
| underlying type | Stock |
And the option’s restriking infos is:
| Property | Value |
| floating rate | no |
| fixed rate | no |
...
| last update | <now> |
| first trading date | <now> |
| rate offset | 0.0 |
When I create the option
Then the option id should be filled in
Scenario: Create a Stock Option
Given a standard option with the following specifics:
| underlying type | underlying id |
| Stock | SOCIETE-GLE_X |
When I create the option
Then the option id should be filled in
@aloyer
Too much details ? use persona
58. @aloyer
# language: fr
Fonctionnalité:
@reseau_simplifié
Scénario: Obtenir une feuille de l'itinéraire par d'arrivée
2 Place de la Défense: 48.893195, 2.238945
Etant donné que je veux aller de "48.893195, 2.238945" au "25 rue du Louvre, Paris"
Et que je veux partir à 9h30 avec les options suivantes:
| X | Transport en commun |
| X | Le plus rapide |
| | Le moins de changement |
Alors je devrais obtenir la feuille de route suivante:
| Type | Heure | Localisation | Transport | Durée | Distance |
| départ | 9h30 | 2 Place de la Défense | Pied | ~5min | 400m |
| - | 9h37 | La Défense | RER A vers Vincennes | 10min | - |
| - | 9h47 | Châtelet - Les Halles | Pied | ~7min | 550m |
| arrivée | 9h54 | 25 rue du Louve | - | - | - |
59. @aloyer
# language: fr
Fonctionnalité:
Scénario: Rer A dans le réseau de transport simplifié
Etant donné le réseau de transport simplifié "Parisien"
Alors le Rer A devrait passer toutes les 10mins à "la Défense" à partir de 5h37
Alors les temps de transport cumulés depuis "la Défense" devraient être:
| Charles de Gaulle Etoile | 5min |
| Auber | 7min |
| Chatelet les Halles | 10min |
@reseau_simplifié
Scénario: Obtenir une feuille de l'itinéraire par d'arrivée
2 Place de la Défense: 48.893195, 2.238945
Etant donné que je veux aller de "48.893195, 2.238945" au "25 rue du Louvre, Paris"
Et que je veux partir à 9h30 avec les options suivantes:
| X | Transport en commun |
| X | Le plus rapide |
| | Le moins de changement |
Alors je devrais obtenir la feuille de route suivante:
| Type | Heure | Localisation | Transport | Durée | Distance |
| départ | 9h30 | 2 Place de la Défense | Pied | ~5min | 400m |
| - | 9h37 | La Défense | RER A vers Vincennes | 10min | - |
| - | 9h47 | Châtelet - Les Halles | Pied | ~7min | 550m |
| arrivée | 9h54 | 25 rue du Louve | - | - | - |
60. To be continued…
@aloyer
# language: fr
Fonctionnalité:
Scénario: Le métro 1 dans le réseau de transport simplifié
Etant donné le réseau de transport simplifié "Parisien"
Alors le métro 1 devrait passer dans chaque station toutes les 5mins à partir de 6h00
Scénario: Rer A dans le réseau de transport simplifié
Etant donné le réseau de transport simplifié "Parisien"
Alors le Rer A devrait passer toutes les 10mins à "la Défense" à partir de 5h37
Alors les temps de transport cumulés depuis "la Défense" devraient être:
| Charles de Gaulle Etoile | 5min |
| Auber | 7min |
| Chatelet les Halles | 10min |
@reseau_simplifié
Scénario: Obtenir une feuille de l'itinéraire par d'arrivée
2 Place de la Défense: 48.893195, 2.238945
Etant donné que je veux aller de "48.893195, 2.238945" au "25 rue du Louvre, Paris"
Et que je veux partir à 9h30 avec les options suivantes:
| X | Transport en commun |
| X | Le plus rapide |
| | Le moins de changement |
Alors je devrais obtenir la feuille de route suivante:
| Type | Heure | Localisation | Transport | Durée | Distance |
| départ | 9h30 | 2 Place de la Défense | Pied | ~5min | 400m |
| - | 9h37 | La Défense | RER A vers Vincennes | 10min | - |
| - | 9h47 | Châtelet - Les Halles | Pied | ~7min | 550m |
| arrivée | 9h54 | 25 rue du Louve | - | - | - |
63. Remove ambiguities but keep scenario short
Am I concrete enough on the expected behavior?
Signal vs noise ratio?
What if the scenario has more details?
@aloyer
Rely on Persona/Defaults…
Do Scenario Review…
64. is NOT About is About
BDD
!
"
KLa tool for test automation communication
acceptance criteriaL K behavior