ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Workshop - Functional Testing - Lessons Learned
KEEP YOUR APPLICATIONS TUNED
Functional Testing
by
Kristof Debruyne & José Luis Santos
facilitator facilitator
knowledge
Workshop - Functional Testing - Lessons Learned
Workshop - Functional Testing - Lessons Learned
Workshop - Functional Testing - Lessons Learned
Workshop - Functional Testing - Lessons Learned
EMPOWER
ONLINE TEAMS01 ACTIVATE YOUR
DIGITAL CUSTOMERS02 ACTIONABLE
INSIGHTS03 CONTINUOUS
AUTOMATION04
Adobe Experience Cloud
Personalization
Analytics
Full Stack Web apps
APIs
Java / JS
Machine learning / Big
Data / Monitoring
DevOps practices /
Automated FT /
Continuous Integr.
CUSTOMER JOURNEYS SUPPORT
EMPOWER
ONLINE TEAMS01 ACTIVATE YOUR
DIGITAL CUSTOMERS02 ACTIONABLE
INSIGHTS03 CONTINUOUS
AUTOMATION04
01
02
03
04
#StopTheBullshit
 E-services migration
 AEM, Apache Sling, Apache Jack Rabbit (JCR), Apache Felix (OSGi), Slice,
JMX, AngularJS
 Initial goal of functional testing
 Goal: Improve overall code stability
THE MISSION
OUR WAY OF WORKING (1/2)
 6 teams
 8 master releases per year / every 3 weeks maintenance release
 1 master release = 3 sprints
 DoD and functional testing
OUR WAY OF WORKING (2/2)
SETUP
 Gherkin language
 CLI-runner
 Simple life cycle
• Alternative for JBehave / JFunc
• 3-layer: feature, scenario, step
CUCUMBER
 Feature
 Scenario
 Step definition
 Hook
TERMINOLOGY
 Tag
 Cuke
 Glue
FEATURE DRIVEN
LIFE CYCLE
RECOMMENDATIONS (1/2)
 Imperative vs declarative
 clear separation (scope) of scenarios
 Don’t put meta data in step defs
 Group tag scenario’s
RECOMMENDATIONS (2/2)
 Context driven (no state in step definitions)
 Never -> Thread.sleep(x)
 Performance as important factor
 Scenario outlines (tables)
REPORTING (1/3)
REPORTING (2/3)
REPORTING (3/3)
PROS AND CONS
PROS CONS
+ Regression out-of-the-box (return of
investment)
+ Quality assurance tool to improve
overall code quality
+ Acts as JavaScript test tool (if you don’t
have KarmaJS, JasemineJS, etc …)
+ Rebase verification
+ Test mobile development (emulated
but works pretty well) / multiple
browsers
+ Nice reporting (pdf + screenshots)
+ Other stuff (test toggles, AEM
components, etc …)
- Time consuming (full time job)
- High setup cost
- Inconsistency of mock data results in
bad tests
- Team effort (all stakeholders!)
otherwise it is useless
 https://cucumber.io
 http://cucumber.github.io/api/cucumber/jvm/javadoc
 https://en.wikipedia.org/wiki/Behavior-driven_development
RESOURCES
Workshop - Functional Testing - Lessons Learned

More Related Content

Workshop - Functional Testing - Lessons Learned