SlideShare a Scribd company logo
1 of 42
Download to read offline
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 1
info@netobjectives.com
www.netobjectives.com
1 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
	
  
Requirements	
  and	
  Tests	
  –	
  Yes	
  
They	
  Go	
  Together	
  
May 2015
2 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Ken	
  Pugh	
  
ken.pugh	
  
@netobjec2ves.com	
  
Photo
Size:
Height: 2.25
Position:
from top left corner
Horizontal 0.75
Vertical 1.
Picture Style: Simple Black
Frame
No code goes in till the test goes on.
A journey of two thousand miles begins with a single step.
§  Fellow	
  Consultant	
  
§  OOA&D,	
  Design	
  PaAerns,	
  Lean,	
  Scrum,	
  Test-­‐Driven	
  
Development	
  
§  Over	
  2/5	
  century	
  of	
  soLware	
  development	
  
experience	
  
§  Author	
  of	
  seven	
  books,	
  including:	
  
–  	
  Prefactoring:	
  Extreme	
  Abstrac4on,	
  Extreme	
  
Separa4on,	
  Extreme	
  Readability	
  	
  (2006	
  Jolt	
  Award)	
  
–  	
  Interface	
  Oriented	
  Design	
  
–  Lean	
  Agile	
  Acceptance	
  Test-­‐Driven	
  Development:	
  
BeDer	
  SoEware	
  Through	
  Collabora4on	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 2
3 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Objec2ves	
  
§  Show	
  how	
  requirements	
  and	
  tests	
  are	
  complementary	
  
facets	
  
§  How	
  to	
  create	
  requirements	
  and	
  tests	
  collabora2vely	
  	
  
4 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Overall	
  Rule	
  
§  There	
  are	
  excep2ons	
  to	
  every	
  statement,	
  except	
  this	
  
one	
  
4
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 3
5 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Flow	
  
§  Introduc2on	
  	
  	
  
§  Acceptance	
  Test	
  Examples	
  
§  Test	
  Anatomy	
  	
  
§  Supplemental	
  
	
  
5
6 2 June 2015
Introduc8on	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 4
7 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
5	
  W’s	
  and	
  an	
  H	
  	
  
§  ATDD	
  	
  
–  What	
  are	
  they	
  
–  Who	
  creates	
  and	
  uses	
  them	
  
–  When	
  are	
  they	
  created	
  
–  Where	
  are	
  they	
  used	
  
–  Why	
  use	
  them	
  
–  How	
  to	
  create	
  them	
  
8 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
What Are Acceptance Tests?
§  Acceptance	
  Tests:	
  	
  
–  External	
  view	
  of	
  system	
  	
  
§  Examine	
  externally	
  visible	
  effects	
  
–  Inputs	
  and	
  outputs	
  	
  
–  State	
  changes	
  	
  
–  External	
  interfaces	
  	
  
User	
  
Server	
  
Service	
  
Provider	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 5
9 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Defini2ons	
  
§  Acceptance	
  criteria	
  
–  General	
  ideas	
  	
  
§  Acceptance	
  tests	
  
–  Specific	
  tests	
  that	
  either	
  pass	
  or	
  fail	
  
–  Implementa2on	
  independent	
  	
  	
  	
  
§  Triad	
  –	
  customer	
  unit,	
  developer	
  unit,	
  tester	
  unit	
  	
  
10 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Fast	
  Car	
  Example	
  
§  Who	
  wants	
  a	
  fast	
  car?	
  
§  Criteria	
  
–  Run	
  on	
  a	
  closed	
  course,	
  measure	
  accelera2on	
  	
  
§  Test	
  
–  Detail	
  accelera2on	
  (0	
  to	
  60	
  mph	
  in	
  X	
  seconds)	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 6
11 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
ATDD	
  as	
  a	
  Prism	
  
Requirement
Tests
ATDD
Fast Car
Acceleration
Top Speed
12 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Why?	
  
§  Rework	
  Down	
  from	
  60%	
  to	
  20%	
  
§  Workflows	
  Working	
  First	
  Time	
  
§  LiAle	
  Room	
  for	
  Miscommunica2on	
  
§  Saving	
  Time	
  
§  Gefng	
  Business	
  Rules	
  Right	
  
§  Game	
  Changing	
  
§  Tighter	
  Cross-­‐Func2onal	
  Team	
  Integra2on	
  
§  Crisp	
  Visible	
  Story	
  Comple2on	
  Criteria	
  
§  Automa2on	
  Yields	
  Reduced	
  Tes2ng	
  Time	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 7
13 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Value	
  Stream	
  Map	
  –	
  Classical	
  Development	
  
Elicit	
  
Requirements	
  
Analyze	
  
Requirements	
   Design	
  	
  
Code	
   Test	
  
Why go back?
Deploy	
  
14 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Why	
  Mistakes?	
  
§  Misunderstandings,	
  missed	
  requirements,	
  mis-­‐other	
  	
  
§  Feedback	
  helps	
  to	
  correct	
  misunderstandings	
  	
  
§  Quick	
  feedback	
  beAer	
  than	
  slow	
  feedback	
  
Desired ActualActual
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 8
15 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Value	
  Stream	
  Map	
  –	
  Agile	
  Development	
  
Elicit	
  
Requirements	
  
Analyze	
  
Requirements	
  
With	
  Tests	
  
Design	
  	
  
Code	
  With	
  
Tests	
  
Deploy	
  
16 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Move	
  Tes2ng	
  Forward	
  
§  Two	
  types	
  of	
  tes2ng	
  	
  
§  AAemp2ng	
  to	
  find	
  defects	
  	
  	
  	
  	
  	
  	
  	
  – is	
  WASTE	
  
§  AAemp2ng	
  to	
  prevent	
  defects	
  	
  –	
  is	
  ESSENTIAL	
  
§  When	
  are	
  defects	
  found?	
  
–  Preven2on	
  is	
  just	
  early	
  detec2on	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 9
17 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
The	
  	
  Team	
  
§  Customer	
  Unit	
  	
  -­‐	
  develops	
  the	
  requirements	
  
–  Product	
  Owner	
  
–  Business	
  analysts	
  
–  Users	
  	
  
–  Quality	
  Assurance	
  	
  
§  Developer	
  /	
  Tester	
  Unit	
  –	
  develops	
  the	
  implementa2on	
  
–  Programmers	
  
–  Testers	
  	
  
§  The	
  Triad	
  	
  
–  Customer,	
  developer,	
  tester	
  	
  
18 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Who	
  Does	
  What	
  
§  Author	
  the	
  tests	
  (write)	
  
–  Triad	
  -­‐	
  customer,	
  tester,	
  developer	
  
§  Connect	
  tests	
  to	
  system	
  (bind)	
  
–  Developer	
  
§  Run	
  the	
  tests	
  (run)	
  	
  
–  Developers,	
  testers,	
  customers	
  
–  Automated	
  –	
  part	
  of	
  build	
  	
  
Test	
   write	
   bind	
   run	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 10
19 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Usually	
  the	
  Case	
  
Code	
  
write	
   run	
  bind	
  
20 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
A	
  BeAer	
  Way	
  
Code	
  
write	
  
run	
  
bind	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 11
21 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Requirements	
  and	
  Tests	
  
§  Requirements	
  and	
  tests	
  are	
  inter-­‐related	
  	
  
–  You	
  can’t	
  have	
  one	
  without	
  the	
  other	
  	
  
§  Failing	
  test	
  is	
  a	
  requirement	
  
–  Passing	
  test	
  denotes	
  specifica2on	
  on	
  how	
  system	
  works	
  
22 2 June 2015
Acceptance	
  Test	
  
Examples	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 12
23 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
First Example
§  Input	
  Temperature	
  in	
  Celsius,	
  Output	
  Temperature	
  in	
  Fahrenheit	
  	
  
§  What	
  tests	
  would	
  you	
  run?	
  	
  
	
  
24 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Input and Output Example (continued)
Celsius	
   Fahrenheit	
   Notes	
  
0	
   32	
  
100	
   212	
   Needed?	
  
-­‐273.15	
   -­‐459.7	
   Precision?	
  
-­‐273.151	
   Error	
   Below	
  0	
  Kelvin	
  	
  
500	
   932	
   Maximum	
  –	
  Needed?	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 13
25 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Input and Output – “Unit Tests”
Celsius	
   Fahrenheit	
   Notes	
  
0	
   32	
  
100	
   212	
   Needed?	
  
Celsius	
   Fahrenheit	
   Notes	
  
-­‐273.15	
   -­‐459.67	
   Precision	
  
Formula Tests
Precision Tests
Celsius	
   Fahrenheit	
   Notes	
  
-­‐273.15	
   -­‐459.67	
   0	
  Kelvin	
  	
  
-­‐273.151	
   Error	
   Below	
  0	
  Kelvin	
  	
  
500	
   932	
   Maximum	
  –	
  Needed?	
  
Limit Tests
26 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
A	
  Business	
  Rule	
  Example	
  
If	
  Customer	
  Ra2ng	
  is	
  Good	
  and	
  the	
  Order	
  Total	
  is	
  less	
  
than	
  or	
  equal	
  $10.00,	
  
	
   	
  Then	
  do	
  not	
  give	
  a	
  discount,	
  	
  
	
   	
  Otherwise	
  give	
  a	
  1%	
  discount.	
  
If	
  Customer	
  Ra2ng	
  is	
  Excellent,	
  	
  
	
  Then	
  give	
  a	
  discount	
  of	
  1%	
  for	
  any	
  order.	
  	
  
If	
  the	
  Order	
  Total	
  is	
  greater	
  than	
  $50.00,	
  	
  
	
  	
  	
  	
  	
  Then	
  give	
  a	
  discount	
  of	
  5%.	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 14
27 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Business	
  Rule	
  Table	
  =	
  Test	
  
Discount	
  
Order	
  total	
   Customer	
  ra8ng	
   Discount	
  percentage?	
  
$10.00	
   Good	
   0%	
  
$10.01	
   Good	
   1%	
  
$50.01	
   Good	
   1%	
  
$.01	
   Excellent	
   1%	
  
$50.00	
   Excellent	
   1%	
  
$50.01	
   Excellent	
   5%	
  
28 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Ways	
  To	
  Implement	
  Test	
  
§  Tes2ng	
  script	
  	
  
§  Program	
  interface	
  
§  Xunit	
  framework	
  	
  	
  
§  ATDD	
  framework	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 15
29 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Tes2ng	
  script	
  	
  
§  Tester	
  creates	
  script	
  (usually	
  GUI	
  based).	
  
§  Example:	
  
–  Logon	
  as	
  Customer	
  who	
  is	
  rated	
  Good	
  	
  
–  Start	
  order	
  
–  Put	
  items	
  in	
  the	
  order	
  un2l	
  the	
  total	
  is	
  exactly	
  $10.01	
  
–  Complete	
  order	
  
–  Check	
  it	
  shows	
  a	
  $.10	
  discount	
  	
  
§  Repeat	
  for	
  other	
  five	
  cases	
  	
  	
  
30 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Program	
  interface	
  
§  Create	
  a	
  command	
  line	
  or	
  graphic	
  user	
  interface	
  
Screen
Discount
Method
Discount Percentage Screen
Customer Type: Good
Order Total: 10.01
Percentage: 1 %
C:>DiscountPercentage Good 10.01
Percentage: 1%
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 16
31 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
XUnit	
  Test	
  
class TestCase {
testDiscountPercentageForCustomer() {
SomeClass o = new SomeClass()
assertEquals(0, o.computeDiscount(10.0, Good));
assertEquals(1, o.computeDiscount(10.01, Good));
assertEquals(1, o.computeDiscount(50.01, Good));
assertEquals(1, o.computeDiscount(.01, Excellent));
assertEquals(1, o.computeDiscount(50.0, Excellent));
assertEquals(5, o.computeDiscount(50.01, Excellent));
}
}
32 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Fit	
  	
  (Table	
  =	
  Test)	
  
Discount	
  
Order	
  total	
   Customer	
  ra8ng	
   Discount	
  percentage?	
  
10.00	
   Good	
   0	
  
10.01	
   Good	
   1	
  
50.01	
   Good	
   1	
  
.01	
   Excellent	
   1	
  
50.00	
   Excellent	
   1	
  
50.01	
   Excellent	
   5	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 17
33 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Fit	
  Test	
  
Discount	
  
Order	
  total	
   Customer	
  ra8ng	
   Discount	
  percentage?	
  
10.00	
   Good	
   0	
  
10.01	
   Good	
   1	
  
50.01	
   Good	
   Expected	
  1	
  Actual	
  5	
  
.01	
   Excellent	
   1	
  
50.00	
   Excellent	
   1	
  
50.01	
   Excellent	
   5	
  	
  
34 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Tables	
  As	
  Requirement	
  and	
  Test	
  	
  
Discount Rule
Customer Rating Order Total Discount Percentage
Good
<= $10.00 0%
Otherwise 1%
Excellent
Any 1%
> $50.00 5%
Discount	
  	
  Test	
  
Order	
  total	
   Customer	
  ra8ng	
   Discount	
  percentage?	
  
$10.00	
   Good	
   0%	
  
$10.01	
   Good	
   1%	
  
$50.01	
   Good	
   1%	
  
$.01	
   Excellent	
   1%	
  
$50.00	
   Excellent	
   1%	
  
$50.01	
   Excellent	
   5%	
  
Requirement
Test
(Seems unclear)
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 18
35 2 June 2015
Test	
  Anatomy	
  
36 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Scenario	
  Flow	
  
Ini2al	
  
System	
  
State	
  
Scenario	
  
Setup	
  
(Given)	
  
Trigger	
  
(When)	
  
Assert	
  
(Then)	
  
Action or Event
Expected	
  
System	
  
State	
  and	
  
Output	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 19
37 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Example	
  of	
  Scenario	
  
§  Given	
  (Setup)	
  
–  Car	
  is	
  not	
  moving	
  	
  
§  When	
  (Trigger)	
  
–  Accelerator	
  pressed	
  
§  Then	
  (Assert)	
  
–  60	
  MPH	
  reached	
  before	
  4.5	
  seconds	
  
38 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Test	
  Flow	
  
Ini2al	
  
System	
  
State	
  
Test	
  
Setup	
  
(Given)	
  
Trigger	
  
(When)	
  
Assert	
  
(Then)	
  
Final	
  
System	
  
State	
  and	
  
Output	
  
Action or Event
Expected	
  
System	
  
State	
  and	
  
Output	
  
Compare
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 20
39 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Example	
  of	
  Test	
  Against	
  Scenario	
  
§  Given	
  (Setup)	
  
–  Car	
  is	
  not	
  moving	
  	
  
§  When	
  (Trigger)	
  
–  Accelerator	
  pressed	
  
§  Then	
  (Verify)	
  
–  Check	
  that	
  60	
  MPH	
  is	
  reached	
  before	
  4.5	
  seconds	
  
40 2 June 2015
Workflow	
  
Example	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 21
41 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Context	
  
§  Sam’s	
  Lawn	
  Mower	
  Repair	
  and	
  CD	
  Rental	
  Store	
  
–  A	
  custom	
  soLware	
  package	
  for	
  CD	
  rentals.	
  
	
  
42 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
User	
  Story	
  Examples	
  	
  
§ As	
  the	
  clerk,	
  I	
  want	
  to	
  check	
  out	
  a	
  CD	
  for	
  a	
  
customer.	
  
§ As	
  the	
  clerk,	
  I	
  want	
  to	
  check	
  in	
  a	
  CD	
  for	
  a	
  
customer.	
  
§ As	
  the	
  inventory	
  maintainer,	
  I	
  want	
  to	
  know	
  
where	
  every	
  CD	
  is—in	
  the	
  store	
  or	
  rented.	
  	
  
	
  
42
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 22
43 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Use	
  Case	
  Example	
  
§  Name—Check	
  Out	
  	
  CD.	
  
§  Descrip8on—Check	
  out	
  a	
  CD	
  for	
  a	
  customer.	
  
§  Actor—Clerk.	
  	
  
§  Pre-­‐condi8ons—The	
  customer	
  has	
  an	
  iden2fica2on.	
  The	
  CD	
  
has	
  an	
  iden2ty.	
  	
  
§  Post-­‐condi8ons—The	
  CD	
  is	
  recorded	
  as	
  rented.	
  The	
  rental	
  
contract	
  is	
  printed.	
  
§  Main	
  Course:	
  	
  
1.	
  The	
  clerk	
  enters	
  the	
  customer	
  iden2fica2on	
  and	
  CD	
  iden2fier	
  into	
  
the	
  system.	
  
2.	
  The	
  system	
  records	
  the	
  informa2on.	
  
3.	
  	
  The	
  system	
  prints	
  a	
  contract	
  that	
  the	
  customer	
  signs.	
  
	
  
43
44 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Given	
  /	
  When	
  /	
  Then	
  Example	
  
§  Context:	
  Sam’s	
  	
  Lawn	
  Mower	
  Repair	
  and	
  CD	
  Rental	
  Store	
  
§  Given	
  (Setup)	
  
	
  Customer	
  has	
  ID	
  (ini2al	
  system	
  state)	
  
	
  CD	
  has	
  ID	
  (ini2al	
  system	
  state)	
  
	
  CD	
  is	
  not	
  currently	
  rented	
  (ini2al	
  system	
  state)	
  
§  When	
  (Trigger)	
  
	
  Clerk	
  checks	
  out	
  CD	
  (ac2on)	
  	
  
§  Then	
  	
  (Verify)	
  
	
  CD	
  recorded	
  as	
  rented	
  (final	
  system	
  state)	
  
	
  Rental	
  contract	
  printed	
  (output)	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 23
45 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Example	
  (1)	
  
Check	
  Out	
  CD	
  
§  Given	
  Customer	
  has	
  ID	
  	
  
	
  	
  	
  	
  	
  and	
  CD	
  has	
  ID	
  	
  
	
  	
  	
  	
  	
  and	
  CD	
  is	
  not	
  currently	
  rented	
  	
  
Customer Data
Name ID
James 007
CD Data
ID Title Rented
CD2 Beatles Greatest Hits No
46 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Example	
  (2)	
  
§  When	
  a	
  clerk	
  checks	
  out	
  a	
  CD:	
  
Check Out CD
Enter Customer ID 007
Enter CD ID CD2
Execute Rent
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 24
47 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Example	
  (3)	
  
§  Then	
  the	
  CD	
  is	
  recorded	
  as	
  rented	
  and	
  a	
  rental	
  contract	
  
is	
  printed:	
  	
  
CD Data
ID Title Rented Customer ID
CD2 Beatles Greatest Hits Yes 007
Rental Contract
Customer ID Customer Name CD ID CD Title
007 James CD2 Beatles Greatest Hits
48 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Example	
  –	
  Extended	
  
§  Given	
  	
  
§  When	
  a	
  clerk	
  checks	
  out	
  a	
  CD	
  on:	
  
	
  
§  Then	
  a	
  rental	
  contract	
  is	
  printed:	
  	
  
Rental Contract
Customer ID Customer Name CD ID CD Title Due Fee
007 James CD2 Beatles Greatest Hits 1/3/2014 $3
Rental Fee Business Rule
Fee
$3
Today
1/1/2014
Rental Time Business Rule
Time
2 days
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 25
49 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
The	
  Ac2on	
  	
  
§  Can	
  drive	
  a	
  GUI	
  
§  Or	
  a	
  method	
  	
  
Rent(CustomerID aCustomer, CDID aCD);
50 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Example	
  of	
  Business	
  Rule	
  
CD	
  Rental	
  Rates	
  Business	
  Rule	
  	
  
Regular	
  	
  $2	
  /	
  2	
  days	
  plus	
  $1	
  /	
  day	
  	
  
Golden	
  Oldie	
  $2	
  /	
  4	
  days	
  plus	
  $	
  .50	
  /	
  day	
  
Hot	
  Stuff	
  	
  $2	
  /	
  1	
  days	
  plus	
  $2	
  /	
  day	
  
_s	
  
CD	
  Rental	
  Rates	
  	
  As	
  Table	
  
Type	
   Base	
  Rental	
  
Period	
  Days	
  
Base	
  Rental	
  Fee	
   Extra	
  Day	
  	
  Fee	
  
Regular	
   2	
   $2	
   $1	
  
Golden	
  Oldie	
   4	
   $2	
   $.50	
  
Hot	
  Stuff	
   1	
   $2	
   $2	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 26
51 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Example	
  of	
  Business	
  Rule	
  Test	
  
CD	
  Rates	
  Test	
  	
  
Type	
   Days	
   Cost?	
  
Regular	
   2	
   $2	
  
Golden	
  Oldie	
   5	
   $2.50	
  
Hot	
  Stuff	
   6	
   $12	
  
Hot	
  Stuff	
   50	
  	
   IGBTYOT	
  	
  
CD	
  Rental	
  Rates	
  Business	
  Rule	
  	
  
Regular	
  	
  $2	
  /	
  2	
  days	
  plus	
  $1	
  /	
  day	
  	
  
Golden	
  Oldie	
  $2	
  /	
  4	
  days	
  plus	
  $	
  .50	
  /	
  day	
  
Hot	
  Stuff	
  	
  $2	
  /	
  1	
  days	
  plus	
  $2	
  /	
  day	
  
_s	
  
52 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Business	
  Rule	
  and	
  Flow	
  Tests	
  
§  Use	
  cases	
  /	
  scenarios	
  usually	
  include	
  business	
  rules.	
  
§  Test	
  every	
  business	
  rule	
  separately	
  	
  
§  Flow	
  test	
  (of	
  scenario)	
  
–  Uses	
  one	
  varia2on	
  of	
  business	
  rule	
  
	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 27
53 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Flow	
  Example	
  Revisited	
  
Check	
  Out	
  CD	
  
Given	
  Customer	
  has	
  ID;	
  CD	
  has	
  ID	
  and	
  not	
  currently	
  rented	
  	
  
	
  
	
  and	
  one	
  varia2on	
  of	
  business	
  rule	
  for	
  Rental	
  Rates	
  
Customer Data
Name ID
James 007
CD Data
ID Title Rented Type
CD2 Beatles Greatest Hits No Regular
CD	
  Rental	
  Rates	
  	
  As	
  Table	
  
Type	
   Base	
  Rental	
  
Period	
  Days	
  
Base	
  Rental	
  Fee	
   Extra	
  Day	
  	
  Fee	
  
Regular	
   2	
   $2	
   $1	
  
54 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Flow	
  Example	
  –	
  Extended	
  
§  When	
  a	
  clerk	
  checks	
  out	
  a	
  CD	
  on:	
  
	
  
	
  
§  Then	
  a	
  rental	
  contract	
  is	
  printed:	
  	
  
Rental Contract
Customer ID Customer Name CD ID CD Title Due Fee
007 James CD2 Beatles Greatest Hits 1/3/2014 $2
Today
1/1/2014
Check Out CD
Enter Customer ID 007
Enter CD ID CD2
Execute Rent
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 28
55 2 June 2015
Guidelines	
  
56 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Tests	
  
§  Acceptance	
  tests	
  are	
  not	
  a	
  subs2tute	
  for	
  interac2ve	
  
communica2on	
  	
  
–  They	
  can	
  provide	
  focus	
  for	
  that	
  communica2on	
  
§  Tests	
  in	
  business	
  domain	
  terms	
  	
  
–  Shared	
  between	
  customer	
  unit	
  and	
  developer	
  unit	
  
	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 29
57 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Guidelines	
  
§  Tests	
  and	
  automa2on	
  should	
  be	
  developed	
  separately.	
  	
  	
  
–  Understand	
  the	
  test	
  first	
  
–  Then	
  explore	
  how	
  to	
  automate	
  it.	
  
§  Automate	
  tests	
  for	
  regression	
  	
  
–  Use	
  in	
  con2nuous	
  build	
  	
  
§  As	
  much	
  as	
  prac2cal,	
  cover	
  100%	
  of	
  the	
  func2onal	
  
requirements	
  by	
  acceptance	
  tests.	
  	
  
§  Can	
  break	
  down	
  stories	
  by	
  acceptance	
  tests	
  	
  
–  One	
  acceptance	
  test	
  per	
  story	
  	
  	
  	
  	
  
58 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Tes2ng	
  Strategies	
  
Meszaros, XUNIT TEST PATTERNS: REFACTORING TEST CODE,
Fig 6.1 "Purpose of Tests" p. 51, © 2007 Pearson Education, Inc
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 30
59 2 June 2015
Not	
  an	
  Ending,	
  
But	
  a	
  Beginning	
  
60 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Recap	
  
§  Primary	
  goals	
  
–  Discover	
  ambiguous	
  requirements	
  and	
  gaps	
  in	
  requirements	
  
early	
  on.	
  
–  Create	
  a	
  record	
  of	
  business/development	
  understanding.	
  
§  Secondary	
  goals	
  
–  Use	
  acceptance	
  tests	
  as	
  an	
  executable	
  regression	
  test.	
  
–  Measure	
  the	
  complexity	
  of	
  requirements.	
  
–  Use	
  the	
  tests	
  as	
  a	
  basis	
  for	
  user	
  documenta2on.	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 31
info@netobjectives.com
www.netobjectives.com
61 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Go	
  Forth	
  and	
  
Become	
  
Acceptance	
  Test	
  
Creators	
  
	
  	
  
Thank	
  You	
  
	
  	
  
info@netobjectives.com
www.netobjectives.com
62 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Supplemental	
  
Slides	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 32
63 2 June 2015
Context	
  Diagram	
  
64 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Context	
  Diagram	
  	
  
§  A	
  context	
  diagram	
  shows	
  scope	
  
Process	
  
External Actors
Outputs
Input /
Output
Inputs
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 33
65 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
CD	
  Rental	
  Diagram	
  
Process	
  
Clerk
Credit Card
Processor
Database
Check-out/Check-in
Response
Send Transaction
Response
Update
Rental Info
Retrieve
Rental
66 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
External	
  Interfaces	
  
§  Connec2ons	
  to	
  external	
  systems	
  need	
  to	
  have	
  test	
  doubles	
  
(mocks)	
  
–  They	
  are	
  stand-­‐ins	
  for	
  real	
  system	
  during	
  tes2ng	
  	
  
–  Random	
  events	
  may	
  need	
  to	
  simulated	
  	
  
§  Test	
  doubles	
  give	
  repeatability	
  and	
  speed	
  	
  
–  Cheaper	
  if	
  have	
  to	
  pay	
  for	
  service	
  	
  
External system,
device, service
Random
events
Time
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 34
67 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
CD	
  Rental	
  Diagram	
  (Revisited)	
  	
  
Process	
  
Clerk Test Double
(UI or Mid-tier)
Credit Card
Processor Test
Double
Database Test
Double
Check-out/Check-in
Response
Send Transaction
Response
Update
Rental Info
Retrieve
Rental
68 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Context	
  of	
  Automobile	
  
Drive	
  
shaL	
  
	
  
Acceleration
De-acceleration Movement
Trans-­‐
mission	
  
Engine	
  
	
   Wheels	
  
	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 35
69 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Alterna2ve	
  Design	
  of	
  Automobile	
  
Acceleration
De-acceleration Movement
Engines	
  
	
  
Wheels	
  
	
  
Engine	
  
Controller	
  
	
  
70 2 June 2015
Cucumber	
  
Version	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 36
71 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Cucumber	
  Version	
  	
  
Scenario Outline: Compute discount
Given total is <OrderTotal> and rating is
"<CustomerRating>"
When I compute discount
Then percent is <DiscountPercentage>
Examples:
|OrderTotal|CustomerRating|DiscountPercentage|
|10.00 |Good |0 |
|10.01 |Good |1 |
|50.01 |Good |1 |
|0.01 |Excellent |1 |
|50.00 |Excellent |1 |
|50.01 |Excellent |5 |
	
  	
  
72 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Alterna2ve	
  (2)	
  	
  
Cucumber	
  /	
  Specflow	
  with	
  Tables	
  	
  
Feature: Check Out
As a store clerk
I want check out a CD for a customer
So that I keep track of where the CDs are
Scenario: Normal Check Out
Given customer exists:
|ID | Name |
|007| James|
And CD exists:
|ID | Title | Rented |
|CD2 | "Beatles Greatest Hits" | No |
When CD "CD2" is checked out to Customer "007"
Then CD is now:
|ID | Title | Rented | CustomerID |
|CD2 | "Beatles Greatest Hits" | Yes | 007 |
And rental contract produced:
|CustomerID | CustomerName | CDID | CDTitle |
|007 | James | CD2 | Beatles Greatest Hits |
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 37
73 2 June 2015
Sequence	
  
74 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Usually	
  the	
  Case	
  
Code	
  
write	
   run	
  bind	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 38
75 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
A	
  BeAer	
  Way	
  
Code	
  
write	
  
run	
  
bind	
  
76 2 June 2015
Process	
  Notes	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 39
77 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Process	
  Note	
  (1)	
  
Requirement Testable
Requirement
Developable
Requirement
At least one
example for
each test
Not schedulable Preferably all
examples for
all tests
78 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Process	
  Note	
  (2)	
  
Code	
  
write	
  
run	
  
bind	
  
Code	
  
write	
  
run	
  
bind	
  
Write previous iteration
Write within iteration
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 40
79 2 June 2015
ReseTng	
  Tests	
  
80 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Resefng	
  Tests	
  
§  Changes	
  in	
  system	
  state	
  need	
  to	
  be	
  reset	
  before	
  
running	
  test	
  again	
  
§  Some	
  ways	
  
–  Another	
  test	
  that	
  reverses	
  state	
  (e.g.	
  Check	
  In	
  CD)	
  	
  
–  Set	
  persistent	
  storage	
  back	
  to	
  original	
  state	
  	
  
§  For	
  just	
  affected	
  records	
  (CD)	
  	
  
§  For	
  all	
  records	
  (en2re	
  database)	
  	
  
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 41
81 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Example	
  (1)	
  
Check	
  In	
  CD	
  
§  Given	
  CD	
  is	
  rented	
  	
  
CD Data
ID Title Rented Customer ID
CD2 Beatles Greatest Hits Yes 007
82 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Example	
  (2)	
  
§  When	
  a	
  clerk	
  checks	
  in	
  	
  CD:	
  
Check Out CD
Enter CD ID CD2
Execute Return
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration
Copyright © 2011 Net Objectives 42
83 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015
Full	
  Example	
  (3)	
  
§  Then	
  the	
  CD	
  is	
  recorded	
  as	
  not	
  rented	
  
CD Data
ID Title Rented
CD2 Beatles Greatest Hits No

More Related Content

What's hot

QA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallQA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallSynerzip
 
Leveraging Cloud data to optimize your product decisions and Agile processes ...
Leveraging Cloud data to optimize your product decisions and Agile processes ...Leveraging Cloud data to optimize your product decisions and Agile processes ...
Leveraging Cloud data to optimize your product decisions and Agile processes ...AgileSparks
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidNaresh Jain
 
Top Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingTop Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingAndriy Melnyk
 
KPI's are your best friend - Slides
KPI's are your best friend - SlidesKPI's are your best friend - Slides
KPI's are your best friend - SlidesitSMF Belgium
 
BizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleBizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleQASymphony
 
Metrics to Power DevOps
Metrics to Power DevOpsMetrics to Power DevOps
Metrics to Power DevOpsCollabNet
 
Embedded meets Agile
Embedded meets AgileEmbedded meets Agile
Embedded meets AgileRavneet Kaur
 
Pooja shift left 1.0
Pooja shift left 1.0Pooja shift left 1.0
Pooja shift left 1.0Xebia India
 
Damn... we missed the date again
Damn... we missed the date againDamn... we missed the date again
Damn... we missed the date againSudipta Lahiri
 
Agile Test Automation
Agile Test AutomationAgile Test Automation
Agile Test AutomationWerner Keil
 
Agile performance testing
Agile performance testingAgile performance testing
Agile performance testingAndriy Melnyk
 
Webinar agile-spring-maximum-roi
Webinar agile-spring-maximum-roiWebinar agile-spring-maximum-roi
Webinar agile-spring-maximum-roiCygnet Infotech
 
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...QA or the Highway
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingJosiah Renaudin
 
QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]Jim Spillson
 

What's hot (20)

Shifting Left Webinar Slideshow
Shifting Left Webinar SlideshowShifting Left Webinar Slideshow
Shifting Left Webinar Slideshow
 
QA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael HallQA Role In Agile Teams - by Michael Hall
QA Role In Agile Teams - by Michael Hall
 
Leveraging Cloud data to optimize your product decisions and Agile processes ...
Leveraging Cloud data to optimize your product decisions and Agile processes ...Leveraging Cloud data to optimize your product decisions and Agile processes ...
Leveraging Cloud data to optimize your product decisions and Agile processes ...
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
Top Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingTop Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance Testing
 
KPI's are your best friend - Slides
KPI's are your best friend - SlidesKPI's are your best friend - Slides
KPI's are your best friend - Slides
 
BizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleBizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at Scale
 
Metrics to Power DevOps
Metrics to Power DevOpsMetrics to Power DevOps
Metrics to Power DevOps
 
Embedded meets Agile
Embedded meets AgileEmbedded meets Agile
Embedded meets Agile
 
AgileCamp 2015: Scrum for Full Scale Manufacturing, Joe Justice
AgileCamp 2015: Scrum for Full Scale Manufacturing, Joe JusticeAgileCamp 2015: Scrum for Full Scale Manufacturing, Joe Justice
AgileCamp 2015: Scrum for Full Scale Manufacturing, Joe Justice
 
Pooja shift left 1.0
Pooja shift left 1.0Pooja shift left 1.0
Pooja shift left 1.0
 
Damn... we missed the date again
Damn... we missed the date againDamn... we missed the date again
Damn... we missed the date again
 
Agile Test Automation
Agile Test AutomationAgile Test Automation
Agile Test Automation
 
Agile performance testing
Agile performance testingAgile performance testing
Agile performance testing
 
Webinar agile-spring-maximum-roi
Webinar agile-spring-maximum-roiWebinar agile-spring-maximum-roi
Webinar agile-spring-maximum-roi
 
Automation CICD
Automation CICDAutomation CICD
Automation CICD
 
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of Testing
 
Demystifying Devops - Uday kumar
Demystifying Devops - Uday kumarDemystifying Devops - Uday kumar
Demystifying Devops - Uday kumar
 
QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]
 

Viewers also liked

Integrate V&V within Scrum: How Does That Work?
Integrate V&V within Scrum: How Does That Work?Integrate V&V within Scrum: How Does That Work?
Integrate V&V within Scrum: How Does That Work?TechWell
 
Mastering Android Development Tools
Mastering Android Development ToolsMastering Android Development Tools
Mastering Android Development ToolsTechWell
 
Mobile Test Automation with Big Data Analytics
Mobile Test Automation with Big Data AnalyticsMobile Test Automation with Big Data Analytics
Mobile Test Automation with Big Data AnalyticsTechWell
 
Extreme Agile: Managing Fully-Distributed Teams
Extreme Agile: Managing Fully-Distributed Teams Extreme Agile: Managing Fully-Distributed Teams
Extreme Agile: Managing Fully-Distributed Teams TechWell
 
Conflict: To Know It Is to Love It
Conflict: To Know It Is to Love ItConflict: To Know It Is to Love It
Conflict: To Know It Is to Love ItTechWell
 
The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...TechWell
 
Reduce Test Automation Execution Time by 80%
Reduce Test Automation Execution Time by 80%Reduce Test Automation Execution Time by 80%
Reduce Test Automation Execution Time by 80%TechWell
 
If You Could Turn Back Time: Coaching New Testers
If You Could Turn Back Time: Coaching New TestersIf You Could Turn Back Time: Coaching New Testers
If You Could Turn Back Time: Coaching New TestersTechWell
 
Windows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceWindows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceTechWell
 
Lean Test Management: Reduce Waste in Planning, Automation, and Execution
Lean Test Management: Reduce Waste in Planning, Automation, and ExecutionLean Test Management: Reduce Waste in Planning, Automation, and Execution
Lean Test Management: Reduce Waste in Planning, Automation, and ExecutionTechWell
 
Requirements Are Simply Requirements—or Maybe Not
Requirements Are Simply Requirements—or Maybe Not Requirements Are Simply Requirements—or Maybe Not
Requirements Are Simply Requirements—or Maybe Not TechWell
 
Non-Functional Requirements: Forgotten, Neglected, and Misunderstood
Non-Functional Requirements: Forgotten, Neglected, and MisunderstoodNon-Functional Requirements: Forgotten, Neglected, and Misunderstood
Non-Functional Requirements: Forgotten, Neglected, and MisunderstoodTechWell
 
Architect a Winning Mobile Application
Architect a Winning Mobile ApplicationArchitect a Winning Mobile Application
Architect a Winning Mobile ApplicationTechWell
 
The Tester’s Role in Agile Planning
The Tester’s Role in Agile PlanningThe Tester’s Role in Agile Planning
The Tester’s Role in Agile PlanningTechWell
 
The Agile Testing Survival Guide
The Agile Testing Survival GuideThe Agile Testing Survival Guide
The Agile Testing Survival GuideTechWell
 
Measuring Quality: Testing Metrics and Trends in Practice
Measuring Quality: Testing Metrics and Trends in PracticeMeasuring Quality: Testing Metrics and Trends in Practice
Measuring Quality: Testing Metrics and Trends in PracticeTechWell
 
Seven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile PerformanceSeven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile PerformanceTechWell
 

Viewers also liked (17)

Integrate V&V within Scrum: How Does That Work?
Integrate V&V within Scrum: How Does That Work?Integrate V&V within Scrum: How Does That Work?
Integrate V&V within Scrum: How Does That Work?
 
Mastering Android Development Tools
Mastering Android Development ToolsMastering Android Development Tools
Mastering Android Development Tools
 
Mobile Test Automation with Big Data Analytics
Mobile Test Automation with Big Data AnalyticsMobile Test Automation with Big Data Analytics
Mobile Test Automation with Big Data Analytics
 
Extreme Agile: Managing Fully-Distributed Teams
Extreme Agile: Managing Fully-Distributed Teams Extreme Agile: Managing Fully-Distributed Teams
Extreme Agile: Managing Fully-Distributed Teams
 
Conflict: To Know It Is to Love It
Conflict: To Know It Is to Love ItConflict: To Know It Is to Love It
Conflict: To Know It Is to Love It
 
The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...
 
Reduce Test Automation Execution Time by 80%
Reduce Test Automation Execution Time by 80%Reduce Test Automation Execution Time by 80%
Reduce Test Automation Execution Time by 80%
 
If You Could Turn Back Time: Coaching New Testers
If You Could Turn Back Time: Coaching New TestersIf You Could Turn Back Time: Coaching New Testers
If You Could Turn Back Time: Coaching New Testers
 
Windows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceWindows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile Workforce
 
Lean Test Management: Reduce Waste in Planning, Automation, and Execution
Lean Test Management: Reduce Waste in Planning, Automation, and ExecutionLean Test Management: Reduce Waste in Planning, Automation, and Execution
Lean Test Management: Reduce Waste in Planning, Automation, and Execution
 
Requirements Are Simply Requirements—or Maybe Not
Requirements Are Simply Requirements—or Maybe Not Requirements Are Simply Requirements—or Maybe Not
Requirements Are Simply Requirements—or Maybe Not
 
Non-Functional Requirements: Forgotten, Neglected, and Misunderstood
Non-Functional Requirements: Forgotten, Neglected, and MisunderstoodNon-Functional Requirements: Forgotten, Neglected, and Misunderstood
Non-Functional Requirements: Forgotten, Neglected, and Misunderstood
 
Architect a Winning Mobile Application
Architect a Winning Mobile ApplicationArchitect a Winning Mobile Application
Architect a Winning Mobile Application
 
The Tester’s Role in Agile Planning
The Tester’s Role in Agile PlanningThe Tester’s Role in Agile Planning
The Tester’s Role in Agile Planning
 
The Agile Testing Survival Guide
The Agile Testing Survival GuideThe Agile Testing Survival Guide
The Agile Testing Survival Guide
 
Measuring Quality: Testing Metrics and Trends in Practice
Measuring Quality: Testing Metrics and Trends in PracticeMeasuring Quality: Testing Metrics and Trends in Practice
Measuring Quality: Testing Metrics and Trends in Practice
 
Seven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile PerformanceSeven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile Performance
 

Similar to ATDD Lean-Agile Software Collaboration

Deloitte lean agile state of the nation
Deloitte lean   agile state of the nationDeloitte lean   agile state of the nation
Deloitte lean agile state of the nationAlexis Hui
 
Lean Software Development Is for Everyone
Lean Software Development Is for EveryoneLean Software Development Is for Everyone
Lean Software Development Is for EveryoneTechWell
 
Balancing the tension between Lean and Agile
Balancing the tension between Lean and AgileBalancing the tension between Lean and Agile
Balancing the tension between Lean and AgileJames Coplien
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Alan Hood
 
Good IT Project Management
Good IT Project Management Good IT Project Management
Good IT Project Management William Francis
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohantyJulen Mohanty
 
Introduction to Agile and Lean Software Development
Introduction to Agile and Lean Software DevelopmentIntroduction to Agile and Lean Software Development
Introduction to Agile and Lean Software DevelopmentThanh Nguyen
 
20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...
20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...
20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...Craeg Strong
 
Shifting Left Using Sauce Analytics
Shifting Left Using Sauce AnalyticsShifting Left Using Sauce Analytics
Shifting Left Using Sauce AnalyticsSauce Labs
 
Lean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise AgileLean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise AgileTechWell
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development ProcessSoftware Park Thailand
 
Agile: Not Just for Sofware
Agile: Not Just for SofwareAgile: Not Just for Sofware
Agile: Not Just for SofwareJohn Carter
 
ODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightJonathan Herring
 
Delivering A Great End User Experience
Delivering A Great End User ExperienceDelivering A Great End User Experience
Delivering A Great End User ExperienceTrevor Warren
 
Useful stepping stones in growth towards Agile testing by Kees Blokland
Useful stepping stones in growth towards Agile testing by Kees BloklandUseful stepping stones in growth towards Agile testing by Kees Blokland
Useful stepping stones in growth towards Agile testing by Kees BloklandKees Blokland
 
Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery Automation Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery Automation HP Enterprise Italia
 

Similar to ATDD Lean-Agile Software Collaboration (20)

Deloitte lean agile state of the nation
Deloitte lean   agile state of the nationDeloitte lean   agile state of the nation
Deloitte lean agile state of the nation
 
Lean Software Development Is for Everyone
Lean Software Development Is for EveryoneLean Software Development Is for Everyone
Lean Software Development Is for Everyone
 
Balancing the tension between Lean and Agile
Balancing the tension between Lean and AgileBalancing the tension between Lean and Agile
Balancing the tension between Lean and Agile
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?
 
Good IT Project Management
Good IT Project Management Good IT Project Management
Good IT Project Management
 
Test Policy and Practices
Test Policy and PracticesTest Policy and Practices
Test Policy and Practices
 
Agile adoption julen c. mohanty
Agile adoption   julen c. mohantyAgile adoption   julen c. mohanty
Agile adoption julen c. mohanty
 
Sherin Abhilash
Sherin AbhilashSherin Abhilash
Sherin Abhilash
 
Introduction to Agile and Lean Software Development
Introduction to Agile and Lean Software DevelopmentIntroduction to Agile and Lean Software Development
Introduction to Agile and Lean Software Development
 
20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...
20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...
20211114 Agile DevOps East Conf 2021 Bringing DevOps to an Entrenched Legacy ...
 
Agile dashboard
Agile dashboardAgile dashboard
Agile dashboard
 
GVL.Naidu_CV_QA
GVL.Naidu_CV_QAGVL.Naidu_CV_QA
GVL.Naidu_CV_QA
 
Shifting Left Using Sauce Analytics
Shifting Left Using Sauce AnalyticsShifting Left Using Sauce Analytics
Shifting Left Using Sauce Analytics
 
Lean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise AgileLean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise Agile
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development Process
 
Agile: Not Just for Sofware
Agile: Not Just for SofwareAgile: Not Just for Sofware
Agile: Not Just for Sofware
 
ODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff Right
 
Delivering A Great End User Experience
Delivering A Great End User ExperienceDelivering A Great End User Experience
Delivering A Great End User Experience
 
Useful stepping stones in growth towards Agile testing by Kees Blokland
Useful stepping stones in growth towards Agile testing by Kees BloklandUseful stepping stones in growth towards Agile testing by Kees Blokland
Useful stepping stones in growth towards Agile testing by Kees Blokland
 
Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery Automation Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery Automation
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 

Recently uploaded (20)

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 

ATDD Lean-Agile Software Collaboration

  • 1. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 1 info@netobjectives.com www.netobjectives.com 1 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015   Requirements  and  Tests  –  Yes   They  Go  Together   May 2015 2 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Ken  Pugh   ken.pugh   @netobjec2ves.com   Photo Size: Height: 2.25 Position: from top left corner Horizontal 0.75 Vertical 1. Picture Style: Simple Black Frame No code goes in till the test goes on. A journey of two thousand miles begins with a single step. §  Fellow  Consultant   §  OOA&D,  Design  PaAerns,  Lean,  Scrum,  Test-­‐Driven   Development   §  Over  2/5  century  of  soLware  development   experience   §  Author  of  seven  books,  including:   –   Prefactoring:  Extreme  Abstrac4on,  Extreme   Separa4on,  Extreme  Readability    (2006  Jolt  Award)   –   Interface  Oriented  Design   –  Lean  Agile  Acceptance  Test-­‐Driven  Development:   BeDer  SoEware  Through  Collabora4on  
  • 2. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 2 3 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Objec2ves   §  Show  how  requirements  and  tests  are  complementary   facets   §  How  to  create  requirements  and  tests  collabora2vely     4 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Overall  Rule   §  There  are  excep2ons  to  every  statement,  except  this   one   4
  • 3. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 3 5 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Flow   §  Introduc2on       §  Acceptance  Test  Examples   §  Test  Anatomy     §  Supplemental     5 6 2 June 2015 Introduc8on  
  • 4. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 4 7 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 5  W’s  and  an  H     §  ATDD     –  What  are  they   –  Who  creates  and  uses  them   –  When  are  they  created   –  Where  are  they  used   –  Why  use  them   –  How  to  create  them   8 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 What Are Acceptance Tests? §  Acceptance  Tests:     –  External  view  of  system     §  Examine  externally  visible  effects   –  Inputs  and  outputs     –  State  changes     –  External  interfaces     User   Server   Service   Provider  
  • 5. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 5 9 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Defini2ons   §  Acceptance  criteria   –  General  ideas     §  Acceptance  tests   –  Specific  tests  that  either  pass  or  fail   –  Implementa2on  independent         §  Triad  –  customer  unit,  developer  unit,  tester  unit     10 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Fast  Car  Example   §  Who  wants  a  fast  car?   §  Criteria   –  Run  on  a  closed  course,  measure  accelera2on     §  Test   –  Detail  accelera2on  (0  to  60  mph  in  X  seconds)    
  • 6. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 6 11 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 ATDD  as  a  Prism   Requirement Tests ATDD Fast Car Acceleration Top Speed 12 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Why?   §  Rework  Down  from  60%  to  20%   §  Workflows  Working  First  Time   §  LiAle  Room  for  Miscommunica2on   §  Saving  Time   §  Gefng  Business  Rules  Right   §  Game  Changing   §  Tighter  Cross-­‐Func2onal  Team  Integra2on   §  Crisp  Visible  Story  Comple2on  Criteria   §  Automa2on  Yields  Reduced  Tes2ng  Time  
  • 7. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 7 13 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Value  Stream  Map  –  Classical  Development   Elicit   Requirements   Analyze   Requirements   Design     Code   Test   Why go back? Deploy   14 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Why  Mistakes?   §  Misunderstandings,  missed  requirements,  mis-­‐other     §  Feedback  helps  to  correct  misunderstandings     §  Quick  feedback  beAer  than  slow  feedback   Desired ActualActual
  • 8. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 8 15 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Value  Stream  Map  –  Agile  Development   Elicit   Requirements   Analyze   Requirements   With  Tests   Design     Code  With   Tests   Deploy   16 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Move  Tes2ng  Forward   §  Two  types  of  tes2ng     §  AAemp2ng  to  find  defects                – is  WASTE   §  AAemp2ng  to  prevent  defects    –  is  ESSENTIAL   §  When  are  defects  found?   –  Preven2on  is  just  early  detec2on    
  • 9. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 9 17 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 The    Team   §  Customer  Unit    -­‐  develops  the  requirements   –  Product  Owner   –  Business  analysts   –  Users     –  Quality  Assurance     §  Developer  /  Tester  Unit  –  develops  the  implementa2on   –  Programmers   –  Testers     §  The  Triad     –  Customer,  developer,  tester     18 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Who  Does  What   §  Author  the  tests  (write)   –  Triad  -­‐  customer,  tester,  developer   §  Connect  tests  to  system  (bind)   –  Developer   §  Run  the  tests  (run)     –  Developers,  testers,  customers   –  Automated  –  part  of  build     Test   write   bind   run  
  • 10. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 10 19 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Usually  the  Case   Code   write   run  bind   20 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 A  BeAer  Way   Code   write   run   bind  
  • 11. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 11 21 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Requirements  and  Tests   §  Requirements  and  tests  are  inter-­‐related     –  You  can’t  have  one  without  the  other     §  Failing  test  is  a  requirement   –  Passing  test  denotes  specifica2on  on  how  system  works   22 2 June 2015 Acceptance  Test   Examples  
  • 12. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 12 23 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 First Example §  Input  Temperature  in  Celsius,  Output  Temperature  in  Fahrenheit     §  What  tests  would  you  run?       24 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Input and Output Example (continued) Celsius   Fahrenheit   Notes   0   32   100   212   Needed?   -­‐273.15   -­‐459.7   Precision?   -­‐273.151   Error   Below  0  Kelvin     500   932   Maximum  –  Needed?  
  • 13. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 13 25 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Input and Output – “Unit Tests” Celsius   Fahrenheit   Notes   0   32   100   212   Needed?   Celsius   Fahrenheit   Notes   -­‐273.15   -­‐459.67   Precision   Formula Tests Precision Tests Celsius   Fahrenheit   Notes   -­‐273.15   -­‐459.67   0  Kelvin     -­‐273.151   Error   Below  0  Kelvin     500   932   Maximum  –  Needed?   Limit Tests 26 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 A  Business  Rule  Example   If  Customer  Ra2ng  is  Good  and  the  Order  Total  is  less   than  or  equal  $10.00,      Then  do  not  give  a  discount,        Otherwise  give  a  1%  discount.   If  Customer  Ra2ng  is  Excellent,      Then  give  a  discount  of  1%  for  any  order.     If  the  Order  Total  is  greater  than  $50.00,              Then  give  a  discount  of  5%.    
  • 14. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 14 27 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Business  Rule  Table  =  Test   Discount   Order  total   Customer  ra8ng   Discount  percentage?   $10.00   Good   0%   $10.01   Good   1%   $50.01   Good   1%   $.01   Excellent   1%   $50.00   Excellent   1%   $50.01   Excellent   5%   28 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Ways  To  Implement  Test   §  Tes2ng  script     §  Program  interface   §  Xunit  framework       §  ATDD  framework    
  • 15. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 15 29 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Tes2ng  script     §  Tester  creates  script  (usually  GUI  based).   §  Example:   –  Logon  as  Customer  who  is  rated  Good     –  Start  order   –  Put  items  in  the  order  un2l  the  total  is  exactly  $10.01   –  Complete  order   –  Check  it  shows  a  $.10  discount     §  Repeat  for  other  five  cases       30 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Program  interface   §  Create  a  command  line  or  graphic  user  interface   Screen Discount Method Discount Percentage Screen Customer Type: Good Order Total: 10.01 Percentage: 1 % C:>DiscountPercentage Good 10.01 Percentage: 1%
  • 16. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 16 31 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 XUnit  Test   class TestCase { testDiscountPercentageForCustomer() { SomeClass o = new SomeClass() assertEquals(0, o.computeDiscount(10.0, Good)); assertEquals(1, o.computeDiscount(10.01, Good)); assertEquals(1, o.computeDiscount(50.01, Good)); assertEquals(1, o.computeDiscount(.01, Excellent)); assertEquals(1, o.computeDiscount(50.0, Excellent)); assertEquals(5, o.computeDiscount(50.01, Excellent)); } } 32 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Fit    (Table  =  Test)   Discount   Order  total   Customer  ra8ng   Discount  percentage?   10.00   Good   0   10.01   Good   1   50.01   Good   1   .01   Excellent   1   50.00   Excellent   1   50.01   Excellent   5    
  • 17. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 17 33 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Fit  Test   Discount   Order  total   Customer  ra8ng   Discount  percentage?   10.00   Good   0   10.01   Good   1   50.01   Good   Expected  1  Actual  5   .01   Excellent   1   50.00   Excellent   1   50.01   Excellent   5     34 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Tables  As  Requirement  and  Test     Discount Rule Customer Rating Order Total Discount Percentage Good <= $10.00 0% Otherwise 1% Excellent Any 1% > $50.00 5% Discount    Test   Order  total   Customer  ra8ng   Discount  percentage?   $10.00   Good   0%   $10.01   Good   1%   $50.01   Good   1%   $.01   Excellent   1%   $50.00   Excellent   1%   $50.01   Excellent   5%   Requirement Test (Seems unclear)
  • 18. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 18 35 2 June 2015 Test  Anatomy   36 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Scenario  Flow   Ini2al   System   State   Scenario   Setup   (Given)   Trigger   (When)   Assert   (Then)   Action or Event Expected   System   State  and   Output  
  • 19. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 19 37 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Example  of  Scenario   §  Given  (Setup)   –  Car  is  not  moving     §  When  (Trigger)   –  Accelerator  pressed   §  Then  (Assert)   –  60  MPH  reached  before  4.5  seconds   38 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Test  Flow   Ini2al   System   State   Test   Setup   (Given)   Trigger   (When)   Assert   (Then)   Final   System   State  and   Output   Action or Event Expected   System   State  and   Output   Compare
  • 20. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 20 39 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Example  of  Test  Against  Scenario   §  Given  (Setup)   –  Car  is  not  moving     §  When  (Trigger)   –  Accelerator  pressed   §  Then  (Verify)   –  Check  that  60  MPH  is  reached  before  4.5  seconds   40 2 June 2015 Workflow   Example  
  • 21. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 21 41 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Context   §  Sam’s  Lawn  Mower  Repair  and  CD  Rental  Store   –  A  custom  soLware  package  for  CD  rentals.     42 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 User  Story  Examples     § As  the  clerk,  I  want  to  check  out  a  CD  for  a   customer.   § As  the  clerk,  I  want  to  check  in  a  CD  for  a   customer.   § As  the  inventory  maintainer,  I  want  to  know   where  every  CD  is—in  the  store  or  rented.       42
  • 22. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 22 43 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Use  Case  Example   §  Name—Check  Out    CD.   §  Descrip8on—Check  out  a  CD  for  a  customer.   §  Actor—Clerk.     §  Pre-­‐condi8ons—The  customer  has  an  iden2fica2on.  The  CD   has  an  iden2ty.     §  Post-­‐condi8ons—The  CD  is  recorded  as  rented.  The  rental   contract  is  printed.   §  Main  Course:     1.  The  clerk  enters  the  customer  iden2fica2on  and  CD  iden2fier  into   the  system.   2.  The  system  records  the  informa2on.   3.    The  system  prints  a  contract  that  the  customer  signs.     43 44 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Given  /  When  /  Then  Example   §  Context:  Sam’s    Lawn  Mower  Repair  and  CD  Rental  Store   §  Given  (Setup)    Customer  has  ID  (ini2al  system  state)    CD  has  ID  (ini2al  system  state)    CD  is  not  currently  rented  (ini2al  system  state)   §  When  (Trigger)    Clerk  checks  out  CD  (ac2on)     §  Then    (Verify)    CD  recorded  as  rented  (final  system  state)    Rental  contract  printed  (output)    
  • 23. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 23 45 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Example  (1)   Check  Out  CD   §  Given  Customer  has  ID              and  CD  has  ID              and  CD  is  not  currently  rented     Customer Data Name ID James 007 CD Data ID Title Rented CD2 Beatles Greatest Hits No 46 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Example  (2)   §  When  a  clerk  checks  out  a  CD:   Check Out CD Enter Customer ID 007 Enter CD ID CD2 Execute Rent
  • 24. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 24 47 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Example  (3)   §  Then  the  CD  is  recorded  as  rented  and  a  rental  contract   is  printed:     CD Data ID Title Rented Customer ID CD2 Beatles Greatest Hits Yes 007 Rental Contract Customer ID Customer Name CD ID CD Title 007 James CD2 Beatles Greatest Hits 48 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Example  –  Extended   §  Given     §  When  a  clerk  checks  out  a  CD  on:     §  Then  a  rental  contract  is  printed:     Rental Contract Customer ID Customer Name CD ID CD Title Due Fee 007 James CD2 Beatles Greatest Hits 1/3/2014 $3 Rental Fee Business Rule Fee $3 Today 1/1/2014 Rental Time Business Rule Time 2 days
  • 25. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 25 49 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 The  Ac2on     §  Can  drive  a  GUI   §  Or  a  method     Rent(CustomerID aCustomer, CDID aCD); 50 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Example  of  Business  Rule   CD  Rental  Rates  Business  Rule     Regular    $2  /  2  days  plus  $1  /  day     Golden  Oldie  $2  /  4  days  plus  $  .50  /  day   Hot  Stuff    $2  /  1  days  plus  $2  /  day   _s   CD  Rental  Rates    As  Table   Type   Base  Rental   Period  Days   Base  Rental  Fee   Extra  Day    Fee   Regular   2   $2   $1   Golden  Oldie   4   $2   $.50   Hot  Stuff   1   $2   $2  
  • 26. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 26 51 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Example  of  Business  Rule  Test   CD  Rates  Test     Type   Days   Cost?   Regular   2   $2   Golden  Oldie   5   $2.50   Hot  Stuff   6   $12   Hot  Stuff   50     IGBTYOT     CD  Rental  Rates  Business  Rule     Regular    $2  /  2  days  plus  $1  /  day     Golden  Oldie  $2  /  4  days  plus  $  .50  /  day   Hot  Stuff    $2  /  1  days  plus  $2  /  day   _s   52 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Business  Rule  and  Flow  Tests   §  Use  cases  /  scenarios  usually  include  business  rules.   §  Test  every  business  rule  separately     §  Flow  test  (of  scenario)   –  Uses  one  varia2on  of  business  rule    
  • 27. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 27 53 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Flow  Example  Revisited   Check  Out  CD   Given  Customer  has  ID;  CD  has  ID  and  not  currently  rented        and  one  varia2on  of  business  rule  for  Rental  Rates   Customer Data Name ID James 007 CD Data ID Title Rented Type CD2 Beatles Greatest Hits No Regular CD  Rental  Rates    As  Table   Type   Base  Rental   Period  Days   Base  Rental  Fee   Extra  Day    Fee   Regular   2   $2   $1   54 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Flow  Example  –  Extended   §  When  a  clerk  checks  out  a  CD  on:       §  Then  a  rental  contract  is  printed:     Rental Contract Customer ID Customer Name CD ID CD Title Due Fee 007 James CD2 Beatles Greatest Hits 1/3/2014 $2 Today 1/1/2014 Check Out CD Enter Customer ID 007 Enter CD ID CD2 Execute Rent
  • 28. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 28 55 2 June 2015 Guidelines   56 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Tests   §  Acceptance  tests  are  not  a  subs2tute  for  interac2ve   communica2on     –  They  can  provide  focus  for  that  communica2on   §  Tests  in  business  domain  terms     –  Shared  between  customer  unit  and  developer  unit      
  • 29. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 29 57 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Guidelines   §  Tests  and  automa2on  should  be  developed  separately.       –  Understand  the  test  first   –  Then  explore  how  to  automate  it.   §  Automate  tests  for  regression     –  Use  in  con2nuous  build     §  As  much  as  prac2cal,  cover  100%  of  the  func2onal   requirements  by  acceptance  tests.     §  Can  break  down  stories  by  acceptance  tests     –  One  acceptance  test  per  story           58 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Tes2ng  Strategies   Meszaros, XUNIT TEST PATTERNS: REFACTORING TEST CODE, Fig 6.1 "Purpose of Tests" p. 51, © 2007 Pearson Education, Inc
  • 30. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 30 59 2 June 2015 Not  an  Ending,   But  a  Beginning   60 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Recap   §  Primary  goals   –  Discover  ambiguous  requirements  and  gaps  in  requirements   early  on.   –  Create  a  record  of  business/development  understanding.   §  Secondary  goals   –  Use  acceptance  tests  as  an  executable  regression  test.   –  Measure  the  complexity  of  requirements.   –  Use  the  tests  as  a  basis  for  user  documenta2on.    
  • 31. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 31 info@netobjectives.com www.netobjectives.com 61 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Go  Forth  and   Become   Acceptance  Test   Creators       Thank  You       info@netobjectives.com www.netobjectives.com 62 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Supplemental   Slides  
  • 32. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 32 63 2 June 2015 Context  Diagram   64 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Context  Diagram     §  A  context  diagram  shows  scope   Process   External Actors Outputs Input / Output Inputs
  • 33. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 33 65 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 CD  Rental  Diagram   Process   Clerk Credit Card Processor Database Check-out/Check-in Response Send Transaction Response Update Rental Info Retrieve Rental 66 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 External  Interfaces   §  Connec2ons  to  external  systems  need  to  have  test  doubles   (mocks)   –  They  are  stand-­‐ins  for  real  system  during  tes2ng     –  Random  events  may  need  to  simulated     §  Test  doubles  give  repeatability  and  speed     –  Cheaper  if  have  to  pay  for  service     External system, device, service Random events Time
  • 34. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 34 67 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 CD  Rental  Diagram  (Revisited)     Process   Clerk Test Double (UI or Mid-tier) Credit Card Processor Test Double Database Test Double Check-out/Check-in Response Send Transaction Response Update Rental Info Retrieve Rental 68 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Context  of  Automobile   Drive   shaL     Acceleration De-acceleration Movement Trans-­‐ mission   Engine     Wheels    
  • 35. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 35 69 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Alterna2ve  Design  of  Automobile   Acceleration De-acceleration Movement Engines     Wheels     Engine   Controller     70 2 June 2015 Cucumber   Version  
  • 36. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 36 71 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Cucumber  Version     Scenario Outline: Compute discount Given total is <OrderTotal> and rating is "<CustomerRating>" When I compute discount Then percent is <DiscountPercentage> Examples: |OrderTotal|CustomerRating|DiscountPercentage| |10.00 |Good |0 | |10.01 |Good |1 | |50.01 |Good |1 | |0.01 |Excellent |1 | |50.00 |Excellent |1 | |50.01 |Excellent |5 |     72 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Alterna2ve  (2)     Cucumber  /  Specflow  with  Tables     Feature: Check Out As a store clerk I want check out a CD for a customer So that I keep track of where the CDs are Scenario: Normal Check Out Given customer exists: |ID | Name | |007| James| And CD exists: |ID | Title | Rented | |CD2 | "Beatles Greatest Hits" | No | When CD "CD2" is checked out to Customer "007" Then CD is now: |ID | Title | Rented | CustomerID | |CD2 | "Beatles Greatest Hits" | Yes | 007 | And rental contract produced: |CustomerID | CustomerName | CDID | CDTitle | |007 | James | CD2 | Beatles Greatest Hits |
  • 37. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 37 73 2 June 2015 Sequence   74 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Usually  the  Case   Code   write   run  bind  
  • 38. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 38 75 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 A  BeAer  Way   Code   write   run   bind   76 2 June 2015 Process  Notes  
  • 39. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 39 77 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Process  Note  (1)   Requirement Testable Requirement Developable Requirement At least one example for each test Not schedulable Preferably all examples for all tests 78 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Process  Note  (2)   Code   write   run   bind   Code   write   run   bind   Write previous iteration Write within iteration
  • 40. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 40 79 2 June 2015 ReseTng  Tests   80 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Resefng  Tests   §  Changes  in  system  state  need  to  be  reset  before   running  test  again   §  Some  ways   –  Another  test  that  reverses  state  (e.g.  Check  In  CD)     –  Set  persistent  storage  back  to  original  state     §  For  just  affected  records  (CD)     §  For  all  records  (en2re  database)    
  • 41. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 41 81 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Example  (1)   Check  In  CD   §  Given  CD  is  rented     CD Data ID Title Rented Customer ID CD2 Beatles Greatest Hits Yes 007 82 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Example  (2)   §  When  a  clerk  checks  in    CD:   Check Out CD Enter CD ID CD2 Execute Return
  • 42. Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration Copyright © 2011 Net Objectives 42 83 Copyright © 2007 Net Objectives. All Rights Reserved. 2 June 2015 Full  Example  (3)   §  Then  the  CD  is  recorded  as  not  rented   CD Data ID Title Rented CD2 Beatles Greatest Hits No