SimpleOpen BDD Method
Powered by Excel
A New Behavior-Driven Development Method
Only 6 Pages, Specification by Example
Author: Mike Zhang
2021/4/6
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
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
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
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.
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
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
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

SimpleOpen BDD Method Powered by Excel

  • 1.
    SimpleOpen BDD Method Poweredby Excel A New Behavior-Driven Development Method Only 6 Pages, Specification by Example Author: Mike Zhang 2021/4/6
  • 2.
    An Gherkin BDDExample • 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 inExcel • 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 exampleby 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 intotest 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 datain 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 byGherkin 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: MikeZhang/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

Editor's Notes