S E M A N T I C B D D
U S I N G S H O U L D I T ? T O V I S U A L I S E Y O U R P R O J E C T
T H R O U G H F E AT U R E S .
Product
Business
Analysis
Development QA
Business Development
J I R A
F E AT U R E
F I L E S
C O N V E R S
AT I O N
Development QA
J I R A
F E AT U R E
F I L E S
C O N V E R S
AT I O N
Development QA
Authoritative?
Business
F E AT U R E
F I L E S
F E AT U R E
F I L E S
Contents?
W H AT D O W E N E E D T O M A K E T H I S T H I N G ?
“Key User Journeys”
W H AT S H O U L D T H E E X P E R I E N C E B E M A D E U P O F ?
“Requirements”
F U N C T I O N A L / N O N - F U N C T I O N A L ?
W H AT D O Y O U D O W H E N ?
“Edge Cases”
W H AT S H O U L D I T L O O K L I K E ?
“Design”
W H AT S E R V I C E S A R E Y O U R E L I A N T O N ?
“Dependencies”
What is the clearest medium to
describe what needs to be done
A N D T O V E R I F Y I T H A S B E E N
I N I T I A L F E AT U R E
F I L E D E M O
S T E P 1 : W R I T E F E AT U R E F I L E
W H AT A B O U T D E S I G N S
A N D M E D I A ?
W H AT A B O U T T E C H N I C A L
D O C U M E N TAT I O N ?
W H AT A B O U T
C O M P L I C AT E D S C E N A R I O S ?
S T E P 2 : I N S TA L L S H O U L D I T ?
S T E P 3 : S E T U P Y O U R T E S T S
n p m i n s t a l l - g s h o u l d i t
S T E P 1 : W R I T E F E AT U R E F I L E
S T E P 4 : C O N F I G U R E S H O U L D I T
{
"specs": "features/*.md",
"results": "karma-specs.json"
}
s h o u l d i t . c o n f . j s o n
R U N N I N G S H O U L D I T ?
A D D I N G TA G S
A D D I N G TA G S
W R I T I N G T E S T S
W R I T I N G T E S T S
W H A T T E S T S ?
R U N N I N G T E S T S
Y O U R P R O J E C T H A S A
H E I R A R C H Y
Website
Search
Product Listings
Shopping Cart
Detail Page
Checkout
Navigation
Complete
Index Page
B A C K T O H E I R A R C H Y
V I S U A L I S AT I O N
./node_modules/shouldit/bin/shouldit —serve
blog.feature.md
PA G I N AT I O N R E L AT I O N S H I P
m a p . y a m l
PA G I N AT I O N R E L AT I O N S H I P
W H AT I S S H O U L D I T D O I N G ?
* . f e a t u re . m d
T E S T
O U T P U T
M O C H A
* . f e a t u re . m d
J U N I T
J A S M I N E
S E L E N I U M
D E V E L O P M E N T
P R O M P T I N G
( c o n s o l e )
F E AT U R E 

T E S T S TAT U S 

( c o n s o l e )
W E B
V I S U A L I S AT I O N
J U N I T. X M L
O V E R V I E W
C O N T I N O U S I N T E G R AT I O N J O B S
F R O N T 

E N D
P R O J E C T S
B A C K 

E N D
P R O J E C T S
E 2 E
T E S T S
JS Integration Tests
JS Unit Tests
End To End Tests
Java Integration Tests
Java Unit Tests
Node.JS Mocha Tests
J U N I T 

X M L
T E S T 

O U T P U T
ShouldIT?
Features
API Features
• IT allows you to write rich feature files in markdown
• IT encourages you to think through your requirements before
starting development in a semantic fashion
• IT helps drive you to the tests that need to be written
• IT refers to tests in your current test suite 

(no extra layer of tests)
• IT aggregates test output from multiple sources to show you
what features are done or outstanding
• IT visualises your projects semantic hierarchy and shows your
progress for sharing
h t t p : / / b b c - s p o r t . g i t h u b . i o / S h o u l d I T /
Questions?
@ m a c k s t a r

Semantic BDD with ShouldIT?

  • 1.
    S E MA N T I C B D D U S I N G S H O U L D I T ? T O V I S U A L I S E Y O U R P R O J E C T T H R O U G H F E AT U R E S .
  • 4.
  • 5.
    Business Development J IR A F E AT U R E F I L E S C O N V E R S AT I O N
  • 6.
    Development QA J IR A F E AT U R E F I L E S C O N V E R S AT I O N
  • 7.
  • 8.
    F E ATU R E F I L E S Contents? W H AT D O W E N E E D T O M A K E T H I S T H I N G ?
  • 9.
    “Key User Journeys” WH AT S H O U L D T H E E X P E R I E N C E B E M A D E U P O F ?
  • 10.
    “Requirements” F U NC T I O N A L / N O N - F U N C T I O N A L ?
  • 11.
    W H ATD O Y O U D O W H E N ? “Edge Cases”
  • 12.
    W H ATS H O U L D I T L O O K L I K E ? “Design”
  • 13.
    W H ATS E R V I C E S A R E Y O U R E L I A N T O N ? “Dependencies”
  • 14.
    What is theclearest medium to describe what needs to be done A N D T O V E R I F Y I T H A S B E E N
  • 17.
    I N IT I A L F E AT U R E F I L E D E M O S T E P 1 : W R I T E F E AT U R E F I L E
  • 19.
    W H ATA B O U T D E S I G N S A N D M E D I A ?
  • 21.
    W H ATA B O U T T E C H N I C A L D O C U M E N TAT I O N ?
  • 24.
    W H ATA B O U T C O M P L I C AT E D S C E N A R I O S ?
  • 26.
    S T EP 2 : I N S TA L L S H O U L D I T ? S T E P 3 : S E T U P Y O U R T E S T S n p m i n s t a l l - g s h o u l d i t S T E P 1 : W R I T E F E AT U R E F I L E S T E P 4 : C O N F I G U R E S H O U L D I T
  • 27.
  • 28.
    R U NN I N G S H O U L D I T ?
  • 29.
    A D DI N G TA G S
  • 30.
    A D DI N G TA G S
  • 31.
    W R IT I N G T E S T S
  • 32.
    W R IT I N G T E S T S
  • 33.
    W H AT T E S T S ?
  • 34.
    R U NN I N G T E S T S
  • 35.
    Y O UR P R O J E C T H A S A H E I R A R C H Y
  • 36.
    Website Search Product Listings Shopping Cart DetailPage Checkout Navigation Complete Index Page
  • 38.
    B A CK T O H E I R A R C H Y
  • 40.
    V I SU A L I S AT I O N ./node_modules/shouldit/bin/shouldit —serve
  • 42.
    blog.feature.md PA G IN AT I O N R E L AT I O N S H I P
  • 43.
    m a p. y a m l PA G I N AT I O N R E L AT I O N S H I P
  • 45.
    W H ATI S S H O U L D I T D O I N G ? * . f e a t u re . m d T E S T O U T P U T M O C H A * . f e a t u re . m d J U N I T J A S M I N E S E L E N I U M D E V E L O P M E N T P R O M P T I N G ( c o n s o l e ) F E AT U R E 
 T E S T S TAT U S 
 ( c o n s o l e ) W E B V I S U A L I S AT I O N J U N I T. X M L O V E R V I E W
  • 46.
    C O NT I N O U S I N T E G R AT I O N J O B S F R O N T 
 E N D P R O J E C T S B A C K 
 E N D P R O J E C T S E 2 E T E S T S JS Integration Tests JS Unit Tests End To End Tests Java Integration Tests Java Unit Tests Node.JS Mocha Tests J U N I T 
 X M L T E S T 
 O U T P U T ShouldIT? Features API Features
  • 47.
    • IT allowsyou to write rich feature files in markdown • IT encourages you to think through your requirements before starting development in a semantic fashion • IT helps drive you to the tests that need to be written • IT refers to tests in your current test suite 
 (no extra layer of tests) • IT aggregates test output from multiple sources to show you what features are done or outstanding • IT visualises your projects semantic hierarchy and shows your progress for sharing
  • 48.
    h t tp : / / b b c - s p o r t . g i t h u b . i o / S h o u l d I T / Questions? @ m a c k s t a r