Experience from specification_by_examples

20
Experience with Experience with Specification by Specification by Example Example Larry Cai Larry Cai [email protected] [email protected]

Transcript of Experience from specification_by_examples

Page 1: Experience from specification_by_examples

Experience withExperience withSpecification by Specification by ExampleExampleLarry Cai Larry Cai [email protected]@gmail.com

Page 2: Experience from specification_by_examples

LarryLarry, an open source, collaboration & Agile evangelist, an open source, collaboration & Agile evangelist Software Practice PioneerSoftware Practice Pioneer to discover the best suitable to discover the best suitable

methods and tools to improve the efficiency of methods and tools to improve the efficiency of software developmentsoftware development

ProfileProfile

Page 3: Experience from specification_by_examples

Requirement is the important thing for software development

Page 4: Experience from specification_by_examples

One good wayOne good way to improve your requirement handlingto improve your requirement handling

Page 5: Experience from specification_by_examples

agendaagendaWHAT is specification by exampleWHAT is specification by exampleTips-1 : Bring Tips-1 : Bring TesterTesterss in frontin frontTips-2 : Visible examples on the wallTips-2 : Visible examples on the wall

Page 6: Experience from specification_by_examples

Specification by exampleSpecification by exampleBased on capturing and illustrating requirements Based on capturing and illustrating requirements using using realistic examplesrealistic examples instead of abstract instead of abstract statements. statements.

Page 7: Experience from specification_by_examples

User storyUser story

As a Returning Customer I want the system to remember my details so I can purchase goods more quickly.

Acceptance criteria: Scenario: Review Details Before Purchase

Given I’m on the Amazon websiteAnd I’m logged in as a returning customerWhen I click the “1-Click” buttonThen I should see my order details

Requirement: customer can check order information before purchase

Page 8: Experience from specification_by_examples

Specification by exampleSpecification by exampleBased on capturing and illustrating requirements Based on capturing and illustrating requirements using using realistic examplesrealistic examples instead of abstract instead of abstract statements. statements.

CCollaborative approachollaborative approach to defining requirements to defining requirements and business-oriented functional tests for software and business-oriented functional tests for software products  products 

Also known as: Example-driven development, Executable requirements, Acceptance-Test Driven Development Agile Acceptance TestingBehavior Driven Development

Page 9: Experience from specification_by_examples

Specification by exampleSpecification by example

Source: key process from the book “Specification by example”

Page 10: Experience from specification_by_examples

Tool is good, but it is not must-have to try

Page 11: Experience from specification_by_examples

inside agile iterationinside agile iteration

› Technical debt from unclear requirement › Tester verify the implementation cause bottleneck

Coding

Testing

Sprint n-1 Sprint n

Req

Backlog

Page 12: Experience from specification_by_examples

inside agile iterationinside agile iteration

› Who read the test spec ?› Who read the test scripts ?› Where are original requirement and test spec ?

Requirementword

Coding

excel

Backlog

Test Spec

word

Test case description

Test code

Test case script

word

Test Report

wordword

SystemDescriptionword

System Document

Customer document

Page 13: Experience from specification_by_examples

problemproblemTechnical debts in the end of iteration (notice the Technical debts in the end of iteration (notice the gap between design and verification)gap between design and verification)

Tester verify the implementation, which cause less Tester verify the implementation, which cause less of motivation for most of the testersof motivation for most of the testers

Waterfall inside the iterationWaterfall inside the iterationLess focus on the requirement in the beginningLess focus on the requirement in the beginningLess efficient way to clarify the requirement Less efficient way to clarify the requirement

Do we do the right thing from the beginning ?

Page 14: Experience from specification_by_examples

agendaagendaWHAT is specification by exampleWHAT is specification by exampleTips-1 : Bring Tips-1 : Bring TesterTesterss in frontin front

Promote tester’s moralePromote tester’s morale Better control Quality of requirementBetter control Quality of requirement

Tips-2 : Visible examples on the wallTips-2 : Visible examples on the wall

Page 15: Experience from specification_by_examples

Why put them in frontWhy put them in frontTester should be best people inside team to handle Tester should be best people inside team to handle requirementrequirement

Tester is less motivated compare to designer and Tester is less motivated compare to designer and mostly paid less. mostly paid less.

Page 16: Experience from specification_by_examples

How to move to frontHow to move to frontMake sure the requirement is clearMake sure the requirement is clear

Testers make sure right things vs. designers make things Testers make sure right things vs. designers make things rightright

Deliver plan based on the requirementDeliver plan based on the requirement

Page 17: Experience from specification_by_examples

agendaagendaWHAT is specification by exampleWHAT is specification by exampleTips-1 : Bring Tips-1 : Bring TesterTesterss in frontin frontTips-2 : Visible examples on the wallTips-2 : Visible examples on the wall

Reduce the communication costReduce the communication cost Remind good qualityRemind good quality

Page 18: Experience from specification_by_examples

Why on the wallWhy on the wallRequirement is clarified in small group needs Requirement is clarified in small group needs further communicationfurther communication

Requirement is clarified in big group waste time for Requirement is clarified in big group waste time for some membersome member

One source and everyone check !One source and everyone check !

Requirement on the wall is specified by example

Page 19: Experience from specification_by_examples

summarysummarySpecification by example gives good improvementSpecification by example gives good improvement

Requirement clarificationRequirement clarification Motivation for testersMotivation for testers

Learn and deploy, and continuously improve it.Learn and deploy, and continuously improve it. Bring testers into front to push for the quality of the Bring testers into front to push for the quality of the

requirementrequirement Collaborate efficiency by visible them Collaborate efficiency by visible them

What is not touchedWhat is not touched Tools (cucumber) is very useful, but is not necessary in Tools (cucumber) is very useful, but is not necessary in

the beginningthe beginning

Page 20: Experience from specification_by_examples