SlideShare a Scribd company logo
1	
  
Design for Testability
Who am I?
Nir Szilágyi 
	
  
Finance, Risk & Compliance, Internet,
Telecom, CRM, Video Streaming.

Engineering, QE, QA, Release Eng

nszilagyi@paypal.com | norberts@gmail.com	
  
2	
  
Goals vs Systems
What is Testability?
•  How easy is to test software
•  The hidden cost of software
•  Higher Testability – 
•  Better tests (easier env setup, data prep)
•  Higher tester efficiency
•  Faster tests
•  Better debugability (is that a word?)
•  Better test efficiency and effectiveness
•  Pain (problem) and B/WCS (solution).
3	
  
What do the Experts Say?
What is Testability? – James Bach
James	
  Bach’s	
  dimensions	
  of	
  Testability	
  -­‐	
  link	
  
4	
  
What is Testability? – Kelly & Kedemo
Ben	
  Kelly	
  and	
  Maria	
  Kedemo’s	
  dimensions	
  of	
  Testability	
  -­‐link	
  
Why does it matter?
•  Testing takes too long.
•  What do we have to do to fail the code?
•  How long till we find the issue?
•  Who can fix the code and how fast?
•  How soon ready for re-test?
•  An aspect of Technical Debt (SQALE) 
•  The hidden cost of software
5	
  
Design"
"
Code"
"
Test
What is good design?
	
  
The	
  real	
  criteria	
  for	
  quality	
  of	
  design,	
  
“minimizes	
  cost	
  (including	
  the	
  cost	
  of	
  
delay)	
  and	
  maximizes	
  benefit	
  over	
  the	
  
life>me	
  of	
  the	
  so?ware,”	
  	
  -­‐	
  Kent	
  Beck
Design
6	
  
Service Architecture Example
Gateway	
  
Service	
  B	
   Service	
  A	
  
Data	
  Models	
  and	
  Rules	
  
500	
  Data	
  Elements	
  
SLA:	
  2	
  seconds	
   SLA:	
  	
  200ms	
  
Yes,	
  No,	
  Maybe	
  
70%	
  30%	
  
Simple	
  Data	
  Model	
  and	
  few	
  
rules	
  
Users	
  
Application Layers Example
Service	
  Interfaces	
   Message	
  Types	
  
Business	
  Workflow	
   Business	
  Components	
  
Data	
  Access	
  Components	
   Data	
  UXliXes	
  
DB	
  
UI	
  Components	
   PresentaXon	
  Logic	
  
Presentation layer
Service Layer
Business Layer
Data Layer
Cache	
  
Users	
   Clients	
  
Messaging	
  
7	
  
•  Separation of Concerns
•  Single Responsibility Principle
•  Principle of Least Knowledge
•  Do not Repeat the Functionality
•  Unified Exception Handling Mechanism
•  Points of Control and Observation (AOP)
•  Naming conventions - for test code too
•  Define Data format for a layer and between
•  Define clear contract between layers
•  How are you going to test this?
Design
8	
  
•  Separation of Concerns
•  Single Responsibility Principle
•  Principle of Least Knowledge
•  Do not Repeat the Functionality
•  Unified Exception Handling Mechanism
•  Points of Control and Observation (AOP)
•  Naming conventions - for test code too
•  Define Data format for a layer and between
•  Define clear contract between layers
•  How are you going to test this?
Design
•  Inner layer dependencies
•  Cross layer dependencies
•  Code dependencies
•  Rule/Code separation
Design - Dependencies
9	
  
Application Layers Example
Service	
  Interfaces	
   Message	
  Types	
  
Business	
  Workflow	
   Business	
  Components	
  
Data	
  Access	
  Components	
   Data	
  UXliXes	
  
DB	
  
UI	
  Components	
   PresentaXon	
  Logic	
  
Presentation layer
Service Layer
Business Layer
Data Layer
Cache	
  
Users	
   Clients	
  
Messaging	
  
Testability traps
•  Non	
  determinisXc	
  dependencies	
  
•  Race	
  condiXons	
  
•  Message	
  latency	
  
•  Threading	
  
•  CRUD	
  operaXons	
  on	
  shared	
  data	
  
•  Complexity	
  
•  Accidental	
  	
  
•  EssenXal	
  
10	
  
Distributed Multi-Flow Application Layers
Service	
  
Interface
s	
  
Message	
  
Types	
  
Business	
  
Workflow	
  
Business	
  
Component
s	
  
Data	
  Access	
  
Components	
  
Data	
  
UXliXes	
   DB	
  
UI	
  
Compon
ents	
  
PresentaXo
n	
  Logic	
  
Presentation
Service
Business
Data
Cache	
  
Messaging	
  
Service	
  
Interface
s	
  
Message	
  
Types	
  
Business	
  
Workflow	
  
Business	
  
Component
s	
  
Data	
  Access	
  
Components	
  
Data	
  
UXliXes	
   DB	
  
UI	
  
Compon
ents	
  
PresentaXo
n	
  Logic	
  
Cache	
  
Messaging	
  
Service	
  
Interface
s	
  
Message	
  
Types	
  
Business	
  
Workflow	
  
Business	
  
Component
s	
  
Data	
  Access	
  
Components	
  
Data	
  
UXliXes	
   DB	
  
UI	
  
Compon
ents	
  
PresentaXo
n	
  Logic	
  
Cache	
  
Messaging	
  
User	
  
Login	
  
Add	
  to	
  Cart	
  
Pay	
  
Code
•  Code	
  Testability	
  measurement	
  -­‐	
  >	
  How	
  painful	
  is	
  it	
  to	
  
write	
  a	
  good	
  unit	
  test	
  
•  ComposiXon	
  over	
  inheritance	
  
•  No	
  cyclic	
  dependencies	
  
•  Dependency	
  injecXon	
  
•  Beck’s	
  five	
  rules:	
  
•  Passes	
  all	
  the	
  tests	
  
•  Reveals	
  intenXon	
  
•  No	
  duplicaXon	
  
•  Fewest	
  elements	
  
11	
  
A Note on Clean Code
“Clean code is like a well written prose. Clean
code never obscures the designer’s intent but
rather is full of crisp abstractions and
straightforward lines of control” – Grady Booch

“Clean code does one thing well” – Bjorn
Straustroup

“Clean code can be read and enhanced by a
developer other than its original author. It
provides one way of doing one thing” – “Big Dave
Thomas”

“Clean code always looks like it was written by
someone who cares. There is nothing obvious
you can do to make it better” – Michael Feathers
A Note on Craftmanship
A	
  crabsman	
  takes	
  pride	
  in	
  his	
  work	
  an	
  strives	
  to	
  do	
  the	
  best	
  
job	
  he	
  can.	
  
	
  
WriXng	
  clean	
  code	
  is	
  what	
  you	
  must	
  do	
  in	
  order	
  to	
  call	
  
yourself	
  a	
  professional.	
  There	
  is	
  no	
  reasonable	
  excuse	
  to	
  do	
  
anything	
  less	
  than	
  your	
  best.	
  
	
  
Sense	
  of	
  ownership.	
  
You	
  fork	
  it,	
  you	
  write	
  it,	
  
you	
  own	
  it.	
  	
  
12	
  
Testing
•  Design	
  paderns	
  for	
  testability.	
  
•  Treat	
  test	
  code	
  almost	
  like	
  producXon	
  code.	
  
•  External	
  vs.	
  internal	
  factors	
  
•  Controllability	
  
•  Observability	
  
•  Service	
  interface	
  validator	
  (AOP)	
  
Service Architecture Example
Gateway	
  
Service	
  B	
   Service	
  A	
  
Data	
  Models	
  and	
  Rules	
  
500	
  Data	
  Elements	
  
SLA:	
  2	
  seconds	
   SLA:	
  	
  200ms	
  
Yes,	
  No,	
  Maybe	
  
70%	
  30%	
  
Simple	
  Data	
  Model	
  and	
  few	
  
rules	
  
Users	
  
13	
  
Design Patterns for Test Code
•  Factory	
  (ex.	
  abstract	
  request	
  types)	
  
•  Builder	
  (ex.	
  construct	
  Service	
  Request)	
  
•  Singleton	
  (ex.	
  DB	
  connecXon)	
  
•  Façade	
  (ex.	
  abstract	
  test	
  logic)	
  
•  Command	
  (ex.	
  controlling	
  UI	
  elements)	
  
•  Template	
  (ex.	
  Test	
  objects)	
  
•  Learn learn learn
•  Upfront 
•  As you go
•  Look at the code
•  Be there
•  Relationships
•  Confidence
•  Hands on vs. technical leadership
A Note on the Role of the Test Manager
14	
  
The Basic Testing Needs
Observability:
•  The ability to see the
product we are testing
•  The ability to determinate
test status and reports
•  The ability to observe
behavior and output
Controllability:
•  The ability to invoke
any possible state or
combination of states
of the product
•  The ability to
manipulate interim
behavior or outputs
More Test side impact 
•  Tester Knowledge
•  Team composition
•  Relationships
•  Eng, PO, Architects
•  Environment
•  Data, Data, Data
•  Dev Process, CI, CD.
•  Test Plan - Review
15	
  
Design for Testability…
Testable software -> Goal

Good design, clean code, effective testing -> Systems
16	
  
…Thank	
  You…	
  
nszilagyi@paypal.com | norberts@gmail.com	
  

More Related Content

Viewers also liked

Gain Control over Fast-Paced IT with Enterprise Class Workload Automation
Gain Control over Fast-Paced IT with Enterprise Class Workload AutomationGain Control over Fast-Paced IT with Enterprise Class Workload Automation
Gain Control over Fast-Paced IT with Enterprise Class Workload Automation
Enterprise Management Associates
 
Quiero Ser Tu HerOe
Quiero Ser Tu HerOeQuiero Ser Tu HerOe
Quiero Ser Tu HerOe
Cangre_lu
 
Securing the New Digital Enterprise Infographic
Securing the New Digital Enterprise Infographic Securing the New Digital Enterprise Infographic
Securing the New Digital Enterprise Infographic
Enterprise Management Associates
 
New Analytical Technique For The Determination Of Mercury (II) By Synergistic...
New Analytical Technique For The Determination Of Mercury (II) By Synergistic...New Analytical Technique For The Determination Of Mercury (II) By Synergistic...
New Analytical Technique For The Determination Of Mercury (II) By Synergistic...
inventionjournals
 
Каталог оборудования завода Электротехника и Автоматика
Каталог оборудования завода Электротехника и АвтоматикаКаталог оборудования завода Электротехника и Автоматика
Каталог оборудования завода Электротехника и Автоматика
katochimotor
 
Presentación Impress realizada por Silvia
Presentación Impress realizada por SilviaPresentación Impress realizada por Silvia
Presentación Impress realizada por Silviaraul andres
 
Infographic: Stopping Attacks at the Identity Perimeter
Infographic: Stopping Attacks at the Identity PerimeterInfographic: Stopping Attacks at the Identity Perimeter
Infographic: Stopping Attacks at the Identity Perimeter
Enterprise Management Associates
 
Ernst Hass
Ernst HassErnst Hass
Ernst Hass
pacoyfenoy89
 
Selling Your House Winter 2017
Selling Your House Winter 2017Selling Your House Winter 2017
Selling Your House Winter 2017
JESSICA EVE MORGAN
 
Distance Estimation to Image Objects Using Adapted Scale
Distance Estimation to Image Objects Using Adapted ScaleDistance Estimation to Image Objects Using Adapted Scale
Distance Estimation to Image Objects Using Adapted Scale
theijes
 
Guia de Presentacion
Guia de PresentacionGuia de Presentacion
Guia de Presentacion
marruani
 
Digital Heritage Documentation Via TLS And Photogrammetry Case Study
Digital Heritage Documentation Via TLS And Photogrammetry Case StudyDigital Heritage Documentation Via TLS And Photogrammetry Case Study
Digital Heritage Documentation Via TLS And Photogrammetry Case Study
theijes
 
Vanguardia
VanguardiaVanguardia
Vanguardia
Rubén Becerra
 
día mundial de la paz
día mundial de la pazdía mundial de la paz
día mundial de la pazkaworu
 
procomunidad blog
procomunidad blogprocomunidad blog
procomunidad blograul andres
 
Tics pros y contra
Tics pros y contraTics pros y contra
Tics pros y contra
Ale Cerrato
 

Viewers also liked (19)

Imagenes fijas
Imagenes fijasImagenes fijas
Imagenes fijas
 
Gain Control over Fast-Paced IT with Enterprise Class Workload Automation
Gain Control over Fast-Paced IT with Enterprise Class Workload AutomationGain Control over Fast-Paced IT with Enterprise Class Workload Automation
Gain Control over Fast-Paced IT with Enterprise Class Workload Automation
 
Quiero Ser Tu HerOe
Quiero Ser Tu HerOeQuiero Ser Tu HerOe
Quiero Ser Tu HerOe
 
Securing the New Digital Enterprise Infographic
Securing the New Digital Enterprise Infographic Securing the New Digital Enterprise Infographic
Securing the New Digital Enterprise Infographic
 
New Analytical Technique For The Determination Of Mercury (II) By Synergistic...
New Analytical Technique For The Determination Of Mercury (II) By Synergistic...New Analytical Technique For The Determination Of Mercury (II) By Synergistic...
New Analytical Technique For The Determination Of Mercury (II) By Synergistic...
 
Каталог оборудования завода Электротехника и Автоматика
Каталог оборудования завода Электротехника и АвтоматикаКаталог оборудования завода Электротехника и Автоматика
Каталог оборудования завода Электротехника и Автоматика
 
Presentación Impress realizada por Silvia
Presentación Impress realizada por SilviaPresentación Impress realizada por Silvia
Presentación Impress realizada por Silvia
 
La recreación.
La recreación.La recreación.
La recreación.
 
Infographic: Stopping Attacks at the Identity Perimeter
Infographic: Stopping Attacks at the Identity PerimeterInfographic: Stopping Attacks at the Identity Perimeter
Infographic: Stopping Attacks at the Identity Perimeter
 
Ernst Hass
Ernst HassErnst Hass
Ernst Hass
 
Selling Your House Winter 2017
Selling Your House Winter 2017Selling Your House Winter 2017
Selling Your House Winter 2017
 
Distance Estimation to Image Objects Using Adapted Scale
Distance Estimation to Image Objects Using Adapted ScaleDistance Estimation to Image Objects Using Adapted Scale
Distance Estimation to Image Objects Using Adapted Scale
 
Guia de Presentacion
Guia de PresentacionGuia de Presentacion
Guia de Presentacion
 
Digital Heritage Documentation Via TLS And Photogrammetry Case Study
Digital Heritage Documentation Via TLS And Photogrammetry Case StudyDigital Heritage Documentation Via TLS And Photogrammetry Case Study
Digital Heritage Documentation Via TLS And Photogrammetry Case Study
 
Vanguardia
VanguardiaVanguardia
Vanguardia
 
Cover stroy
Cover stroyCover stroy
Cover stroy
 
día mundial de la paz
día mundial de la pazdía mundial de la paz
día mundial de la paz
 
procomunidad blog
procomunidad blogprocomunidad blog
procomunidad blog
 
Tics pros y contra
Tics pros y contraTics pros y contra
Tics pros y contra
 

Similar to Design for Testability in Practice

Improving the Quality of Existing Software - DevIntersection April 2016
Improving the Quality of Existing Software - DevIntersection April 2016Improving the Quality of Existing Software - DevIntersection April 2016
Improving the Quality of Existing Software - DevIntersection April 2016
Steven Smith
 
Design for Testability in Practice
Design for Testability in PracticeDesign for Testability in Practice
Design for Testability in Practice
TechWell
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
BSGAfrica
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
Steven Smith
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
Comsysto Reply GmbH
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
Steven Smith
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
Lionel Briand
 
Improving The Quality of Existing Software
Improving The Quality of Existing SoftwareImproving The Quality of Existing Software
Improving The Quality of Existing Software
Steven Smith
 
Application Architecture
Application ArchitectureApplication Architecture
Application Architecture
Lars-Erik Kindblad
 
Lessons learned validating 60,000 pages of api documentation
Lessons learned validating 60,000 pages of api documentationLessons learned validating 60,000 pages of api documentation
Lessons learned validating 60,000 pages of api documentation
Bob Binder
 
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael KuehneTDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
Michael Kuehne-Schlinkert
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
sedukull
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013SmartBear
 
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
BingWang77
 
How to Automate your Enterprise Application / ERP Testing
How to Automate your  Enterprise Application / ERP TestingHow to Automate your  Enterprise Application / ERP Testing
How to Automate your Enterprise Application / ERP Testing
RTTS
 
Apex triggers i
Apex triggers iApex triggers i
Apex triggers i
Obidjon Komiljonov
 
rizwan cse exp resume
rizwan cse exp resumerizwan cse exp resume
rizwan cse exp resumeshaik rizwan
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashville
Nathaniel (Ned) Bauerle
 
Software Quality Architecture And Code Audit
Software Quality Architecture And Code AuditSoftware Quality Architecture And Code Audit
Software Quality Architecture And Code Audit
Xebia IT Architects
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
AgileNetwork
 

Similar to Design for Testability in Practice (20)

Improving the Quality of Existing Software - DevIntersection April 2016
Improving the Quality of Existing Software - DevIntersection April 2016Improving the Quality of Existing Software - DevIntersection April 2016
Improving the Quality of Existing Software - DevIntersection April 2016
 
Design for Testability in Practice
Design for Testability in PracticeDesign for Testability in Practice
Design for Testability in Practice
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Improving The Quality of Existing Software
Improving The Quality of Existing SoftwareImproving The Quality of Existing Software
Improving The Quality of Existing Software
 
Application Architecture
Application ArchitectureApplication Architecture
Application Architecture
 
Lessons learned validating 60,000 pages of api documentation
Lessons learned validating 60,000 pages of api documentationLessons learned validating 60,000 pages of api documentation
Lessons learned validating 60,000 pages of api documentation
 
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael KuehneTDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
 
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
Apex Enterprise Patterns Galore - Boston, MA dev group meeting 062719
 
How to Automate your Enterprise Application / ERP Testing
How to Automate your  Enterprise Application / ERP TestingHow to Automate your  Enterprise Application / ERP Testing
How to Automate your Enterprise Application / ERP Testing
 
Apex triggers i
Apex triggers iApex triggers i
Apex triggers i
 
rizwan cse exp resume
rizwan cse exp resumerizwan cse exp resume
rizwan cse exp resume
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashville
 
Software Quality Architecture And Code Audit
Software Quality Architecture And Code AuditSoftware Quality Architecture And Code Audit
Software Quality Architecture And Code Audit
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
TechWell
 
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 Architecture
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
TechWell
 
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
TechWell
 
Ma 15
Ma 15Ma 15
Ma 15
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 
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
TechWell
 

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

Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 

Recently uploaded (20)

Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 

Design for Testability in Practice

  • 1. 1   Design for Testability Who am I? Nir Szilágyi   Finance, Risk & Compliance, Internet, Telecom, CRM, Video Streaming. Engineering, QE, QA, Release Eng nszilagyi@paypal.com | norberts@gmail.com  
  • 2. 2   Goals vs Systems What is Testability? •  How easy is to test software •  The hidden cost of software •  Higher Testability – •  Better tests (easier env setup, data prep) •  Higher tester efficiency •  Faster tests •  Better debugability (is that a word?) •  Better test efficiency and effectiveness •  Pain (problem) and B/WCS (solution).
  • 3. 3   What do the Experts Say? What is Testability? – James Bach James  Bach’s  dimensions  of  Testability  -­‐  link  
  • 4. 4   What is Testability? – Kelly & Kedemo Ben  Kelly  and  Maria  Kedemo’s  dimensions  of  Testability  -­‐link   Why does it matter? •  Testing takes too long. •  What do we have to do to fail the code? •  How long till we find the issue? •  Who can fix the code and how fast? •  How soon ready for re-test? •  An aspect of Technical Debt (SQALE) •  The hidden cost of software
  • 5. 5   Design" " Code" " Test What is good design?   The  real  criteria  for  quality  of  design,   “minimizes  cost  (including  the  cost  of   delay)  and  maximizes  benefit  over  the   life>me  of  the  so?ware,”    -­‐  Kent  Beck Design
  • 6. 6   Service Architecture Example Gateway   Service  B   Service  A   Data  Models  and  Rules   500  Data  Elements   SLA:  2  seconds   SLA:    200ms   Yes,  No,  Maybe   70%  30%   Simple  Data  Model  and  few   rules   Users   Application Layers Example Service  Interfaces   Message  Types   Business  Workflow   Business  Components   Data  Access  Components   Data  UXliXes   DB   UI  Components   PresentaXon  Logic   Presentation layer Service Layer Business Layer Data Layer Cache   Users   Clients   Messaging  
  • 7. 7   •  Separation of Concerns •  Single Responsibility Principle •  Principle of Least Knowledge •  Do not Repeat the Functionality •  Unified Exception Handling Mechanism •  Points of Control and Observation (AOP) •  Naming conventions - for test code too •  Define Data format for a layer and between •  Define clear contract between layers •  How are you going to test this? Design
  • 8. 8   •  Separation of Concerns •  Single Responsibility Principle •  Principle of Least Knowledge •  Do not Repeat the Functionality •  Unified Exception Handling Mechanism •  Points of Control and Observation (AOP) •  Naming conventions - for test code too •  Define Data format for a layer and between •  Define clear contract between layers •  How are you going to test this? Design •  Inner layer dependencies •  Cross layer dependencies •  Code dependencies •  Rule/Code separation Design - Dependencies
  • 9. 9   Application Layers Example Service  Interfaces   Message  Types   Business  Workflow   Business  Components   Data  Access  Components   Data  UXliXes   DB   UI  Components   PresentaXon  Logic   Presentation layer Service Layer Business Layer Data Layer Cache   Users   Clients   Messaging   Testability traps •  Non  determinisXc  dependencies   •  Race  condiXons   •  Message  latency   •  Threading   •  CRUD  operaXons  on  shared  data   •  Complexity   •  Accidental     •  EssenXal  
  • 10. 10   Distributed Multi-Flow Application Layers Service   Interface s   Message   Types   Business   Workflow   Business   Component s   Data  Access   Components   Data   UXliXes   DB   UI   Compon ents   PresentaXo n  Logic   Presentation Service Business Data Cache   Messaging   Service   Interface s   Message   Types   Business   Workflow   Business   Component s   Data  Access   Components   Data   UXliXes   DB   UI   Compon ents   PresentaXo n  Logic   Cache   Messaging   Service   Interface s   Message   Types   Business   Workflow   Business   Component s   Data  Access   Components   Data   UXliXes   DB   UI   Compon ents   PresentaXo n  Logic   Cache   Messaging   User   Login   Add  to  Cart   Pay   Code •  Code  Testability  measurement  -­‐  >  How  painful  is  it  to   write  a  good  unit  test   •  ComposiXon  over  inheritance   •  No  cyclic  dependencies   •  Dependency  injecXon   •  Beck’s  five  rules:   •  Passes  all  the  tests   •  Reveals  intenXon   •  No  duplicaXon   •  Fewest  elements  
  • 11. 11   A Note on Clean Code “Clean code is like a well written prose. Clean code never obscures the designer’s intent but rather is full of crisp abstractions and straightforward lines of control” – Grady Booch “Clean code does one thing well” – Bjorn Straustroup “Clean code can be read and enhanced by a developer other than its original author. It provides one way of doing one thing” – “Big Dave Thomas” “Clean code always looks like it was written by someone who cares. There is nothing obvious you can do to make it better” – Michael Feathers A Note on Craftmanship A  crabsman  takes  pride  in  his  work  an  strives  to  do  the  best   job  he  can.     WriXng  clean  code  is  what  you  must  do  in  order  to  call   yourself  a  professional.  There  is  no  reasonable  excuse  to  do   anything  less  than  your  best.     Sense  of  ownership.   You  fork  it,  you  write  it,   you  own  it.    
  • 12. 12   Testing •  Design  paderns  for  testability.   •  Treat  test  code  almost  like  producXon  code.   •  External  vs.  internal  factors   •  Controllability   •  Observability   •  Service  interface  validator  (AOP)   Service Architecture Example Gateway   Service  B   Service  A   Data  Models  and  Rules   500  Data  Elements   SLA:  2  seconds   SLA:    200ms   Yes,  No,  Maybe   70%  30%   Simple  Data  Model  and  few   rules   Users  
  • 13. 13   Design Patterns for Test Code •  Factory  (ex.  abstract  request  types)   •  Builder  (ex.  construct  Service  Request)   •  Singleton  (ex.  DB  connecXon)   •  Façade  (ex.  abstract  test  logic)   •  Command  (ex.  controlling  UI  elements)   •  Template  (ex.  Test  objects)   •  Learn learn learn •  Upfront •  As you go •  Look at the code •  Be there •  Relationships •  Confidence •  Hands on vs. technical leadership A Note on the Role of the Test Manager
  • 14. 14   The Basic Testing Needs Observability: •  The ability to see the product we are testing •  The ability to determinate test status and reports •  The ability to observe behavior and output Controllability: •  The ability to invoke any possible state or combination of states of the product •  The ability to manipulate interim behavior or outputs More Test side impact •  Tester Knowledge •  Team composition •  Relationships •  Eng, PO, Architects •  Environment •  Data, Data, Data •  Dev Process, CI, CD. •  Test Plan - Review
  • 15. 15   Design for Testability… Testable software -> Goal Good design, clean code, effective testing -> Systems
  • 16. 16   …Thank  You…   nszilagyi@paypal.com | norberts@gmail.com