This document discusses acceptance tests and the Gherkin language. It provides an overview of user stories and acceptance criteria. It then demonstrates how to write Gherkin features and scenarios using the Given, When, Then syntax. The document compares imperative and declarative styles for writing scenarios and provides examples of each. It also discusses resources for learning more about specification by example, Gherkin syntax, and test automation.
Presentation from the developer track at I Love APIs London 2016 featuring Ozan Seymen, Apigee and Sean Davis, Apigee.
This presentation focuses on API testing best practices using open source tools and frameworks. Ozan Seyman and Sean Davis of Apigee will cover API testing methodologies including behaviour driven development and test driven development. Join to learn API testing best practices for Apigee development, how to apply popular testing methodologies in API development lifecycle, and to see live demonstrations of popular open source testing tools (cucumber, gherkin, apickli and others).
Real-time hypermedia APIs: Exploring the fundamentals of how we build network...Apigee | Google Cloud
Presentation from the developer track at I Love APIs London 2016 featuring Tom Christie, DabApps.
What problems are we running into building Web APIs today? How is the API landscape changing, and how can we build systems that communicate in more meaningful and robust ways?
* REST - Taking a look at the pain points today.
* API schemas - What they are and why they're valuable.
* Hypermedia - Why it hasn't yet fully lived up to its promises, and how it still might.
* Realtime - Can we build realtime interfaces in a more structured way?
This presentation takes a practical look at combining the best of REST, Hypermedia, and Realtime and demonstrates how to build self-describing APIs, how to use generic client libraries to communicate with these interfaces, and how to extend this to building interactive realtime services.
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.
Annotated slides from my "Behavior Driven Development" course. Released under Creative Commons share-alike, commercial and derivatives allowed: http://creativecommons.org/licenses/by-sa/3.0/
Presentation from the developer track at I Love APIs London 2016 featuring Ozan Seymen, Apigee and Sean Davis, Apigee.
This presentation focuses on API testing best practices using open source tools and frameworks. Ozan Seyman and Sean Davis of Apigee will cover API testing methodologies including behaviour driven development and test driven development. Join to learn API testing best practices for Apigee development, how to apply popular testing methodologies in API development lifecycle, and to see live demonstrations of popular open source testing tools (cucumber, gherkin, apickli and others).
Real-time hypermedia APIs: Exploring the fundamentals of how we build network...Apigee | Google Cloud
Presentation from the developer track at I Love APIs London 2016 featuring Tom Christie, DabApps.
What problems are we running into building Web APIs today? How is the API landscape changing, and how can we build systems that communicate in more meaningful and robust ways?
* REST - Taking a look at the pain points today.
* API schemas - What they are and why they're valuable.
* Hypermedia - Why it hasn't yet fully lived up to its promises, and how it still might.
* Realtime - Can we build realtime interfaces in a more structured way?
This presentation takes a practical look at combining the best of REST, Hypermedia, and Realtime and demonstrates how to build self-describing APIs, how to use generic client libraries to communicate with these interfaces, and how to extend this to building interactive realtime services.
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.
Annotated slides from my "Behavior Driven Development" course. Released under Creative Commons share-alike, commercial and derivatives allowed: http://creativecommons.org/licenses/by-sa/3.0/
Agile Requirements are lightweight by design, so what can you do as the BA to convey requirements in a concise yet comprehensive way? How can you include real examples in your requirements to increase clarity and reduce ambiguity when working with your team?
In this presentation, Rebecca Halstead shares how to incorporate examples in your requirements as a way to encourage collaboration and build a shared understanding about the acceptance criteria. Rebecca delivered this presentation on Agile Requirements at the International Institute of Business Analysis, DC Chapter meeting on March 20, 2014.
This presentation has been given at ScanDev 2013 and XP 2013. It's also going to be given at NDC 2013 later this week.
The key message is that there is a huge amount in common between the various example-based development techniques. The differences are minor and mainly due to the background of the technique and its intended audience.
Prioritizing user stories is a fundamental aspect of agile project management. It involves determining the order in which user stories should be addressed based on their importance, value to the customer, and other relevant criteria. Prioritization ensures that the team focuses on delivering the most critical and valuable features early in the development process
User Stories Writing - Codemotion 2013Fabio Armani
Stefano Leli (Freelance) - Fabio Armani (OpenWare)
Scrivere user stories dovrebbe essere facile...almeno in teoria. In realtà nella pratica ci troviamo troppo spesso a combattere con storie vaghe o troppo tecniche, storie che non possono essere testate o addirittura che non portano alcun valore. In questo workshop cercheremo assieme di comprendere la differenza tra requisiti funzionali e User Story, tra User Story e Use Case, mediante dei case study.
User stories writing - Codemotion 2013Stefano Leli
Stefano Leli (Freelance) - Fabio Armani (OpenWare)
Scrivere user stories dovrebbe essere facile...almeno in teoria. In realtà nella pratica ci troviamo troppo spesso a combattere con storie vaghe o troppo tecniche, storie che non possono essere testate o addirittura che non portano alcun valore. In questo workshop cercheremo assieme di comprendere la differenza tra requisiti funzionali e User Story, tra User Story e Use Case, mediante dei case study.
IT teams today are under constant pressure to deliver more value sooner, and Behaviour Driven Development (BDD) is one of the more effective ways to help teams deliver the high quality software that their business needs. When they adopt BDD, many teams look to tools like Cucumber to help them. But BDD isn’t simply about picking up a new tool.
In fact, there is a lot more to BDD than Given/When/Then and tools like Cucumber, and both can be misused. In this talk, we will take a step back and look at the bigger picture, and learn why using Gherkin at the wrong time, or for the wrong purpose, may be holding you back.
Behaviour-Driven Development (BDD) is a game changer for the whole team! Behaviour Driven Development is a powerful collaboration technique that can empower teams to deliver higher value features to the business faster and more effectively. More than just a testing technique, BDD is both a collaboration and a verification tool, and a vital step on the road to Continuous Delivery.
Selling the Carrot, or: how to convert by balancing value, cost and perceptionRupert Platz
### A small, useful framework for more relevance, motivation, and fewer obstacles in UX design
Dear people on the internet, we want you to give us something:
Your time. Your interest. Your concentration. Your data. Your content. Your money , Your loyalty. You name it.
In return, you get great products, services, content or experiences from us. But do you even need what we offer you? Is it worth the price we ask for it? And if so, how can we convince you of that?
To devise powerful hypotheses for conversion optimization (or, generally speaking, to get people to do what we actually want them to do without manipulating or fooling them), I came up with what I call the *value-cost-persuasion model.* I find it useful in my daily work to this day.
Learn how to divide work using the "vertical slicing" strategy.
This is particularly useful for Scrum teams to split backlog items allowing iterative and incremental product delivery.
Qual vs. Quant: Using data to Build Better Productsuxpin
You'll learn:
- How to use quantitative and qualitative data for decisionmaking
- How to create and validate your hypotheses
- How to evaluate solutions to product problems
I've presented this multiple times at various Meetup Groups, Organizations, and Conferences. In this session I take the user through the journey of writing clearly communicated requirements while showing the importance of collaboration to achieve this.
Agile Requirements are lightweight by design, so what can you do as the BA to convey requirements in a concise yet comprehensive way? How can you include real examples in your requirements to increase clarity and reduce ambiguity when working with your team?
In this presentation, Rebecca Halstead shares how to incorporate examples in your requirements as a way to encourage collaboration and build a shared understanding about the acceptance criteria. Rebecca delivered this presentation on Agile Requirements at the International Institute of Business Analysis, DC Chapter meeting on March 20, 2014.
This presentation has been given at ScanDev 2013 and XP 2013. It's also going to be given at NDC 2013 later this week.
The key message is that there is a huge amount in common between the various example-based development techniques. The differences are minor and mainly due to the background of the technique and its intended audience.
Prioritizing user stories is a fundamental aspect of agile project management. It involves determining the order in which user stories should be addressed based on their importance, value to the customer, and other relevant criteria. Prioritization ensures that the team focuses on delivering the most critical and valuable features early in the development process
User Stories Writing - Codemotion 2013Fabio Armani
Stefano Leli (Freelance) - Fabio Armani (OpenWare)
Scrivere user stories dovrebbe essere facile...almeno in teoria. In realtà nella pratica ci troviamo troppo spesso a combattere con storie vaghe o troppo tecniche, storie che non possono essere testate o addirittura che non portano alcun valore. In questo workshop cercheremo assieme di comprendere la differenza tra requisiti funzionali e User Story, tra User Story e Use Case, mediante dei case study.
User stories writing - Codemotion 2013Stefano Leli
Stefano Leli (Freelance) - Fabio Armani (OpenWare)
Scrivere user stories dovrebbe essere facile...almeno in teoria. In realtà nella pratica ci troviamo troppo spesso a combattere con storie vaghe o troppo tecniche, storie che non possono essere testate o addirittura che non portano alcun valore. In questo workshop cercheremo assieme di comprendere la differenza tra requisiti funzionali e User Story, tra User Story e Use Case, mediante dei case study.
IT teams today are under constant pressure to deliver more value sooner, and Behaviour Driven Development (BDD) is one of the more effective ways to help teams deliver the high quality software that their business needs. When they adopt BDD, many teams look to tools like Cucumber to help them. But BDD isn’t simply about picking up a new tool.
In fact, there is a lot more to BDD than Given/When/Then and tools like Cucumber, and both can be misused. In this talk, we will take a step back and look at the bigger picture, and learn why using Gherkin at the wrong time, or for the wrong purpose, may be holding you back.
Behaviour-Driven Development (BDD) is a game changer for the whole team! Behaviour Driven Development is a powerful collaboration technique that can empower teams to deliver higher value features to the business faster and more effectively. More than just a testing technique, BDD is both a collaboration and a verification tool, and a vital step on the road to Continuous Delivery.
Selling the Carrot, or: how to convert by balancing value, cost and perceptionRupert Platz
### A small, useful framework for more relevance, motivation, and fewer obstacles in UX design
Dear people on the internet, we want you to give us something:
Your time. Your interest. Your concentration. Your data. Your content. Your money , Your loyalty. You name it.
In return, you get great products, services, content or experiences from us. But do you even need what we offer you? Is it worth the price we ask for it? And if so, how can we convince you of that?
To devise powerful hypotheses for conversion optimization (or, generally speaking, to get people to do what we actually want them to do without manipulating or fooling them), I came up with what I call the *value-cost-persuasion model.* I find it useful in my daily work to this day.
Learn how to divide work using the "vertical slicing" strategy.
This is particularly useful for Scrum teams to split backlog items allowing iterative and incremental product delivery.
Qual vs. Quant: Using data to Build Better Productsuxpin
You'll learn:
- How to use quantitative and qualitative data for decisionmaking
- How to create and validate your hypotheses
- How to evaluate solutions to product problems
I've presented this multiple times at various Meetup Groups, Organizations, and Conferences. In this session I take the user through the journey of writing clearly communicated requirements while showing the importance of collaboration to achieve this.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
5. User Story Template
As a [type of user], I can [goal] so that
[value]
Title:
Notes:
Assumptions:
Estimate:
Constraints:
As a [type of user], I want [goal] so that
[value]
Title:
Notes:
Assumptions:
Estimate:
Constraints:
Priority:
6. Example
As a [type of user], I can [goal] so
that [value]
Title:
Notes:
Assumptions:
Estimate:
Constraints:
As a coffee shop visitor, I can checkout using my
credit card so that I can purchase a selected
beverage.
Checkout Using Credit Card
Notes: Support mc, visa, amex
25
Constraint: Must use Chase payment service
13 pts
7. Acceptance Criteria
As a [type of user], I can [goal] so
that [value]
Title:
Notes:
Assumptions:
Constraints:
Test with valid mc, visa, amex passes
Test with valid other cards fails
Test with expired card fails
Test with invalid cvv fails
Test with invalid zip fails
Checkout Using Credit Card
9. The essence of building
a program is debugging
the specification.
Frederick Brooks (1987)
10. • Specification by Example
• Executable Specifications
• Scenarios
• Automated Acceptance Tests (AAT)
• Behavior Driven Development (BDD)
• Acceptance Test Driven Development
(ATDD)
• Gherkin Syntax
Common Terminology
Requirements using Examples
11. Elements of this Technique
Tooling
Documentation
Collaboration
18
16. gher·kin
ˈgərkin/
noun
1. a small variety of cucumber, or a young green
cucumber used for pickling.
Gherkin
Business readable, domain specific language
17. • Given < situation >
• When < action >
• Then < expected result >
Gherkin syntax
25
19. Background:
You are developing an
online ordering website
for a local company that
grows, harvests and sells
botanicals directly to
customers.
Feature:
Calculate customer order
Feature
1. Feature 2. User Story 3. Collaborate 4. Scenarios 5. Examples
22. User Story:
As a customer, I want to review shipping costs in
my shopping cart before checking out, so that I
can see if I will receive free shipping.
User Story
1. Feature 2. User Story 3. Collaborate 4. Scenarios 5. Examples
23. Collaborate
31
How do I
describe
what I
want?
How do I
validate
that this
work is
done?
How do I
code this
feature?
What are
the details
of this
feature?
1. Feature 2. User Story 3. Collaborate 4. Scenarios 5. Examples
24. Feature: Determine shipping rates
Scenario 1: Standard Shipping Rate
Scenario 2: Free Shipping Rate
Creating Acceptance Tests
32
1. Feature 2. User Story 3. Collaborate 4. Scenarios 5. Examples
25. Scenario: Standard
Shipping Rate
Given I am a customer
And my order amount is
$49.99
When I view my cart
Then I see that shipping
costs are $3.99
Scenarios
Scenario: Free Shipping
Rate
Given I am a customer
And my order amount is
$50.00
When I view my cart
Then I see that shipping
costs are $0.00
26. Scenario Outlines
Feature: Determine shipping rate
Scenario Outline: Standard shipping rate
• Given that I am a customer
• And my order amount is <order amount>
• When I view my cart
• Then I see that shipping costs are <shipping cost>
Examples:
| order amount | shipping cost
| $49.99 | $3.99
| $50.00 | $0.00
| $75.00 | $0.00
28. • Imperative
– Descriptive
– Step-by-step instructions
– Heavier reliance on the user interface
• Declarative
– Informative
– Abstracts details
– Limits reference to specific user interface
behavior
Gherkin Styles
29. Feature: Validate user
Scenario: User with valid credentials returns to order
Imperative (Narrative)
Given I am an unauthenticated user
And I am on the login page
And I enter a valid name in the Name field
And I enter the corresponding password in the Password field
When I select the Login button
Then I should see the welcome page
Imperative Style
Implementation Detail – what if
decide to use Token-based
authentication or single sign-on?
UI Detail – what if the user interface
changes and you select name from
a drop-down list or select a radio
button?
30. Feature: Validate user
Scenario: User with valid credentials returns to order
Declarative (Informative)
Given I am an unauthenticated user
And I am on the login page
When I submit valid credentials
Then I should see the welcome page
Declarative Style
31. Feature: Validate user
Scenario: User with valid credentials returns to order
Side-by-side Comparison
Imperative (Narrative) Declarative (Informative)
Given I am an unauthenticated user
And I am on the login page
And I enter a valid name in the Name field
And I enter the corresponding password in
the Password field
When I select the Login button
Then I should see the welcome page
Given I am an unauthenticated user
And I am on the login page
When I submit valid credentials
Then I should see the welcome page
32. — If the user interface is constantly changing, it is better to
use imperative.
— Declarative is easier to maintain.
— Developers prefer the imperative style.
— If a stakeholder is concerned about the user’s
interaction experience, use imperative.
— Declarative specifies implementation details.
True or False?
36. • Specification by Example by Gojko Adzic
http://www.amazon.com/Specification-Example-Successful-Deliver-
Software/dp/1617290084
• Writing Gherkin:
http://behat.readthedocs.org/en/v2.5/guides/1.gherkin.html
• The Cucumber Book by Matt Wynne
http://www.amazon.com/Cucumber-Book-Behaviour-Driven-
Development-
Programmers/dp/1934356808/ref=sr_1_1?s=books&ie=UTF8&qid=
1421707079&sr=1-1&keywords=cucumber
Resources
Do you have to use user stories? What is the advantage?
notecard; concise
Focus on value, output over tasks
Can be moved or prioritized easily
Written description used for planning
Conversation to flesh out details
Tests to determine completeness
[Activity] Have the group work on white paper and rank in order of importnatce
How isn’t on a user story
What is required?
Only use what it takes for team to accomplish
Default to none and add as required
What if part of contract, etc?
Project documentation but not part of user story
Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements.
Executable Specifications – are requirements which can be written as tests; primarily used in TDD
Scenario - a postulated sequence or development of events.
AAT – automated testing conducted to determine if the requirements of a specification or contract are met.
BDD – a process based on TDD; combine TDD approach with domain knowledge. An idea about how software can be managed by both business and technical insight
ATDD – a development methodology based on communication between the business customers, the developers, and the testers
Gherkin Syntax – business readable, domain specific language
Building the right thing – this is where BAs can provide the most value through requirements.
Building the thing right – these are s/w development best practices, such as automated test, peer code reviews, etc.
Variation of the graphic taken from: http://www.nataliehanson.com/2013/07/19/agile-implications-for-ux-research
Makes abstract concepts more relatable
Minimizes misinterpretation
Highlights success, alternative and exception cases
There is a growing body of evidence proving that optimism bias represents one of the biggest single causes of risk for megaproject overspend
http://www.ted.com/talks/tali_sharot_the_optimism_bias
Flexible: can be used manually or for a variety of development tools to automate
User centric: focuses on actions and outcomes not design specific
Light weight: does not require have documentation but focuses on building the thing right
A user story comprises of one or more Scenarios, each of which represents a concrete example of the behavior of the system.
[Activity] Group Discussion – Describe how you would make this user story testable. What would be the conditions of satisfaction? Ask for a class volunteer to serve as the Product Owner and address any questions about the business rules/features. Write out on flip chart.
Lack of slide space – write out on flipchart how can also have examples with the “Better Example”. Show different sales tax amounts by state.
Automation takes time and effort
Separate software development project
Balance level of effort to automate with value provided
Prioritize test automation efforts
Management support required
Return on investment
More efficient software delivery team
Higher quality software