A New Behavior-Driven Development Method, Specification by Example
Easy to expand more examples by more parameter values by sheet
End user can’t reject Excel, they like to use Excel to express what they need precisely
1. SimpleOpen BDD Method
Powered by Excel
A New Behavior-Driven Development Method
Only 6 Pages, Specification by Example
Author: Mike Zhang
2021/4/6
2. An Gherkin BDD Example
• Title: Returns and exchanges go to inventory.
• As a store owner,
• I want to add items back to inventory when they are returned or
exchanged,
• so that I can track inventory.
• Scenario 1: Items returned for refund should be added to inventory.
• Given that a customer previously bought a black sweater from me
• and I have three black sweaters in inventory,
• when they return the black sweater for a refund,
• then I should have four black sweaters in inventory.
from https://en.wikipedia.org/wiki/Behavior-driven_development
3. Describe Example in Excel
• Template
No. Step Sub-Step(optional
for complex step)
Parameter
Name
Parameter
Value1
Parameter
Value2
Parameter
Value3
Parameter
Value4
1
2
3
4
4. Convert the example by Excel template
No. Step Parameter Name Parameter
Value1
Parameter
Value2
Parameter
Value3
1 a customer previously
bought [right
parameter] black
sweater from me
BlackSweaterCountAtCustomer 1 3 4
2 I have [right parameter]
black sweaters in
inventory,
BlackSweaterCountInInvertory1 3 10 2
3 they return [right
parameter] black
sweater for a refund
BlackSweaterCountReturned 1 2 2
4 I should have [right
parameter] black
sweaters in inventory
BlackSweaterCountInInvertory2 4 12 4
5. Load Example into test data
• Now almost every programming language has Excel functions.
• Below is a PowerShell example to read the previous excel
• $ExampleList = Get-ZmExampleList -ExcelPath ".ExcelExample1.xlsx" -WorksheetName 'Scenario1’
• Get-ZmExampleList is a customized function which read a Worksheet into a Hashtable List, $ExampleList is displayed by json format as below
[
{
"BlackSweaterCountAtCustomer": "1",
"BlackSweaterCountInInvertory1": "3",
"BlackSweaterCountReturned": "1",
"BlackSweaterCountInInvertory2": "4"
},
{
"BlackSweaterCountAtCustomer": "3",
"BlackSweaterCountInInvertory1": "10",
"BlackSweaterCountReturned": "2",
"BlackSweaterCountInInvertory2": "12"
},
{
"BlackSweaterCountAtCustomer": "4",
"BlackSweaterCountInInvertory1": "2",
"BlackSweaterCountReturned": "2",
"BlackSweaterCountInInvertory2": "4"
}
]
• If need source code of Get-ZmExampleList, please connect author.
6. Use example data in test
• PowerShell and Pester are very convenient to use Hashtable list as
test data, just as the above example
• For other languages, there should be at least one way to organize
parameterized test cases from Excel
7. Comparison
Problem BDD by Gherkin New SimpleOpen BDD by Excel
Learn Gherkin is easy, but still need syntax
and a small learning curve.
Excel need no learning curve
Easy to edit for dev/test/PO/BA and end user
More Examples Hard to expand to table in text format
file
Easy to expand more examples by more
parameter values by sheet
End user don’t
express by Gherkin
way
if end user just express requirements
by their way, especially business
stakeholder, converting from end
user’s output to Gherkin style is time-
consuming.
End user can’t reject Excel, they like to use
Excel to express what they need precisely
End user don’t use
Git
The author of Example by Gherkin need
Git skill which maybe an impediment
for end user at business side.
development team need synchronize to
Git. Somewhat more efforts.
Let end user edit Excel or use wiki which
supports table.
Then Synchronize examples into excel in Git,
which should be just copy/paste, easily
synchronized
8. About author: Mike Zhang/Zhang Keqiang
Agile /DevOps /Product manager
Email: zhangkq2000@hotmail.com
Twitter: MikeZhang307
WeChat:zhangmike
Overview
Mr. Zhang Keqiang has mainly experienced in agile
transformation, DevOps construction,
organizational process improvement, quality
assurance and testing, with the reference to Agile,
XP, Scrum, CMMI, Kanban and Scrumban and so on.
In the last 3 years, he has gone deep into the
bridging between IT and the business, and
conducted many business agile practices, such as
minimum business increment(MBI), business lead
time, qualitative and quantitative analysis of
production effects, business multi-layer Kanban,
and so on. the organization's digital transformation
is really be implemented with business outcome.
Agile & DevOps Expert
The time of agile has come. As information is moving at the
speed of light, most organizations are still operating with a
structure and leadership style from 1970s - the dawn of
Industrial 3.0 era. These organizations must go through deep
overhauls in leaders’ consciousness, style and structure in
order to compete in today’s creative economy era.
Since the introduction of agile in the context of
CMMI5 in 2008, in 2009 to obtain the CSM
certificate, Mr. Zhang has been working in agile
organization transformation and improvement, as
EPG Lead, as enterprise executive director, but also
as external coach. He conducts not only agile
management practices, but also agile engineering
practices, such as continuous integration, DevOps
practices, and business agility practices
Original methods
• December 2019, ScrumBan Simple Open edition,
which mixed Scrum and Kanban, see link
• December 2018, requirements flow model
• In November 2018, Egg estimation
• January 2018, Agile Usecase
• The first Scrumban (i.e. Scrum-Kanban Hybrid)
case analysis report in China was released 2017.
• In December 2017, Test-Driven Debugging
• July 2017, story positioning method
Early Careers
Ms. Zhang had worked as a test manager, EPG lead,
project director at Baosight, QA manager at Intel,
senior consultant at DNV & inspearit, EPG Lead
and enterprise architecture head at 99bill. He once
was the Executive Director of Tsjinrong.
Academic Background, Experiences
and Awards
• Bachelor's and Master's degrees in Electrical
Engineering, Tsinghua University, Beijing
• Beijing Science and Technology Progress Third
Prize - Internet Ladder Multimedia Distance
Education Common Platform (2001.12)
• 2004 Shanghai excellent mentor from Shanghai
Labor and Social Security Bureau
• 2010 Shanghai software industry role model