SlideShare una empresa de Scribd logo
1 de 33
(Track Sponsor) Moving towards zero defects with Specification By Example Steve Rogalsky @srogalsky winnipegagilist.blogspot.com
Choose 2 of these topics to discuss: Talk about your approach to quality and the results of that approach. Talk about your approach to requirements and how you keep those requirements up to date. Talk about any previous experience with automated testing. Talk about your team’s current bug tracking process. Talk about zero defects – Is it possible? Is it responsible? Cost effective?
A story of Zero Defects
A SCIENCE EXPERIMENT
HYPOTHESIS: Specification By Example improves Quality & Speed
DEFINITIONS: Acceptance Testing Is...
What is  Specification By Example? Goal: To  build the right thing  the first time.
What is  Specification By Example? Also known as / similar to:     ATDD – Acceptance Test Driven Development    BDD – Behaviour Driven Development
To do this we: 1. WRITE EXAMPLES  (Acceptance Tests) (up front but not UP FRONT) instead of requirements Given muppet <Animal>  When measuring <Craziness>  Then return <10> Given muppet <Animal>  When <Drumming>  Then return <Phenomenal Skillz> Given muppet <Animal>  When <talking>  Then return <Grunt> SPECIFICATION BY EXAMPLE
To do this we: 2. TEST AS SOON  AS POSSIBLE FIRST in collaboration  with the developers and customers
To do this we: 3. AUTOMATE our examples
AN EXAMPLE: Requirement:  Bring home something small from Europe What I brought: What she wanted:
ANOTHER EXAMPLE User Story:  As an employee I want to receive overtime pay For each week, hourly employees are paid: 2 times their wage for each hour worked on Sundays and holidays a standard wage per hour for the first 40 hours worked 1.5 times their wage for each hour after the first 40 hours
(40*$20) = $800.00 a standard wage per hour for the first 40 hours worked
(40*$20) + (5*$20*1.5) = $950.00 1.5 times their wage for each hour after the first 40 hours
2 times their wage for each hour worked on Sundays and holidays (40*$20) +  (8*$20*1.5) + (8*$20*2)  = $1,360.00
2 times their wage for each hour worked on Sundays and holidays (40*$20) +  (8*$20*1.5) + (8*$20*2          ) = $1,360.00 *1.5
Executable Specifications Credit: This example is from “The Role of Quality Assurance in Lean-Agile” – Allan Shalloway
Defect Tracking
Where should we focus our automated testing? Later… Focus Here First UI Services TDD Classes/ Functions Credit: Testing Triangle first shown by Patrick Wilson-Welsh
What does it take to set this up? It is simpler than this… '''
Steps: Download FitNesse (free) Run FitNesse Add A Reference to your project Create a Fixture per set of examples Write the examples Press a button
How to do it? Tester Customer  and Team Automate Examples Expand into Examples Choose Story High Level Tests Passes All tests = done Review Code / TDD Think about how Developer
THE EXPERIMENT
Airplane Factory! Steps: ,[object Object]
   Open the folded paper up and make two triangle folds for the ‘nose’ of the plane
   Re-fold the plane in half and fold two wings (one on each side…)
   Finally, fold two wing flaps,[object Object]

Más contenido relacionado

La actualidad más candente

Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...
Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...
Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...TEST Huddle
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best PracticesStephen Ritchie
 
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...Ho Chi Minh City Software Testing Club
 
From Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanFrom Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanQA or the Highway
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersTEST Huddle
 
Continuous Testing - The New Normal
Continuous Testing - The New NormalContinuous Testing - The New Normal
Continuous Testing - The New NormalTechWell
 
'How To Apply Lean Test Management' by Bob van de Burgt
'How To Apply Lean Test Management' by Bob van de Burgt'How To Apply Lean Test Management' by Bob van de Burgt
'How To Apply Lean Test Management' by Bob van de BurgtTEST Huddle
 
Klaus Olsen - Agile Test Management Using Scrum
Klaus Olsen - Agile Test Management Using ScrumKlaus Olsen - Agile Test Management Using Scrum
Klaus Olsen - Agile Test Management Using ScrumTEST Huddle
 
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...TEST Huddle
 
'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam KnightTEST Huddle
 
New Model Testing: A New Test Process and Tool
New Model Testing:  A New Test Process and ToolNew Model Testing:  A New Test Process and Tool
New Model Testing: A New Test Process and ToolTEST Huddle
 
141015 Discovering Scrum at Scrum Roma
141015 Discovering Scrum at Scrum Roma141015 Discovering Scrum at Scrum Roma
141015 Discovering Scrum at Scrum RomaPeter Stevens
 
Understanding Kanban
Understanding KanbanUnderstanding Kanban
Understanding Kanbannikos batsios
 
Defect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей ТитаренкоDefect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей ТитаренкоSigma Software
 
Test Estimation
Test Estimation Test Estimation
Test Estimation SQALab
 
Combinatorial Black-Box Testing with Classification Trees
Combinatorial Black-Box Testing with Classification TreesCombinatorial Black-Box Testing with Classification Trees
Combinatorial Black-Box Testing with Classification TreesTechWell
 
Dorothy Graham - Can The Past Tell Us The Future
Dorothy Graham -  Can The Past Tell Us The FutureDorothy Graham -  Can The Past Tell Us The Future
Dorothy Graham - Can The Past Tell Us The FutureTEST Huddle
 

La actualidad más candente (20)

Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...
Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...
Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best Practices
 
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
 
From Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey ShannahanFrom Gatekeeper to Partner by Kelsey Shannahan
From Gatekeeper to Partner by Kelsey Shannahan
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for Testers
 
Continuous Testing - The New Normal
Continuous Testing - The New NormalContinuous Testing - The New Normal
Continuous Testing - The New Normal
 
'How To Apply Lean Test Management' by Bob van de Burgt
'How To Apply Lean Test Management' by Bob van de Burgt'How To Apply Lean Test Management' by Bob van de Burgt
'How To Apply Lean Test Management' by Bob van de Burgt
 
Klaus Olsen - Agile Test Management Using Scrum
Klaus Olsen - Agile Test Management Using ScrumKlaus Olsen - Agile Test Management Using Scrum
Klaus Olsen - Agile Test Management Using Scrum
 
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
 
'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight
 
New Model Testing: A New Test Process and Tool
New Model Testing:  A New Test Process and ToolNew Model Testing:  A New Test Process and Tool
New Model Testing: A New Test Process and Tool
 
AgileTesting_Ver1.0
AgileTesting_Ver1.0AgileTesting_Ver1.0
AgileTesting_Ver1.0
 
Understanding Scrum
Understanding ScrumUnderstanding Scrum
Understanding Scrum
 
141015 Discovering Scrum at Scrum Roma
141015 Discovering Scrum at Scrum Roma141015 Discovering Scrum at Scrum Roma
141015 Discovering Scrum at Scrum Roma
 
Understanding Kanban
Understanding KanbanUnderstanding Kanban
Understanding Kanban
 
Defect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей ТитаренкоDefect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей Титаренко
 
Test Estimation
Test Estimation Test Estimation
Test Estimation
 
Combinatorial Black-Box Testing with Classification Trees
Combinatorial Black-Box Testing with Classification TreesCombinatorial Black-Box Testing with Classification Trees
Combinatorial Black-Box Testing with Classification Trees
 
Dorothy Graham - Can The Past Tell Us The Future
Dorothy Graham -  Can The Past Tell Us The FutureDorothy Graham -  Can The Past Tell Us The Future
Dorothy Graham - Can The Past Tell Us The Future
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 

Similar a Moving Towards Zero Defects with Specification by Example

Test Improvement - Any place, anytime, any where
Test Improvement - Any place, anytime, any whereTest Improvement - Any place, anytime, any where
Test Improvement - Any place, anytime, any whereRuud Teunissen
 
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011TEST Huddle
 
Lean Software Development Is for Everyone
Lean Software Development Is for EveryoneLean Software Development Is for Everyone
Lean Software Development Is for EveryoneTechWell
 
Test analysis & design good practices@TDT Iasi 17Oct2013
Test analysis & design   good practices@TDT Iasi 17Oct2013Test analysis & design   good practices@TDT Iasi 17Oct2013
Test analysis & design good practices@TDT Iasi 17Oct2013Tabăra de Testare
 
Continuous Context Driven Test Improvement
Continuous Context Driven Test ImprovementContinuous Context Driven Test Improvement
Continuous Context Driven Test ImprovementTechWell
 
Software Quality Assurance (QA) Testing Interview Questions & Answers
Software Quality Assurance (QA) Testing Interview Questions & AnswersSoftware Quality Assurance (QA) Testing Interview Questions & Answers
Software Quality Assurance (QA) Testing Interview Questions & AnswersJanBask Training
 
Start with Quality - an Agile Tester's Case Study
Start with Quality - an Agile Tester's Case StudyStart with Quality - an Agile Tester's Case Study
Start with Quality - an Agile Tester's Case StudyNick Zdunić
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOpsKMS Technology
 
IIBA and Solvera May Event - Testing w Agile slides
IIBA and Solvera May Event - Testing w Agile slidesIIBA and Solvera May Event - Testing w Agile slides
IIBA and Solvera May Event - Testing w Agile slidesSaskatchewanIIBA
 
Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Dakiry
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support developmentChema del Barco
 
Test & behavior driven development
Test & behavior driven developmentTest & behavior driven development
Test & behavior driven developmentTristan Libersat
 
The DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It RightThe DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It RightInflectra
 
Test Requirements
Test RequirementsTest Requirements
Test Requirementstelab
 
How agile performance testing helps automate and scale test processes
How agile performance testing helps automate and scale test processesHow agile performance testing helps automate and scale test processes
How agile performance testing helps automate and scale test processesApica
 
Gabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsGabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsFrancesco Fullone
 

Similar a Moving Towards Zero Defects with Specification by Example (20)

Agile QA 2.0
Agile QA 2.0Agile QA 2.0
Agile QA 2.0
 
Test Improvement - Any place, anytime, any where
Test Improvement - Any place, anytime, any whereTest Improvement - Any place, anytime, any where
Test Improvement - Any place, anytime, any where
 
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
 
Lean Software Development Is for Everyone
Lean Software Development Is for EveryoneLean Software Development Is for Everyone
Lean Software Development Is for Everyone
 
Test analysis & design good practices@TDT Iasi 17Oct2013
Test analysis & design   good practices@TDT Iasi 17Oct2013Test analysis & design   good practices@TDT Iasi 17Oct2013
Test analysis & design good practices@TDT Iasi 17Oct2013
 
Continuous Context Driven Test Improvement
Continuous Context Driven Test ImprovementContinuous Context Driven Test Improvement
Continuous Context Driven Test Improvement
 
ProductSavvy - Scrum and QA
ProductSavvy - Scrum and QAProductSavvy - Scrum and QA
ProductSavvy - Scrum and QA
 
Software Quality Assurance (QA) Testing Interview Questions & Answers
Software Quality Assurance (QA) Testing Interview Questions & AnswersSoftware Quality Assurance (QA) Testing Interview Questions & Answers
Software Quality Assurance (QA) Testing Interview Questions & Answers
 
Start with Quality - an Agile Tester's Case Study
Start with Quality - an Agile Tester's Case StudyStart with Quality - an Agile Tester's Case Study
Start with Quality - an Agile Tester's Case Study
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
 
IIBA and Solvera May Event - Testing w Agile slides
IIBA and Solvera May Event - Testing w Agile slidesIIBA and Solvera May Event - Testing w Agile slides
IIBA and Solvera May Event - Testing w Agile slides
 
Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development”
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
Test & behavior driven development
Test & behavior driven developmentTest & behavior driven development
Test & behavior driven development
 
The DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It RightThe DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It Right
 
Testing smells
Testing smellsTesting smells
Testing smells
 
Test Requirements
Test RequirementsTest Requirements
Test Requirements
 
No Time for Testing: Strategies to Keep Testing Inside Your Sprints
No Time for Testing: Strategies to Keep Testing Inside Your SprintsNo Time for Testing: Strategies to Keep Testing Inside Your Sprints
No Time for Testing: Strategies to Keep Testing Inside Your Sprints
 
How agile performance testing helps automate and scale test processes
How agile performance testing helps automate and scale test processesHow agile performance testing helps automate and scale test processes
How agile performance testing helps automate and scale test processes
 
Gabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsGabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web Applications
 

Más de Steve Rogalsky

Story Maps: Episode IV - A New Slice
Story Maps: Episode IV - A New SliceStory Maps: Episode IV - A New Slice
Story Maps: Episode IV - A New SliceSteve Rogalsky
 
Retrospectives: from Whatever to Wow
Retrospectives: from Whatever to WowRetrospectives: from Whatever to Wow
Retrospectives: from Whatever to WowSteve Rogalsky
 
Agile in Winnipeg:.a retrospective
Agile in Winnipeg:.a retrospectiveAgile in Winnipeg:.a retrospective
Agile in Winnipeg:.a retrospectiveSteve Rogalsky
 
Your Design is only Mostly Dead
Your Design is only Mostly DeadYour Design is only Mostly Dead
Your Design is only Mostly DeadSteve Rogalsky
 
Trends in Agile Software
Trends in Agile SoftwareTrends in Agile Software
Trends in Agile SoftwareSteve Rogalsky
 
User Story Mapping in Practice
User Story Mapping in PracticeUser Story Mapping in Practice
User Story Mapping in PracticeSteve Rogalsky
 
A Guide to Lean Coffee
A Guide to Lean CoffeeA Guide to Lean Coffee
A Guide to Lean CoffeeSteve Rogalsky
 
Silent Brainstorming: A Guide To Using Post-its
Silent Brainstorming: A Guide To Using Post-itsSilent Brainstorming: A Guide To Using Post-its
Silent Brainstorming: A Guide To Using Post-itsSteve Rogalsky
 
Agile101 Small Batches
Agile101 Small BatchesAgile101 Small Batches
Agile101 Small BatchesSteve Rogalsky
 
Multitaskers Anonymous
Multitaskers AnonymousMultitaskers Anonymous
Multitaskers AnonymousSteve Rogalsky
 
Winnipeg Agile Users Group March 10 2011
Winnipeg Agile Users Group March 10 2011Winnipeg Agile Users Group March 10 2011
Winnipeg Agile Users Group March 10 2011Steve Rogalsky
 
Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...
Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...
Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...Steve Rogalsky
 

Más de Steve Rogalsky (18)

Story Maps: Episode IV - A New Slice
Story Maps: Episode IV - A New SliceStory Maps: Episode IV - A New Slice
Story Maps: Episode IV - A New Slice
 
Retrospectives: from Whatever to Wow
Retrospectives: from Whatever to WowRetrospectives: from Whatever to Wow
Retrospectives: from Whatever to Wow
 
Agile in Winnipeg:.a retrospective
Agile in Winnipeg:.a retrospectiveAgile in Winnipeg:.a retrospective
Agile in Winnipeg:.a retrospective
 
Your Design is only Mostly Dead
Your Design is only Mostly DeadYour Design is only Mostly Dead
Your Design is only Mostly Dead
 
Trends in Agile Software
Trends in Agile SoftwareTrends in Agile Software
Trends in Agile Software
 
User Story Mapping in Practice
User Story Mapping in PracticeUser Story Mapping in Practice
User Story Mapping in Practice
 
A Guide to Lean Coffee
A Guide to Lean CoffeeA Guide to Lean Coffee
A Guide to Lean Coffee
 
Silent Brainstorming: A Guide To Using Post-its
Silent Brainstorming: A Guide To Using Post-itsSilent Brainstorming: A Guide To Using Post-its
Silent Brainstorming: A Guide To Using Post-its
 
The Silence of Agile
The Silence of AgileThe Silence of Agile
The Silence of Agile
 
Agile101 Small Batches
Agile101 Small BatchesAgile101 Small Batches
Agile101 Small Batches
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 
Multitaskers Anonymous
Multitaskers AnonymousMultitaskers Anonymous
Multitaskers Anonymous
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story Workshop
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 
Winnipeg Agile Users Group March 10 2011
Winnipeg Agile Users Group March 10 2011Winnipeg Agile Users Group March 10 2011
Winnipeg Agile Users Group March 10 2011
 
Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...
Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...
Using Value Stream Mapping to make the case for Acceptance Test Driven Develo...
 

Último

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Moving Towards Zero Defects with Specification by Example

  • 1. (Track Sponsor) Moving towards zero defects with Specification By Example Steve Rogalsky @srogalsky winnipegagilist.blogspot.com
  • 2. Choose 2 of these topics to discuss: Talk about your approach to quality and the results of that approach. Talk about your approach to requirements and how you keep those requirements up to date. Talk about any previous experience with automated testing. Talk about your team’s current bug tracking process. Talk about zero defects – Is it possible? Is it responsible? Cost effective?
  • 3.
  • 4.
  • 5. A story of Zero Defects
  • 7. HYPOTHESIS: Specification By Example improves Quality & Speed
  • 9. What is Specification By Example? Goal: To build the right thing the first time.
  • 10. What is Specification By Example? Also known as / similar to: ATDD – Acceptance Test Driven Development BDD – Behaviour Driven Development
  • 11. To do this we: 1. WRITE EXAMPLES (Acceptance Tests) (up front but not UP FRONT) instead of requirements Given muppet <Animal> When measuring <Craziness> Then return <10> Given muppet <Animal> When <Drumming> Then return <Phenomenal Skillz> Given muppet <Animal> When <talking> Then return <Grunt> SPECIFICATION BY EXAMPLE
  • 12. To do this we: 2. TEST AS SOON AS POSSIBLE FIRST in collaboration with the developers and customers
  • 13.
  • 14. To do this we: 3. AUTOMATE our examples
  • 15. AN EXAMPLE: Requirement: Bring home something small from Europe What I brought: What she wanted:
  • 16. ANOTHER EXAMPLE User Story: As an employee I want to receive overtime pay For each week, hourly employees are paid: 2 times their wage for each hour worked on Sundays and holidays a standard wage per hour for the first 40 hours worked 1.5 times their wage for each hour after the first 40 hours
  • 17. (40*$20) = $800.00 a standard wage per hour for the first 40 hours worked
  • 18. (40*$20) + (5*$20*1.5) = $950.00 1.5 times their wage for each hour after the first 40 hours
  • 19. 2 times their wage for each hour worked on Sundays and holidays (40*$20) + (8*$20*1.5) + (8*$20*2) = $1,360.00
  • 20. 2 times their wage for each hour worked on Sundays and holidays (40*$20) + (8*$20*1.5) + (8*$20*2 ) = $1,360.00 *1.5
  • 21. Executable Specifications Credit: This example is from “The Role of Quality Assurance in Lean-Agile” – Allan Shalloway
  • 23.
  • 24.
  • 25. Where should we focus our automated testing? Later… Focus Here First UI Services TDD Classes/ Functions Credit: Testing Triangle first shown by Patrick Wilson-Welsh
  • 26. What does it take to set this up? It is simpler than this… '''
  • 27. Steps: Download FitNesse (free) Run FitNesse Add A Reference to your project Create a Fixture per set of examples Write the examples Press a button
  • 28. How to do it? Tester Customer and Team Automate Examples Expand into Examples Choose Story High Level Tests Passes All tests = done Review Code / TDD Think about how Developer
  • 30.
  • 31. Open the folded paper up and make two triangle folds for the ‘nose’ of the plane
  • 32. Re-fold the plane in half and fold two wings (one on each side…)
  • 33.
  • 34. TO SUMMARIZE Specification By Example: Communicate! Write Executable Examples instead of requirements The Tooling is simple to use and free Zero Defects isn’t impossible – build it right the first time Trash your Defect Tracker
  • 35. THANKS! Questions? Links Contact Info http://gojko.net/fitnesse/ steve.rogalsky@protegra.com http://fitnesse.org/ @srogalsky winnipegagilist.blogspot.com http://seleniumhq.org/ http://www.slideshare.net/SteveRogalsky/moving-towards-zero-defects-with-specification-by-example

Notas del editor

  1. SETUPFitNesse example- Test that these work and are prepped and then close them down: - Run C:\\_Projects\\SampleProjects\\SpecByExample\\server.FitNesse.bat - Open http://localhost:8088 in FireFox - Confirm tests are still all passing. - In FitNesse, remove page SpeakerInformation- Open C# project C:\\_Projects\\SampleProjects\\SpecByExample\\PrairieDevCon\\PrairieDevCon.sln - In VS, open &quot;CalculateWeeklyPay&quot; - In VS, remove LookupSpeakerInformation.cs- Setup 2 tables at the front for the experiment- Open C:\\_Projects\\FitNesse\\ folderOpen script: C:\\Users\\srogalsky\\Dropbox\\Presentations\\PrDC11\\SpecificationByExample\\ScriptForDemo.docx2. ExperimentPut out paperSetup 2 tablesSetup dividersPut examples in the dividersOpen spreadsheet: C:\\Users\\srogalsky\\Dropbox\\Presentations\\PrDC11\\SpecificationByExample\\AirplaneMfgResults.xlsPut instructions on both side – for QA, for team
  2. Table Talk: Learners form small collaborative groups and discuss what they already know about the topic and any questions they have that are related to the topic. (Training from the back of the room)Ask them to:Form groups of 3 to 5Assign a note takerChoose 2 topicsReport a one or two sentence summary of each topicWrite the results on big post-its
  3. Table Talk: Learners form small collaborative groups and discuss what they already know about the topic and any questions they have that are related to the topic. (Training from the back of the room)Ask them to:Form groups of 3 to 5Assign a note takerChoose 2 topicsReport a one or two sentence summary of each topicWrite the results on big post-its
  4. Table Talk: Learners form small collaborative groups and discuss what they already know about the topic and any questions they have that are related to the topic. (Training from the back of the room)Ask them to:Form groups of 3 to 5Assign a note takerChoose 2 topicsReport a one or two sentence summary of each topicWrite the results on big post-its
  5. Introduce myself here first.Tell my story here of the first project using this. 6 defects in 12 person months of work. 3 mediums, 3 lows. Arguably no defects since the 6 found were not identified as tests.Points:Cost?Is there a cost to TDD?What is the cost of a defect? (have you seen that chart?)The later you find it, the more screwed you are.Defects that matter“Like” button vs FB securityBuild it right the first timeBuild each piece little by little. Perfect on top of perfect. Simple…Normalization of devianceBoiling the frogIf you are using iterations, you need to regression test each iterationHow can you afford not to do some automated examples? Do you want to regression test your whole app manually at the end of each iteration? After each story is completed?Click a buttonZero defects is going be to required on more and more projects.Google carSmart cars that self regulate speed in car pool lanes once you enter themLots of Health initiativesWe’re moving to be ‘more’ dependent on perfect apps, not lessThe difference between what you think you should do and what you actually do is the degree to which you suckCory Haines
  6. HypothesisDefinitionsProof
  7. The stuff that QA and the customer does before saying it is done.Functional TestingAcceptance TestingNot Unit TestingWe’re not talking about TDD (Test Driven Development) today. Although related, TDD applies more to design, flexible code and unit testing. We’re talking about testing at a higher level – customer, QA, etc.
  8. Happy customersRemove frustrations
  9. Happy customersRemove frustrations
  10. Makes requirements less ambiguous – an example laterGWT example shown, but lots of ways to do this – start with your existing test case formats and see what works for you.If you can’t do the rest of ATDD, do this! A great place to start.
  11. Catches misunderstandings early so they aren’t duplicated throughout other user storiesImproves communication between QA and developers and customers (whole team!)Reduces the time spent writing, reading, understanding, arguing items in a defect trackerWhen we test, we execute the examples together that we wrote earlier
  12. This is a silly as a high school end of year exam that is worth 60%. If we fail, it is as much the teacher’s fault as ours.
  13. To prove early that the system works as expected and eliminate the waste of reworkRequires and investment time up front required to write the tests – pay off is laterRegression testing effort disappears (click a button)
  14. To prove early that the system works as expected and eliminate the waste of reworkRequires an investment of time up front to write the tests – pay off is laterRegression testing effort disappears (click a button)
  15. example courtesy Allan Shalloway - The Role of Quality Assurance in Lean-Agile
  16. An example using FitNesseWe run this test against the code and see it passes!
  17. Now with some overtime
  18. Now with overtime and holiday hours
  19. Now with the corrected codeThis is the beginning of the “aha” moment
  20. Putting it all together – this is what your executable requirements document now looks like.Complete traceabilityPush button testing and regression now existsCan replace all business logic in your requirements documentCan replace much of your bug tracking effortThis should be the ‘aha’ moment.
  21. Show Quick example using C#, FitNesse, PrDC APIStart the fitnesse batch fileShow the added referenceShow the fixture code for “CalculateWeeklyPay”Open FitNesse (http://localhost:8088/)Show the markup language for “WeeklyPayWithOvertime”Add an example for 40 hours and 10/hour = 500Press the buttonFix the errorShow HistoryShow the suiteRun the suiteShow the defect we found and fixed in the example earlier.Comment: This was my own biggest hurdle – starting…
  22. Janet Gregory’s slide modified. Talk about the process. Talk about not Up Front, but just in time – one story at a time.Follow this little roll play:Script:=========Choose story (create a new FitNesse page and put this in there): Create “SpeakerInformation” pageAs an attendee I want to know some information about a speaker so that I can make decisions on which sessions to attend2. High Level Tests (add to FitNesse page):a short bio* name and contact info* social media information3. Expand into examples:&apos;&apos;&apos;User Story: Speaker Information&apos;&apos;&apos;&apos;&apos;As an attendee I want to know some information about a speaker so that I can make decisions on which sessions to attend&apos;&apos;* a short bio* name and contact info* social media information&apos;&apos;&apos;Scenario: Show the contact information for a speaker&apos;&apos;&apos;!-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-!Given a &apos;&apos;&apos;&lt;Speaker Name&gt;&apos;&apos;&apos;!-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-!When I look up their information on the website!-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-!Then it should return the &apos;&apos;&apos;&lt;Email&gt;&apos;&apos;&apos;!-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-!And &apos;&apos;&apos;&lt;Twitter Id&gt;&apos;&apos;&apos;!-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-!And &apos;&apos;&apos;&lt;Blog&gt;&apos;&apos;&apos;!-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-!And &apos;&apos;&apos;&lt;Company Name&gt;&apos;&apos;&apos;!-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-!And &apos;&apos;&apos;&lt;Picture&gt;&apos;&apos;&apos;&apos;&apos;&apos;Examples:&apos;&apos;&apos;!|Lookup Speaker Information ||Speaker Name |Email? |Twitter Id?|Blog? |Company Name?|Picture? ||Steve Rogalsky|steve.rogalsky@protegra.com|@srogalsky |winnipegagilist.blogspot.com/|Protegra |steverogalsky.jpg|4. Review together5. Automate examplesusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace PrairieDevCon.FitnesseTests{ public class LookupSpeakerInformation : fit.ColumnFixture { public string SpeakerName; public string TwitterId; public string Blog; public string CompanyName; public string Picture; public string Email() {varspeakerInformation = PrairieDevCon.Services.SpeakerService.GetSpeakerByName(SpeakerName);TwitterId = speakerInformation.Twitter; Blog = speakerInformation.Blog;CompanyName = speakerInformation.Company; Picture = speakerInformation.Picture; return speakerInformation.Email; } }}6. Run the tests until done!
  23. At this point we gather our volunteers and explain the experiment.Explain:First, the teams may not talk from this point forwardQAPreferably acted out by a non-QA person(ask who are the testers, and pick a non-tester)Will accept/reject the end productHas a little leeway in accepting – see the ‘test cases’ provided for you. As long as it is pretty close, you can accept it. I am your customer, so I can help you with that.If it isn’t right, please write up the defect on your paper using words or pictures and hand the defect log and the product back to the develop team to fixAsk the QA to person to write good defects – as a dev he/she will know how frustrating an unclear defect isManufacturing team = DevelopersThere will be a few steps to build the end productThese steps are similar to the steps that you create to build software – the classes, database tables, UI, layers, etc. QA won’t test the individual classes and steps, but they will perform functional or acceptance testing on the final productYou can pair program if you like, it is up to you to determine the best way to accomplish the task – but again, NO TALKINGTeam 1Will not use ATDD – they will test at the end and to simulate this they will not see the ‘test cases’ that QA ownsTeam 2Will use ATDD – they will create their test case at the beginning to simulate the effort of automating the tests up front and they will have access to the ‘test cases’ throughout developmentBoth teamsReminder – no talkingReminder – no fighting or blaming – everyone is doing the best they can with what they have been givenDon’t copy the other team’s product, the requirements are similar, but the test cases may not be the sameTry to be as successful as possible without cheatingIf you have a defect, don’t throw out the product and start fresh, but fix the defective productWe’ll be timing both teams and then examine the results through a value stream before we debrief with questions
  24. Once the exercise is done:First: Fill out the spreadsheetSecond: Ask the observers to reportThird – ask questions:How did it go?How did you feel as you were developing (calm on one side, not on the other)What went well?What didn’t go well?Refer back to the original questions asked and their answers – how does this fit?Fourth: my observationsHow it related to agile: removing barriers; build the right thing the first time; fail fast not slow