SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 CloudTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
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 MaherQA 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 QualityTechWell
 
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 confCorina 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 PyramidNaresh 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 StrategyTechWell
 
Continuous everything
Continuous everythingContinuous everything
Continuous everythingTEST Huddle
 
AI and Machine Learning for Testers
AI and Machine Learning for TestersAI and Machine Learning for Testers
AI and Machine Learning for TestersTechWell
 
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…DebateTEST 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 GrantQA or the Highway
 
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 ArchitectTechWell
 
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 BueningQA 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 WilliamsQA 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 SuccessTechWell
 
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 KinsbrunerQA or the Highway
 

Was ist angesagt? (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
 

Andere mochten auch

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 AutomationTechWell
 
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 TestingJosiah 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 PlanJosiah 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 StudyTechWell
 
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 MappingJosiah 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 TestingJosiah 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 HeardTechWell
 
Anti-Patterns for Automated Testing
Anti-Patterns for Automated TestingAnti-Patterns for Automated Testing
Anti-Patterns for Automated TestingJosiah Renaudin
 
Better Together: Group Exploratory Testing
Better Together: Group Exploratory TestingBetter Together: Group Exploratory Testing
Better Together: Group Exploratory TestingTechWell
 
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 FrameworkJosiah 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 TestingJosiah Renaudin
 
Analyze, Diagnose, and Prevent Test Flakiness
Analyze, Diagnose, and Prevent Test FlakinessAnalyze, Diagnose, and Prevent Test Flakiness
Analyze, Diagnose, and Prevent Test FlakinessJosiah 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 StudiesJosiah 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 FrameworkTechWell
 
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 BehindTechWell
 
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
 

Andere mochten auch (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...
 

Ähnlich wie Design for Testability in Practice

Design for Testability in Practice
Design for Testability in PracticeDesign for Testability in Practice
Design for Testability in PracticeTechWell
 
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 Testingmabl
 
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 2011TEST Huddle
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDaysJKT
 
Test Automation Trends and Beyond
Test Automation Trends and BeyondTest Automation Trends and Beyond
Test Automation Trends and BeyondKnoldus Inc.
 
Microdeployments for microservices dev ops nashville
Microdeployments for microservices   dev ops nashvilleMicrodeployments for microservices   dev ops nashville
Microdeployments for microservices dev ops nashvilleNathaniel (Ned) Bauerle
 
Agile Development From A Developers Perspective
Agile Development From A Developers PerspectiveAgile Development From A Developers Perspective
Agile Development From A Developers PerspectiveRichard 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 CloudInside Analysis
 
Software Quality without Testing
Software Quality without TestingSoftware Quality without Testing
Software Quality without TestingNagarro
 
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 SoftwareTechWell
 
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 EastmanQA 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 LevelDynatrace
 
Agile Teams Deserve Agile Testing
Agile Teams Deserve Agile TestingAgile Teams Deserve Agile Testing
Agile Teams Deserve Agile TestingSmartBear
 
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 scaleMaxim Salnikov
 

Ähnlich wie 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
 

Mehr von TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
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 ArchitectureTechWell
 
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 StartTechWell
 
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 StrategyTechWell
 
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 SuccessTechWell
 
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 SanityTechWell
 
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 StrategyTechWell
 
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 DevOpsTechWell
 
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—LeadershipTechWell
 
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 TeamsTechWell
 
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 GameTechWell
 
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 TeamsTechWell
 
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 ImplementationTechWell
 
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 ProcessTechWell
 
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 AutomateTechWell
 
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 SuccessTechWell
 
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 TransformationTechWell
 
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 TodayTechWell
 

Mehr von 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
 

Kürzlich hochgeladen

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Kürzlich hochgeladen (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

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