It seems as if the agile methods have lots of DD’s going on. BDD – Behavior Driven Development, ATDD – Acceptance Test Driven Development and several others. Adopting BDD allows for testing to be done as early as possible in the software development life cycle, promoting accurate testing, ensuring proper test coverage, and supporting the introduction of automation testing. One challenge is understanding the characteristics and benefits of “driven” approaches. Join Josh Eastman to discover ways that BDD can be employed to describe and test system behavior, user stories, and user acceptance. Josh will discuss Gherkin - the language to capture behavior descriptions and automation with cucumber and explore the four major values of BDD to ensure product quality, while driving time and cost savings. Leave this session with a ideas to reduce the ambiguity and miscommunications that occurs during development and testing.
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
Behavior Driven Development—A Guide to Agile Practices
1. T6
Choosing Test Approaches
10/19/2017 11:30:00 AM
Behavior Driven Development (BDD) -
A Guide to Agile Practices
Presented by:
Josh Eastman
Experis
Brought to you by:
350 Corporate Way, Suite 400, Orange Park, FL 32073
888-‐268-‐8770 ·∙ 904-‐278-‐0524 - info@techwell.com - https://www.techwell.com/
2. Josh Eastman
Experis
Josh Eastman is an Automation Architect for the Testing Practice of Experis IT
Development Solutions, a Global IT Services Company. Josh creates automation
solutions for Experis’ client portfolio and was a recent speaker at the Agile Testing and
Test Automation Summit in Seattle. Holding such roles as senior developer, test lead,
automation program Lead, and automation architect, Josh has designed and
implemented various automation frameworks that have proven to be effective in
testing web applications, mobile applications, mainframe systems, web services, and
databases. He has also successfully integrated many third-party tools and testing
software that are most relevant in the QA and testing industry today.
3. 10/9/2017
1
Behavior DrivenBehavior Driven
Development (BDD)
Guide to Agile Practices
Monday, October 09, 2017
Presenter:
Joshua Eastman –
Automation Architect, Delivery Specialist
Behavior Driven Development (BDD)
Guide to Agile Practices
• Group ExerciseGroup Exercise
• Foundational Understandings
– Agile
– The DD’s
– What is BDD?
– Automation Strategies
Experis | Monday, October 09, 2017 2
• How Does BDD Increase Quality
• Agile Workflow
4. 10/9/2017
2
Group Exercise
• Imagine you are a SQA manager
Y h 25 di t t (QA A l t )
Group Exercise
• You have 25 direct reports (QA Analysts)
• 6 Agile lines (2 Run, 4 Build)
• Business demand is expected to nearly double in the next year
Experis | Monday, October 09, 2017 4
• System defect rate (5 defects/1,000 release hours)
• Production defect rate (1.75 defects/1,000 release hours)
How can you possibly prepare for the increase in business demand and try to lower your
defect rates – or increase quality – simultaneously?
5. 10/9/2017
3
Employ a deliberate emphasis on quality – implementing an industry best practice –
Behavior Driven Development (BDD) – with a determined focus incorporating automation
Solution
Business Demand increases by 187%
You decrease your system defect rate to 1.43
defects/1000 release hours
You decrease your production defect rate to
1.3 defects/1000 release hours
You increase your direct reports by only 7
190,008 hours to 354,739 hours
5 defects/1000 release hours to 1.43
defects/1000 release hours
1.75 defects/1000 release hours to 1.3
defects/1000 release hours
25 compared to 32
Experis | Monday, October 09, 2017 5
Fortune 100 Company Year X Year X+1
Business Demand (Release Hours) 190,008 354,739
System Testing Defects 937 508
Production Defects 332 464
Testing Resources 25 32
Annual Savings
$1,191,360
$1,183,540
$1,365,900
TOTAL ANNUAL
BUSINESS VALUE ($)
$3,740,800
Foundational
Understanding
6. 10/9/2017
4
Most Organizations Use Some Form of Agile
Experis | Monday, October 09, 2017 7
Agile emphasizes empirical feedback, team self management, and
striving to build properly tested product increments within short iterations.
Acceptance Test Driven Development (ATDD) is a form of Behavior
Driven Development (BDD) that focuses on requirements specified in the
form of acceptance criteria. How are Testing and Requirements related?
Differences Between TDD, BDD, ATDD
BDD
TDD
Tests focused on what a Class or Method
execution results. What result should it return?
Tests focused on behavior of classes or
components. What behavior should it exhibit?
Code
Tests foc sed on req irements of applications
Experis | Monday, October 09, 2017 8
ATDD
Requirements
Internal External
Tests focused on requirements of applications.
What business functionality should it implement?
A story’s behavior is simply its acceptance criteria – if the system fulfills
all the acceptance criteria, it’s behaving correctly; if it doesn’t, it isn’t.
7. 10/9/2017
5
• Industry practice in which whole team
collaborates on system testing and
“definition of done”
What is BDD?
definition of done
• Developer focuses on making system
test(s) pass
• Automate tests while production code
is being developed
• Automation design completes before or parallel to development
Experis | Monday, October 09, 2017 9
• Tests become part of build pipeline and are run throughout the sprint
• Automated tests represent the true business value and living documentation
BDD promotes requirements by example, collaboration, lower cost in resolving
defects, and automation in the form of business value.
Automation Strategy (Old)
• Often a one-tool approach
• Brittle automated tests
• Maintenance is high
More
Automated
• Tools have not been plentiful
• Experience with open source low
Experis | Monday, October 09, 2017 10
• Defects escape easily
• Developer accountability low
• Cost of quality is high Less
Automated
These problems have caused automation to be expensive and ineffective
8. 10/9/2017
6
Automation Strategy (New)
More
Automated
• Use tools such as xUnit
• Find defects quickly
• Keep technical debt low
• Use tools such as Cucumber
• Best use in regression tests
• Use plug-ins to extend to other tiers
Experis | Monday, October 09, 2017 11
Less
Automated
• Use tools such as Selenium, Watir
• Make UI tests maintainable
• Can increase UI tests with stability
Values
9. 10/9/2017
7
1. Process Encourages Collaboration
2. Requirements with Examples
How Does BDD Increase Quality?
3. Promotes Automation
4. Find Defects Earlier and Often
Experis | Monday, October 09, 2017 13
There are many other values to BDD but we’ll discuss these four values
specifically.
• BDD requires discipline to ensure that the right people work together to
create the tests
• Customers must work with developers
BDD Value #1: Process Encourages Collaboration
Customers must work with developers
to prevent the developers from writing tests that are too low level and
tests use customer terminology is used
to ensure that what is being tested is important (to the customer)
• Developers must work with testers
testers will be looking for corner cases and good coverage
developers can use their expertise to ensure that the test cases are
properly decomposed
Experis | Monday, October 09, 2017 14
• BA, Dev, and QA roles will balance each other
Collaboration is primary
Consistent domain vocabulary is critical
Getting automation right is important
10. 10/9/2017
8
• Gherkin is a language/syntax that is a Business Readable,
Domain Specific Language created specifically for behavior
descriptions.
What is Gherkin?
• It gives you the ability to remove logical details from behavior.
Gherkin serves as your project's documentation as well as your project's automated
tests.
• Test template in the form of Given When Then (GWT)
• Given some initial context (the givens),
• When an event occurs,
• Then ensure some outcomes.
Real World Example
Experis | Monday, October 09, 2017 15
Given a user navigates to the Experis website
And the user clicks enter as a job seeker
And the user clicks the go button
When the application navigates to the Experis Jobs page
And the user clicks the experis continued support
Then the text for experis continued support is displayed
Real World Example
Requirements Traceability
Selective Testing
BDD Value #3: Promotes Automation
Selective Testing
Execution Reports
Experis | Monday, October 09, 2017 16
Cross-Browser Testing Continuous IntegrationCross-Environment Testing
TEST QA STAGE
IT ST PT UAT
11. 10/9/2017
9
• Cucumber is an open source software tool written in Ruby and uses a plain text
Domain Specific Language (DSL) called Gherkin.
• Cucumber lines of text are processed by Ruby ‘step definitions’ which
What is Cucumber?
p y y p
are code blocks that execute the given, when, and then specifications
against an application. It runs automated acceptance tests written in a
behavior driven development (BDD) / acceptance test driven
development (ATDD) style.
• Cucumber lets software development teams describe how software
should behave in plain text. The text is written in a business-readable
“plain English” type language and serves as documentation, automated
tests and development-aid - all rolled into one format.
Experis | Monday, October 09, 2017 17
• Cucumber works with Ruby, Java, .NET, Flex or web applications written
in any language. It has been translated to over 40 spoken languages. www.cukes.info
Aslak Hellesoy created Cucumber to support BDD/ATDD. He states:
The idea was to combine automated tests, functional requirements and software
documentation into one format that would be understandable by non-technical
people as well as testing tools.
BDD Promotes Full Scope Automation
Experis | Monday, October 09, 2017 18
12. 10/9/2017
10
• Increases testing coverage – multiple browsers, database, services
• Increases testing frequency
I t ti ffi i li i t titi k i
BDD Value #4: Find Defects Earlier & Often
• Increases testing efficiency - eliminate repetitive work, increase
reusability
• Finds defects/bugs as they are introduced
• Promotes code quality/refactoring (instant feedback)
• Promotes continuous integration (CI/CD)
• Decrease test and production defects
Experis | Monday, October 09, 2017 19
• Decrease operational cost
Agile Workflow