SlideShare a Scribd company logo
AMIR BARYLKO
                      QUALITY DRIVEN
                      USING BDD + TDD




Amir Barylko - Quality Driven              MavenThought Inc.
TESTING
                                  Why Testing?
                                    Unit tests
                                      TDD
                                Integration Tests
                                Acceptance Tests


Amir Barylko - Quality Driven                       MavenThought Inc.
REALITY CHECK

  • It is impossible to gather all the requirements at
     the beginning of a project.
  • Whatever   requirements you do gather are
     guaranteed to change.
  • There will always be more to do than time and
     money will allow.

Amir Barylko - Quality Driven                  MavenThought Inc.
NO MORE EXCUSES

  • It   works on my computer!

  • It   was like that when I got here!

  • The     previous developer didn’t know XXXX!

  • We      need a satellite connection in order to run it!

  • We      can’t reproduce the error!

  • We      can’t test that!
Amir Barylko - Quality Driven                                 MavenThought Inc.
UNIT TESTING

  • Test      for a class or method
  • No       dependencies
  • Should          use mocking
  • Small

  • Clear

Amir Barylko - Quality Driven                  MavenThought Inc.
TDD

  • First      write a test that fails (RED)
  • Write         code to make it pass (GREEN)
  • Check          if code can be improved (REFACTOR)
  • Start       again until it’s done


Amir Barylko - Quality Driven                    MavenThought Inc.
BENEFITS OF TDD

  • Prove         that your code         • Regression   tests as
     works                                byproduct
  • Avoid  waste                         • Makechanges with
     (debugging)                          confidence
  • Increment             code quality   • Bring
                                               back the joy of
                                          coding!
  • Better         design
Amir Barylko - Quality Driven                              MavenThought Inc.
WHEN TDD IS NOT ENOUGH

  •Legacy Code
  •Refactoring is not viable
  •Verify functionality across layers
  •Validate feature end to end
Amir Barylko - Quality Driven       MavenThought Inc.
INTEGRATION TEST

  •More              than one class
  •Still        some parts can be mocked
  •Partial             functionality of subsystem


Amir Barylko - Quality Driven                  MavenThought Inc.
ACCEPTANCE TEST

  •Black            box testing
  •Crossing                     all layers
  •Should                cover all scenarios
  •External                     subsystems may be mocked
Amir Barylko - Quality Driven                      MavenThought Inc.
SOFTWARE QUALITY
                                 What is it?
                                Low Quality
                                Classic QA




Amir Barylko - Quality Driven                  MavenThought Inc.
WHAT DOES IT MEAN?

  • Better         code?
  • Faster        delivery?
  • Less       bugs?
  • Make         sure we deliver the right thing?
  • Better         Processes?
Amir Barylko - Quality Driven                       MavenThought Inc.
LOW QUALITY

  • Lack     of testing

  • Lack     of communication

  • Lack     of metrics

  • Lack     of traceability

  • Wrong        tools


Amir Barylko - Quality Driven             MavenThought Inc.
CLASSIC QA

  • Team       separated from developments
  • Follow       scripts or requirements
  • Done        after the feature is implemented
  • May      have more than one project in the queue
  • Feedback          cycle may take weeks
  • Manual        (no automation)
Amir Barylko - Quality Driven                          MavenThought Inc.
DOES IT WORK?

  •Your              opinion here......




Amir Barylko - Quality Driven              MavenThought Inc.
A NEW CONCEPT
                                   Feature First
                                      Benefits
                                Outside In Approach
                                 Runnable features
                                       Roles


Amir Barylko - Quality Driven                         MavenThought Inc.
FEATURE FIRST

  • Write         the feature before implementation
  • Developers                  will implement feature using TDD
  • QA        will validate against feature
  • Repeat          until all features are done


Amir Barylko - Quality Driven                               MavenThought Inc.
BENEFITS

  • Focus         on the feature
  • Testing         all the way
  • Traceability

  • Quality          every step of the process


Amir Barylko - Quality Driven                    MavenThought Inc.
OUTSIDE IN APPROACH
                                           Red
                                           BDD

                                           Red




     Refactor                   Refactor   TDD   Green   Green




Amir Barylko - Quality Driven                              MavenThought Inc.
RUNNABLE FEATURES

  • Features           describe functionality
  • What          if we could run them?
  • Then         features would validate functionality
  • Becoming              live documentation


Amir Barylko - Quality Driven                            MavenThought Inc.
ROLES

  • Who          writes the feature?
  • Who          implements the feature?
  • Who          validates the feature?
  • What’s          the role of QA, PM, etc?


Amir Barylko - Quality Driven                  MavenThought Inc.
WRITING FEATURES
                                Gherkin
                                 Syntax
                                Feature
                                Scenario
                                  Steps


Amir Barylko - Quality Driven              MavenThought Inc.
GHERKIN DSL

  • Business       readable DSL

  • Flush     out requirements

  • Documentation

  • Automated           testing

  • Used   by Cucumber, SpecFlow,
     jBehave

Amir Barylko - Quality Driven                 MavenThought Inc.
SYNTAX
  Feature: Listing movies
     As a User
     I want to list movies
     So I can see the contents of the library


  Scenario: Browse available movies
     Given I have the following movies
     When I go to "Movies"
     Then I should see in the listing




Amir Barylko - Quality Driven                   MavenThought Inc.
FEATURES

  • Keyword         Feature

  • The     rest is free text

  Feature: Listing movies
    As a User
       I want to list movies
       So I can see the contents of the library



Amir Barylko - Quality Driven              MavenThought Inc.
SCENARIOS

  • Each        feature file can have multiple scenarios
  • Each        scenario can contain multiple steps
  • Keywords:

     • Given            When Then
     • And          Not But
Amir Barylko - Quality Driven                         MavenThought Inc.
STEPS

  Scenario: Browse available movies

       Given I have some movies

       When          I go to the listing page

       Then          I should see all the movies




Amir Barylko - Quality Driven                      MavenThought Inc.
DEMO




Amir Barylko - Quality Driven          MavenThought Inc.
QUESTIONS?




Amir Barylko - Quality Driven                MavenThought Inc.

More Related Content

What's hot

obs-tdd-intro
obs-tdd-introobs-tdd-intro
obs-tdd-intro
Amir Barylko
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
Sandy Mamoli
 
Specifications test automation pyramid public
Specifications test automation pyramid   publicSpecifications test automation pyramid   public
Specifications test automation pyramid public
Sathyan Sethumadhavan
 
Real Developers Don't Need Unit Tests
Real Developers Don't Need Unit TestsReal Developers Don't Need Unit Tests
Real Developers Don't Need Unit Tests
John Ferguson Smart Limited
 
Clean code
Clean codeClean code
Clean code
Simon Sönnby
 
Coding Together - A Dev Workflow
Coding Together - A Dev WorkflowCoding Together - A Dev Workflow
Coding Together - A Dev Workflow
Peter Chester
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Mozaic Works
 

What's hot (7)

obs-tdd-intro
obs-tdd-introobs-tdd-intro
obs-tdd-intro
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
 
Specifications test automation pyramid public
Specifications test automation pyramid   publicSpecifications test automation pyramid   public
Specifications test automation pyramid public
 
Real Developers Don't Need Unit Tests
Real Developers Don't Need Unit TestsReal Developers Don't Need Unit Tests
Real Developers Don't Need Unit Tests
 
Clean code
Clean codeClean code
Clean code
 
Coding Together - A Dev Workflow
Coding Together - A Dev WorkflowCoding Together - A Dev Workflow
Coding Together - A Dev Workflow
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
 

Viewers also liked

ejercicios
ejerciciosejercicios
ejercicios
yekaortiz
 
Pure cartine orbit 2 presentation
Pure cartine orbit 2 presentationPure cartine orbit 2 presentation
Pure cartine orbit 2 presentation
Anup Srivastava
 
G ainvite2009
G ainvite2009G ainvite2009
G ainvite2009
Ron Hershco
 
Framing Your Message for Maximum Engagement
Framing Your Message for Maximum EngagementFraming Your Message for Maximum Engagement
Framing Your Message for Maximum Engagement
Gihan Perera
 
Lab Safety Guideline - Family Photo Share
Lab Safety Guideline - Family Photo ShareLab Safety Guideline - Family Photo Share
Lab Safety Guideline - Family Photo Share
lfungkeefung
 
Go #5 political process 2011 2012
Go #5 political process 2011 2012Go #5 political process 2011 2012
Go #5 political process 2011 2012
mrgault
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
jsewell
 

Viewers also liked (7)

ejercicios
ejerciciosejercicios
ejercicios
 
Pure cartine orbit 2 presentation
Pure cartine orbit 2 presentationPure cartine orbit 2 presentation
Pure cartine orbit 2 presentation
 
G ainvite2009
G ainvite2009G ainvite2009
G ainvite2009
 
Framing Your Message for Maximum Engagement
Framing Your Message for Maximum EngagementFraming Your Message for Maximum Engagement
Framing Your Message for Maximum Engagement
 
Lab Safety Guideline - Family Photo Share
Lab Safety Guideline - Family Photo ShareLab Safety Guideline - Family Photo Share
Lab Safety Guideline - Family Photo Share
 
Go #5 political process 2011 2012
Go #5 political process 2011 2012Go #5 political process 2011 2012
Go #5 political process 2011 2012
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 

Similar to 2012 regina TC - 103 quality driven

Cpl12 continuous integration
Cpl12 continuous integrationCpl12 continuous integration
Cpl12 continuous integration
Amir Barylko
 
prdc10-tdd-patterns
prdc10-tdd-patternsprdc10-tdd-patterns
prdc10-tdd-patterns
Amir Barylko
 
CPL12-Agile-planning
CPL12-Agile-planningCPL12-Agile-planning
CPL12-Agile-planning
Amir Barylko
 
prdc10-Bdd-real-world
prdc10-Bdd-real-worldprdc10-Bdd-real-world
prdc10-Bdd-real-world
Amir Barylko
 
Page objects pattern
Page objects patternPage objects pattern
Page objects pattern
Amir Barylko
 
Page-objects-pattern
Page-objects-patternPage-objects-pattern
Page-objects-pattern
Amir Barylko
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar
 
YEG-UG-Capybara
YEG-UG-CapybaraYEG-UG-Capybara
YEG-UG-Capybara
Amir Barylko
 
Smith Secure Test
Smith Secure Test Smith Secure Test
Smith Secure Test
ngibbs01
 
Jvm-bdd-quality-driven
Jvm-bdd-quality-drivenJvm-bdd-quality-driven
Jvm-bdd-quality-driven
Amir Barylko
 
DevTeach12-Capybara
DevTeach12-CapybaraDevTeach12-Capybara
DevTeach12-Capybara
Amir Barylko
 
ITS-Fidel
ITS-FidelITS-Fidel
Teams and responsibilities
Teams and responsibilitiesTeams and responsibilities
Teams and responsibilities
Amir Barylko
 
Testing Tools Classroom Training
Testing Tools Classroom TrainingTesting Tools Classroom Training
Testing Tools Classroom Training
Srihitha Technologies
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
Declan Whelan
 
Continuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedContinuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons Learned
Ash Maurya
 
Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & Right
Neotys_Partner
 
PRDCW-avent-aggregator
PRDCW-avent-aggregatorPRDCW-avent-aggregator
PRDCW-avent-aggregator
Amir Barylko
 
LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
Lingoport (www.lingoport.com)
 
Agile Base Camp - Agile metrics
Agile Base Camp - Agile metricsAgile Base Camp - Agile metrics
Agile Base Camp - Agile metrics
Serge Kovaleff
 

Similar to 2012 regina TC - 103 quality driven (20)

Cpl12 continuous integration
Cpl12 continuous integrationCpl12 continuous integration
Cpl12 continuous integration
 
prdc10-tdd-patterns
prdc10-tdd-patternsprdc10-tdd-patterns
prdc10-tdd-patterns
 
CPL12-Agile-planning
CPL12-Agile-planningCPL12-Agile-planning
CPL12-Agile-planning
 
prdc10-Bdd-real-world
prdc10-Bdd-real-worldprdc10-Bdd-real-world
prdc10-Bdd-real-world
 
Page objects pattern
Page objects patternPage objects pattern
Page objects pattern
 
Page-objects-pattern
Page-objects-patternPage-objects-pattern
Page-objects-pattern
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
 
YEG-UG-Capybara
YEG-UG-CapybaraYEG-UG-Capybara
YEG-UG-Capybara
 
Smith Secure Test
Smith Secure Test Smith Secure Test
Smith Secure Test
 
Jvm-bdd-quality-driven
Jvm-bdd-quality-drivenJvm-bdd-quality-driven
Jvm-bdd-quality-driven
 
DevTeach12-Capybara
DevTeach12-CapybaraDevTeach12-Capybara
DevTeach12-Capybara
 
ITS-Fidel
ITS-FidelITS-Fidel
ITS-Fidel
 
Teams and responsibilities
Teams and responsibilitiesTeams and responsibilities
Teams and responsibilities
 
Testing Tools Classroom Training
Testing Tools Classroom TrainingTesting Tools Classroom Training
Testing Tools Classroom Training
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
Continuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedContinuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons Learned
 
Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & Right
 
PRDCW-avent-aggregator
PRDCW-avent-aggregatorPRDCW-avent-aggregator
PRDCW-avent-aggregator
 
LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
 
Agile Base Camp - Agile metrics
Agile Base Camp - Agile metricsAgile Base Camp - Agile metrics
Agile Base Camp - Agile metrics
 

More from Amir Barylko

Functional converter project
Functional converter projectFunctional converter project
Functional converter project
Amir Barylko
 
Elm: delightful web development
Elm: delightful web developmentElm: delightful web development
Elm: delightful web development
Amir Barylko
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
Amir Barylko
 
No estimates
No estimatesNo estimates
No estimates
Amir Barylko
 
User stories deep dive
User stories deep diveUser stories deep dive
User stories deep dive
Amir Barylko
 
Coderetreat hosting training
Coderetreat hosting trainingCoderetreat hosting training
Coderetreat hosting training
Amir Barylko
 
There's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessThere's no charge for (functional) awesomeness
There's no charge for (functional) awesomeness
Amir Barylko
 
What's new in c# 6
What's new in c# 6What's new in c# 6
What's new in c# 6
Amir Barylko
 
Productive teams
Productive teamsProductive teams
Productive teams
Amir Barylko
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?
Amir Barylko
 
From coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideFrom coach to owner - What I learned from the other side
From coach to owner - What I learned from the other side
Amir Barylko
 
Communication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityCommunication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivity
Amir Barylko
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
Amir Barylko
 
Refactoring
RefactoringRefactoring
Refactoring
Amir Barylko
 
Agile requirements
Agile requirementsAgile requirements
Agile requirements
Amir Barylko
 
Agile teams and responsibilities
Agile teams and responsibilitiesAgile teams and responsibilities
Agile teams and responsibilities
Amir Barylko
 
Refactoring
RefactoringRefactoring
Refactoring
Amir Barylko
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful javascript with coffeescript
Beutiful javascript with coffeescript
Amir Barylko
 
Sass & bootstrap
Sass & bootstrapSass & bootstrap
Sass & bootstrap
Amir Barylko
 
Rich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptRich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & Coffeescript
Amir Barylko
 

More from Amir Barylko (20)

Functional converter project
Functional converter projectFunctional converter project
Functional converter project
 
Elm: delightful web development
Elm: delightful web developmentElm: delightful web development
Elm: delightful web development
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
No estimates
No estimatesNo estimates
No estimates
 
User stories deep dive
User stories deep diveUser stories deep dive
User stories deep dive
 
Coderetreat hosting training
Coderetreat hosting trainingCoderetreat hosting training
Coderetreat hosting training
 
There's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessThere's no charge for (functional) awesomeness
There's no charge for (functional) awesomeness
 
What's new in c# 6
What's new in c# 6What's new in c# 6
What's new in c# 6
 
Productive teams
Productive teamsProductive teams
Productive teams
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?
 
From coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideFrom coach to owner - What I learned from the other side
From coach to owner - What I learned from the other side
 
Communication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityCommunication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivity
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Refactoring
RefactoringRefactoring
Refactoring
 
Agile requirements
Agile requirementsAgile requirements
Agile requirements
 
Agile teams and responsibilities
Agile teams and responsibilitiesAgile teams and responsibilities
Agile teams and responsibilities
 
Refactoring
RefactoringRefactoring
Refactoring
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful javascript with coffeescript
Beutiful javascript with coffeescript
 
Sass & bootstrap
Sass & bootstrapSass & bootstrap
Sass & bootstrap
 
Rich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptRich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & Coffeescript
 

Recently uploaded

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 

Recently uploaded (20)

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 

2012 regina TC - 103 quality driven

  • 1. AMIR BARYLKO QUALITY DRIVEN USING BDD + TDD Amir Barylko - Quality Driven MavenThought Inc.
  • 2. TESTING Why Testing? Unit tests TDD Integration Tests Acceptance Tests Amir Barylko - Quality Driven MavenThought Inc.
  • 3. REALITY CHECK • It is impossible to gather all the requirements at the beginning of a project. • Whatever requirements you do gather are guaranteed to change. • There will always be more to do than time and money will allow. Amir Barylko - Quality Driven MavenThought Inc.
  • 4. NO MORE EXCUSES • It works on my computer! • It was like that when I got here! • The previous developer didn’t know XXXX! • We need a satellite connection in order to run it! • We can’t reproduce the error! • We can’t test that! Amir Barylko - Quality Driven MavenThought Inc.
  • 5. UNIT TESTING • Test for a class or method • No dependencies • Should use mocking • Small • Clear Amir Barylko - Quality Driven MavenThought Inc.
  • 6. TDD • First write a test that fails (RED) • Write code to make it pass (GREEN) • Check if code can be improved (REFACTOR) • Start again until it’s done Amir Barylko - Quality Driven MavenThought Inc.
  • 7. BENEFITS OF TDD • Prove that your code • Regression tests as works byproduct • Avoid waste • Makechanges with (debugging) confidence • Increment code quality • Bring back the joy of coding! • Better design Amir Barylko - Quality Driven MavenThought Inc.
  • 8. WHEN TDD IS NOT ENOUGH •Legacy Code •Refactoring is not viable •Verify functionality across layers •Validate feature end to end Amir Barylko - Quality Driven MavenThought Inc.
  • 9. INTEGRATION TEST •More than one class •Still some parts can be mocked •Partial functionality of subsystem Amir Barylko - Quality Driven MavenThought Inc.
  • 10. ACCEPTANCE TEST •Black box testing •Crossing all layers •Should cover all scenarios •External subsystems may be mocked Amir Barylko - Quality Driven MavenThought Inc.
  • 11. SOFTWARE QUALITY What is it? Low Quality Classic QA Amir Barylko - Quality Driven MavenThought Inc.
  • 12. WHAT DOES IT MEAN? • Better code? • Faster delivery? • Less bugs? • Make sure we deliver the right thing? • Better Processes? Amir Barylko - Quality Driven MavenThought Inc.
  • 13. LOW QUALITY • Lack of testing • Lack of communication • Lack of metrics • Lack of traceability • Wrong tools Amir Barylko - Quality Driven MavenThought Inc.
  • 14. CLASSIC QA • Team separated from developments • Follow scripts or requirements • Done after the feature is implemented • May have more than one project in the queue • Feedback cycle may take weeks • Manual (no automation) Amir Barylko - Quality Driven MavenThought Inc.
  • 15. DOES IT WORK? •Your opinion here...... Amir Barylko - Quality Driven MavenThought Inc.
  • 16. A NEW CONCEPT Feature First Benefits Outside In Approach Runnable features Roles Amir Barylko - Quality Driven MavenThought Inc.
  • 17. FEATURE FIRST • Write the feature before implementation • Developers will implement feature using TDD • QA will validate against feature • Repeat until all features are done Amir Barylko - Quality Driven MavenThought Inc.
  • 18. BENEFITS • Focus on the feature • Testing all the way • Traceability • Quality every step of the process Amir Barylko - Quality Driven MavenThought Inc.
  • 19. OUTSIDE IN APPROACH Red BDD Red Refactor Refactor TDD Green Green Amir Barylko - Quality Driven MavenThought Inc.
  • 20. RUNNABLE FEATURES • Features describe functionality • What if we could run them? • Then features would validate functionality • Becoming live documentation Amir Barylko - Quality Driven MavenThought Inc.
  • 21. ROLES • Who writes the feature? • Who implements the feature? • Who validates the feature? • What’s the role of QA, PM, etc? Amir Barylko - Quality Driven MavenThought Inc.
  • 22. WRITING FEATURES Gherkin Syntax Feature Scenario Steps Amir Barylko - Quality Driven MavenThought Inc.
  • 23. GHERKIN DSL • Business readable DSL • Flush out requirements • Documentation • Automated testing • Used by Cucumber, SpecFlow, jBehave Amir Barylko - Quality Driven MavenThought Inc.
  • 24. SYNTAX Feature: Listing movies As a User I want to list movies So I can see the contents of the library Scenario: Browse available movies Given I have the following movies When I go to "Movies" Then I should see in the listing Amir Barylko - Quality Driven MavenThought Inc.
  • 25. FEATURES • Keyword Feature • The rest is free text Feature: Listing movies As a User I want to list movies So I can see the contents of the library Amir Barylko - Quality Driven MavenThought Inc.
  • 26. SCENARIOS • Each feature file can have multiple scenarios • Each scenario can contain multiple steps • Keywords: • Given When Then • And Not But Amir Barylko - Quality Driven MavenThought Inc.
  • 27. STEPS Scenario: Browse available movies Given I have some movies When I go to the listing page Then I should see all the movies Amir Barylko - Quality Driven MavenThought Inc.
  • 28. DEMO Amir Barylko - Quality Driven MavenThought Inc.
  • 29. QUESTIONS? Amir Barylko - Quality Driven MavenThought Inc.