SlideShare a Scribd company logo
W6
Session
10/26/2016 11:30:00 AM
Design for Testability in Practice
Presented by:
Nir Szilagyi
PayPal
Brought to you by:
350 Corporate Way, Suite 400, Orange Park, FL 32073
888-­‐268-­‐8770 ·∙ 904-­‐278-­‐0524 - info@techwell.com - http://www.starcanada.techwell.com/
Nir Szilagyi
PayPal
Senior quality engineering manager Nir Szilagyi brings more than sixteen years of
experience to the risk platform engineering team he leads at PayPal. Previously at
eBay, he led the products platform quality engineering team in Israel and US. In
both companies, Nir led the team transformation from a classic advisory group to
an agile engineering team, focusing on quality throughout the product
development lifecycle. Passionate about automation and testing smarter, Nir
believes that agility, engineering solutions for quality, influencing testability, and
open communication drive organizations forward. Nir had been involved in
shaping eBay's test automation framework and is leading the development of
similar quality initiatives at PayPal.
9/23/2016
1
Design for Testability
Who am I?
Ni S ilá iNir Szilágyi
Finance, Risk & Compliance, Internet,
Telecom, CRM, Video Streaming.
Engineering, QE, QA, Release Eng
nszilagyi@paypal.com | norberts@gmail.com
9/23/2016
2
Goals vs Systems
What is Testability?
• How easy is to test software
Th hidd t f ft• 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).
9/23/2016
3
What do the Experts Say?
What is Testability? – James Bach
James Bach’s dimensions of Testability ‐ link
9/23/2016
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
9/23/2016
5
DesignDesign
Code
Test
What is good design?
Design
The real criteria for quality of design, 
“minimizes cost (including the cost of 
delay) and maximizes benefit over the 
lifetime of the software,” ‐ Kent Beck
9/23/2016
6
Application Layers Example
Users Clients
Service Interfaces Message Types
UI Components Presentation Logic
Business Workflow Business Components
Data Access Components Data Utilities
DB
Service Architecture Example
500 Data ElementsYes, No, Maybe
Users
Gateway
Service B Service A
500 Data Elements
SLA: 2 seconds SLA:  200ms
, , y
70%30%
Data Models and Rules Simple Data Model and few 
rules
9/23/2016
7
• Separation of Concerns
• Single Responsibility Principle
Design
• 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
D fi D t f t f l d b t• Define Data format for a layer and between
• Define clear contract between layers
• How are you going to test this?
9/23/2016
8
• Separation of Concerns
• Single Responsibility Principle
Design
• 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
D fi D t f t f l d b t• Define Data format for a layer and between
• Define clear contract between layers
• How are you going to test this?
• Inner layer dependencies
• Cross layer dependencies
Design - Dependencies
y p
• Code dependencies
• Rule/Code separation
9/23/2016
9
Application Layers Example
Users Clients
Service Interfaces Message Types
UI Components Presentation Logic
Business Workflow Business Components
Data Access Components Data Utilities
DB
Testability traps
• Non deterministic dependencies
• Race conditions
• Message latency
• Threading
• CRUD operations on shared data
• Complexity• Complexity
• Accidental 
• Essential
9/23/2016
10
Distributed Multi-Flow Application Layers
User
Login
Add to Cart
Pay
Service 
Interface
s
Message 
Types
UI 
Compon
ents
Presentatio
n Logic
Service 
Interface
s
Message 
Types
B i
UI 
Compon
ents
Presentatio
n Logic
Service 
Interface
s
Message 
Types
UI 
Compon
ents
Presentatio
n Logic
Business 
Workflow
Business 
Componen
ts
Data Access 
Components
Data 
Utilities DB
Business 
Workflow
Business 
Componen
ts
Data Access 
Components
Data 
Utilities DB
Business 
Workflow
Business 
Componen
ts
Data Access 
Components
Data 
Utilities DB
Code
• Code Testability measurement ‐ > How painful is it to 
write a good unit testg
• Composition over inheritance
• No cyclic dependencies
• Dependency injection
• Beck’s five rules:
• Passes all the tests• Passes all the tests
• Reveals intention
• No duplication
• Fewest elements
9/23/2016
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 ofof 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”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 craftsman takes pride in his work an strives to do the best 
job he can.
Writing 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. 
9/23/2016
12
Testing
• Design patterns for testability.
• Treat test code almost like production code.
• External vs. internal factors
• Controllability
• ObservabilityObservability
• Service interface validator (AOP)
Service Architecture Example
500 Data ElementsYes, No, Maybe
Users
Gateway
Service B Service A
500 Data Elements
SLA: 2 seconds SLA:  200ms
, , y
70%30%
Data Models and Rules Simple Data Model and few 
rules
9/23/2016
13
Design Patterns for Test Code
• Factory (ex. abstract request types)
• Builder (ex. construct Service Request)
• Singleton (ex. DB connection)
• Façade (ex. abstract test logic)
• Command (ex. controlling UI elements)
• Template (ex Test objects)• Template (ex. Test objects)
• Learn learn learn
Upfront
A Note on the Role of the Test Manager
• Upfront
• As you go
• Look at the code
• Be there
• Relationships
Confidence• Confidence
• Hands on vs. technical leadership
9/23/2016
14
The Basic Testing Needs
Observability:
• The ability to see the product
we are testing
Controllability:
• The ability to invoke any
possible state orwe are testing
• The ability to determinate
test status and reports
• The ability to observe
behavior and output
possible state or
combination of states of
the product
• The ability to manipulate
interim behavior or
outputs
More Test side impact
• Tester Knowledge
• Team compositionTeam composition
• Relationships
• Eng, PO, Architects
• Environment
• Data, Data, Data
• Dev Process, CI, CD.
• Test Plan - Review
9/23/2016
15
Design for Testability…
Testable software -> Goal
Good design, clean code, effective testing -> Systems
9/23/2016
16
…Thank You…
nszilagyi@paypal.com | norberts@gmail.com

More Related Content

What's hot

Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Build Your Open Source Performance Testing Platform in the Cloud
Build Your Open Source Performance Testing Platform in the CloudBuild Your Open Source Performance Testing Platform in the Cloud
Build Your Open Source Performance Testing Platform in the Cloud
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
 
Testing Comes into its Own in DevOps by Jack Maher
Testing Comes into its Own in DevOps by Jack MaherTesting Comes into its Own in DevOps by Jack Maher
Testing Comes into its Own in DevOps by Jack Maher
QA or the Highway
 
A DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software QualityA DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software Quality
TechWell
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
Corina Pip
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
Naresh Jain
 
Digital transformation testing.
Digital transformation testing. Digital transformation testing.
Digital transformation testing.
Deepak Daniel
 
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
QA or the Highway
 
The Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing StrategyThe Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing Strategy
TechWell
 
Continuous everything
Continuous everythingContinuous everything
Continuous everything
TEST Huddle
 
AI and Machine Learning for Testers
AI and Machine Learning for TestersAI and Machine Learning for Testers
AI and Machine Learning for Testers
TechWell
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
TEST Huddle
 
Try: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim GrantTry: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim Grant
QA or the Highway
 
The Future of Testing
The Future of TestingThe Future of Testing
The Future of Testing
Perfecto by Perforce
 
A Day in the Life of a Test Architect
A Day in the Life of a Test ArchitectA Day in the Life of a Test Architect
A Day in the Life of a Test Architect
TechWell
 
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael BueningAgile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
QA or the Highway
 
Is Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle WilliamsIs Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle Williams
QA or the Highway
 
Continuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps SuccessContinuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps Success
TechWell
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
QA or the Highway
 

What's hot (20)

Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Build Your Open Source Performance Testing Platform in the Cloud
Build Your Open Source Performance Testing Platform in the CloudBuild Your Open Source Performance Testing Platform in the Cloud
Build Your Open Source Performance Testing Platform in the Cloud
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Testing Comes into its Own in DevOps by Jack Maher
Testing Comes into its Own in DevOps by Jack MaherTesting Comes into its Own in DevOps by Jack Maher
Testing Comes into its Own in DevOps by Jack Maher
 
A DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software QualityA DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software Quality
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
Digital transformation testing.
Digital transformation testing. Digital transformation testing.
Digital transformation testing.
 
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
Quality Assurance to Test Engineering – Insights From our Journey by Oksana S...
 
The Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing StrategyThe Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing Strategy
 
Continuous everything
Continuous everythingContinuous everything
Continuous everything
 
AI and Machine Learning for Testers
AI and Machine Learning for TestersAI and Machine Learning for Testers
AI and Machine Learning for Testers
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
 
Try: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim GrantTry: Fail, Try: Succeed by Tim Grant
Try: Fail, Try: Succeed by Tim Grant
 
The Future of Testing
The Future of TestingThe Future of Testing
The Future of Testing
 
A Day in the Life of a Test Architect
A Day in the Life of a Test ArchitectA Day in the Life of a Test Architect
A Day in the Life of a Test Architect
 
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael BueningAgile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
 
Is Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle WilliamsIs Test Planning a lost art in Agile? by Michelle Williams
Is Test Planning a lost art in Agile? by Michelle Williams
 
Continuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps SuccessContinuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps Success
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 

Viewers also liked

Addressing the Challenges of Mobile Test Automation
Addressing the Challenges of Mobile Test AutomationAddressing the Challenges of Mobile Test Automation
Addressing the Challenges of Mobile Test Automation
TechWell
 
Boost Test Coverage with Automated Visual Testing
Boost Test Coverage with Automated Visual TestingBoost Test Coverage with Automated Visual Testing
Boost Test Coverage with Automated Visual Testing
Josiah Renaudin
 
Innovations in Mobile Testing: Expanding Your Test Plan
Innovations in Mobile Testing: Expanding Your Test PlanInnovations in Mobile Testing: Expanding Your Test Plan
Innovations in Mobile Testing: Expanding Your Test Plan
Josiah Renaudin
 
IoT and Embedded Testing: A Roku Case Study
IoT and Embedded Testing: A Roku Case StudyIoT and Embedded Testing: A Roku Case Study
IoT and Embedded Testing: A Roku Case Study
TechWell
 
A Tester’s Experience with User Experience Mapping
A Tester’s Experience with User Experience MappingA Tester’s Experience with User Experience Mapping
A Tester’s Experience with User Experience Mapping
Josiah Renaudin
 
IoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint TestingIoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint Testing
Josiah Renaudin
 
Become an Influential Tester: Learn How to Be Heard
Become an Influential Tester: Learn How to Be HeardBecome an Influential Tester: Learn How to Be Heard
Become an Influential Tester: Learn How to Be Heard
TechWell
 
Anti-Patterns for Automated Testing
Anti-Patterns for Automated TestingAnti-Patterns for Automated Testing
Anti-Patterns for Automated Testing
Josiah Renaudin
 
Better Together: Group Exploratory Testing
Better Together: Group Exploratory TestingBetter Together: Group Exploratory Testing
Better Together: Group Exploratory Testing
TechWell
 
Build a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation FrameworkBuild a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation Framework
Josiah Renaudin
 
Implement Combinatorial Test Patterns for Better Mobile and IoT Testing
Implement Combinatorial Test Patterns for Better Mobile and IoT TestingImplement Combinatorial Test Patterns for Better Mobile and IoT Testing
Implement Combinatorial Test Patterns for Better Mobile and IoT Testing
Josiah Renaudin
 
Analyze, Diagnose, and Prevent Test Flakiness
Analyze, Diagnose, and Prevent Test FlakinessAnalyze, Diagnose, and Prevent Test Flakiness
Analyze, Diagnose, and Prevent Test Flakiness
Josiah Renaudin
 
Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...
Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...
Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...
Josiah Renaudin
 
Acceptance- and Behavior-Driven Development with Cucumber: Three Case Studies
Acceptance- and Behavior-Driven Development with Cucumber: Three Case StudiesAcceptance- and Behavior-Driven Development with Cucumber: Three Case Studies
Acceptance- and Behavior-Driven Development with Cucumber: Three Case Studies
Josiah Renaudin
 
How to Build a Fully Open Source Test Automation Framework
How to Build a Fully Open Source Test Automation FrameworkHow to Build a Fully Open Source Test Automation Framework
How to Build a Fully Open Source Test Automation Framework
TechWell
 
Accessibility Standards and Testing Techniques: Be Inclusive or Be Left Behind
Accessibility Standards and Testing Techniques: Be Inclusive or Be Left BehindAccessibility Standards and Testing Techniques: Be Inclusive or Be Left Behind
Accessibility Standards and Testing Techniques: Be Inclusive or Be Left Behind
TechWell
 
Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...
Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...
Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...
Josiah Renaudin
 

Viewers also liked (17)

Addressing the Challenges of Mobile Test Automation
Addressing the Challenges of Mobile Test AutomationAddressing the Challenges of Mobile Test Automation
Addressing the Challenges of Mobile Test Automation
 
Boost Test Coverage with Automated Visual Testing
Boost Test Coverage with Automated Visual TestingBoost Test Coverage with Automated Visual Testing
Boost Test Coverage with Automated Visual Testing
 
Innovations in Mobile Testing: Expanding Your Test Plan
Innovations in Mobile Testing: Expanding Your Test PlanInnovations in Mobile Testing: Expanding Your Test Plan
Innovations in Mobile Testing: Expanding Your Test Plan
 
IoT and Embedded Testing: A Roku Case Study
IoT and Embedded Testing: A Roku Case StudyIoT and Embedded Testing: A Roku Case Study
IoT and Embedded Testing: A Roku Case Study
 
A Tester’s Experience with User Experience Mapping
A Tester’s Experience with User Experience MappingA Tester’s Experience with User Experience Mapping
A Tester’s Experience with User Experience Mapping
 
IoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint TestingIoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint Testing
 
Become an Influential Tester: Learn How to Be Heard
Become an Influential Tester: Learn How to Be HeardBecome an Influential Tester: Learn How to Be Heard
Become an Influential Tester: Learn How to Be Heard
 
Anti-Patterns for Automated Testing
Anti-Patterns for Automated TestingAnti-Patterns for Automated Testing
Anti-Patterns for Automated Testing
 
Better Together: Group Exploratory Testing
Better Together: Group Exploratory TestingBetter Together: Group Exploratory Testing
Better Together: Group Exploratory Testing
 
Build a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation FrameworkBuild a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation Framework
 
Implement Combinatorial Test Patterns for Better Mobile and IoT Testing
Implement Combinatorial Test Patterns for Better Mobile and IoT TestingImplement Combinatorial Test Patterns for Better Mobile and IoT Testing
Implement Combinatorial Test Patterns for Better Mobile and IoT Testing
 
Analyze, Diagnose, and Prevent Test Flakiness
Analyze, Diagnose, and Prevent Test FlakinessAnalyze, Diagnose, and Prevent Test Flakiness
Analyze, Diagnose, and Prevent Test Flakiness
 
Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...
Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...
Combine Test Automation Code with Product Code: The Good, the Bad, and the Le...
 
Acceptance- and Behavior-Driven Development with Cucumber: Three Case Studies
Acceptance- and Behavior-Driven Development with Cucumber: Three Case StudiesAcceptance- and Behavior-Driven Development with Cucumber: Three Case Studies
Acceptance- and Behavior-Driven Development with Cucumber: Three Case Studies
 
How to Build a Fully Open Source Test Automation Framework
How to Build a Fully Open Source Test Automation FrameworkHow to Build a Fully Open Source Test Automation Framework
How to Build a Fully Open Source Test Automation Framework
 
Accessibility Standards and Testing Techniques: Be Inclusive or Be Left Behind
Accessibility Standards and Testing Techniques: Be Inclusive or Be Left BehindAccessibility Standards and Testing Techniques: Be Inclusive or Be Left Behind
Accessibility Standards and Testing Techniques: Be Inclusive or Be Left Behind
 
Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...
Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...
Budgeting, Estimation, Planning, and #NoEstimates: They All Make Sense for Ag...
 

Similar to Design for Testability in Practice

Design for Testability in Practice
Design for Testability in PracticeDesign for Testability in Practice
Design for Testability in Practice
TechWell
 
Code Review | 2010
Code Review | 2010Code Review | 2010
Code Review | 2010Klocwork
 
The Era of Intelligent Testing
The Era of Intelligent TestingThe Era of Intelligent Testing
The Era of Intelligent Testing
mabl
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
TEST Huddle
 
Bliss deck v1
Bliss deck v1Bliss deck v1
Bliss deck v1
Brian York
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
DevOpsDaysJKT
 
Test Automation Trends and Beyond
Test Automation Trends and BeyondTest Automation Trends and Beyond
Test Automation Trends and Beyond
Knoldus Inc.
 
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
 
Agile Development From A Developers Perspective
Agile Development From A Developers PerspectiveAgile Development From A Developers Perspective
Agile Development From A Developers Perspective
Richard Banks
 
Bridging the Gap: Analyzing Data in and Below the Cloud
Bridging the Gap: Analyzing Data in and Below the CloudBridging the Gap: Analyzing Data in and Below the Cloud
Bridging the Gap: Analyzing Data in and Below the Cloud
Inside Analysis
 
Software Quality without Testing
Software Quality without TestingSoftware Quality without Testing
Software Quality without Testing
Nagarro
 
Siva visual resume.docx
Siva visual resume.docxSiva visual resume.docx
Siva visual resume.docx
Sivakumar veerachamy
 
Back to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality SoftwareBack to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality Software
TechWell
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
AWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next LevelAWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next Level
Dynatrace
 
Agile Teams Deserve Agile Testing
Agile Teams Deserve Agile TestingAgile Teams Deserve Agile Testing
Agile Teams Deserve Agile Testing
SmartBear
 
AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...
AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...
AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...
byteLAKE
 
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Splunk
 
ChatGPT and not only: how can you use the power of Generative AI at scale
ChatGPT and not only: how can you use the power of Generative AI at scaleChatGPT and not only: how can you use the power of Generative AI at scale
ChatGPT and not only: how can you use the power of Generative AI at scale
Maxim Salnikov
 

Similar to Design for Testability in Practice (20)

Design for Testability in Practice
Design for Testability in PracticeDesign for Testability in Practice
Design for Testability in Practice
 
Code Review | 2010
Code Review | 2010Code Review | 2010
Code Review | 2010
 
The Era of Intelligent Testing
The Era of Intelligent TestingThe Era of Intelligent Testing
The Era of Intelligent Testing
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
 
Bliss deck v1
Bliss deck v1Bliss deck v1
Bliss deck v1
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 
Test Automation Trends and Beyond
Test Automation Trends and BeyondTest Automation Trends and Beyond
Test Automation Trends and Beyond
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashville
 
Agile Development From A Developers Perspective
Agile Development From A Developers PerspectiveAgile Development From A Developers Perspective
Agile Development From A Developers Perspective
 
Bridging the Gap: Analyzing Data in and Below the Cloud
Bridging the Gap: Analyzing Data in and Below the CloudBridging the Gap: Analyzing Data in and Below the Cloud
Bridging the Gap: Analyzing Data in and Below the Cloud
 
Software Quality without Testing
Software Quality without TestingSoftware Quality without Testing
Software Quality without Testing
 
Siva visual Resume.docx
Siva visual Resume.docxSiva visual Resume.docx
Siva visual Resume.docx
 
Siva visual resume.docx
Siva visual resume.docxSiva visual resume.docx
Siva visual resume.docx
 
Back to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality SoftwareBack to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality Software
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
AWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next LevelAWS and Dynatrace: Moving your Cloud Strategy to the Next Level
AWS and Dynatrace: Moving your Cloud Strategy to the Next Level
 
Agile Teams Deserve Agile Testing
Agile Teams Deserve Agile TestingAgile Teams Deserve Agile Testing
Agile Teams Deserve Agile Testing
 
AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...
AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...
AI Solutions for Industries | Quality Inspection | Data Insights | Predictive...
 
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
 
ChatGPT and not only: how can you use the power of Generative AI at scale
ChatGPT and not only: how can you use the power of Generative AI at scaleChatGPT and not only: how can you use the power of Generative AI at scale
ChatGPT and not only: how can you use the power of Generative AI at scale
 

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
 
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
 
Scale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development TodayScale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development Today
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
 
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
 
Scale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development TodayScale: The Most Hyped Term in Agile Development Today
Scale: The Most Hyped Term in Agile Development Today
 

Recently uploaded

RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
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
 
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
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
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
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
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
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
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
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 

Recently uploaded (20)

RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
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
 
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
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
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"
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
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
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
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
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 

Design for Testability in Practice

  • 1. W6 Session 10/26/2016 11:30:00 AM Design for Testability in Practice Presented by: Nir Szilagyi PayPal Brought to you by: 350 Corporate Way, Suite 400, Orange Park, FL 32073 888-­‐268-­‐8770 ·∙ 904-­‐278-­‐0524 - info@techwell.com - http://www.starcanada.techwell.com/
  • 2. Nir Szilagyi PayPal Senior quality engineering manager Nir Szilagyi brings more than sixteen years of experience to the risk platform engineering team he leads at PayPal. Previously at eBay, he led the products platform quality engineering team in Israel and US. In both companies, Nir led the team transformation from a classic advisory group to an agile engineering team, focusing on quality throughout the product development lifecycle. Passionate about automation and testing smarter, Nir believes that agility, engineering solutions for quality, influencing testability, and open communication drive organizations forward. Nir had been involved in shaping eBay's test automation framework and is leading the development of similar quality initiatives at PayPal.
  • 3. 9/23/2016 1 Design for Testability Who am I? Ni S ilá iNir Szilágyi Finance, Risk & Compliance, Internet, Telecom, CRM, Video Streaming. Engineering, QE, QA, Release Eng nszilagyi@paypal.com | norberts@gmail.com
  • 4. 9/23/2016 2 Goals vs Systems What is Testability? • How easy is to test software Th hidd t f ft• 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).
  • 5. 9/23/2016 3 What do the Experts Say? What is Testability? – James Bach James Bach’s dimensions of Testability ‐ link
  • 6. 9/23/2016 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
  • 7. 9/23/2016 5 DesignDesign Code Test What is good design? Design The real criteria for quality of design,  “minimizes cost (including the cost of  delay) and maximizes benefit over the  lifetime of the software,” ‐ Kent Beck
  • 8. 9/23/2016 6 Application Layers Example Users Clients Service Interfaces Message Types UI Components Presentation Logic Business Workflow Business Components Data Access Components Data Utilities DB Service Architecture Example 500 Data ElementsYes, No, Maybe Users Gateway Service B Service A 500 Data Elements SLA: 2 seconds SLA:  200ms , , y 70%30% Data Models and Rules Simple Data Model and few  rules
  • 9. 9/23/2016 7 • Separation of Concerns • Single Responsibility Principle Design • 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 D fi D t f t f l d b t• Define Data format for a layer and between • Define clear contract between layers • How are you going to test this?
  • 10. 9/23/2016 8 • Separation of Concerns • Single Responsibility Principle Design • 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 D fi D t f t f l d b t• Define Data format for a layer and between • Define clear contract between layers • How are you going to test this? • Inner layer dependencies • Cross layer dependencies Design - Dependencies y p • Code dependencies • Rule/Code separation
  • 11. 9/23/2016 9 Application Layers Example Users Clients Service Interfaces Message Types UI Components Presentation Logic Business Workflow Business Components Data Access Components Data Utilities DB Testability traps • Non deterministic dependencies • Race conditions • Message latency • Threading • CRUD operations on shared data • Complexity• Complexity • Accidental  • Essential
  • 12. 9/23/2016 10 Distributed Multi-Flow Application Layers User Login Add to Cart Pay Service  Interface s Message  Types UI  Compon ents Presentatio n Logic Service  Interface s Message  Types B i UI  Compon ents Presentatio n Logic Service  Interface s Message  Types UI  Compon ents Presentatio n Logic Business  Workflow Business  Componen ts Data Access  Components Data  Utilities DB Business  Workflow Business  Componen ts Data Access  Components Data  Utilities DB Business  Workflow Business  Componen ts Data Access  Components Data  Utilities DB Code • Code Testability measurement ‐ > How painful is it to  write a good unit testg • Composition over inheritance • No cyclic dependencies • Dependency injection • Beck’s five rules: • Passes all the tests• Passes all the tests • Reveals intention • No duplication • Fewest elements
  • 13. 9/23/2016 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 ofof 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”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 craftsman takes pride in his work an strives to do the best  job he can. Writing 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. 
  • 14. 9/23/2016 12 Testing • Design patterns for testability. • Treat test code almost like production code. • External vs. internal factors • Controllability • ObservabilityObservability • Service interface validator (AOP) Service Architecture Example 500 Data ElementsYes, No, Maybe Users Gateway Service B Service A 500 Data Elements SLA: 2 seconds SLA:  200ms , , y 70%30% Data Models and Rules Simple Data Model and few  rules
  • 15. 9/23/2016 13 Design Patterns for Test Code • Factory (ex. abstract request types) • Builder (ex. construct Service Request) • Singleton (ex. DB connection) • Façade (ex. abstract test logic) • Command (ex. controlling UI elements) • Template (ex Test objects)• Template (ex. Test objects) • Learn learn learn Upfront A Note on the Role of the Test Manager • Upfront • As you go • Look at the code • Be there • Relationships Confidence• Confidence • Hands on vs. technical leadership
  • 16. 9/23/2016 14 The Basic Testing Needs Observability: • The ability to see the product we are testing Controllability: • The ability to invoke any possible state orwe are testing • The ability to determinate test status and reports • The ability to observe behavior and output possible state or combination of states of the product • The ability to manipulate interim behavior or outputs More Test side impact • Tester Knowledge • Team compositionTeam composition • Relationships • Eng, PO, Architects • Environment • Data, Data, Data • Dev Process, CI, CD. • Test Plan - Review
  • 17. 9/23/2016 15 Design for Testability… Testable software -> Goal Good design, clean code, effective testing -> Systems