SlideShare a Scribd company logo
1 of 28
DESIGNING FOR TESTABILITY
REIFA TANGON
TECH IN ASIA - PDC 2018
HELLO WORLD…!
• “Tak kenal, maka tak sayang…”
• I’m Reifa Tangon
• Been a QA for a bit now
• Have worked in these industries:
• Health
• E-Commerce
• Telco
• Fintech
• Logistics
• Transportation
• Hobbies: See the world and meet
wonderful people from different culture.
Also, taste the local delicacies :D
AGILE TESTING
What is Agile Tester?
A tester who embraces change, collaborates well
with technical and business people, and understands
the concepts of using tests to document requirements
and drive development.
AGILE TESTING
What are the characteristics of Agile Tester?
● Tend to have good technical skills
● Know how to collaborate with others to automate tests
● Experienced exploratory testers
ALSO:
They are willing to learn what customers do so that they can better
understand the customers’ software requirements.
AGILE TESTING
Who is Agile Tester?
A team member who
drives agile testing.
SO, WHAT DOES THE TYPICAL PROCESS THAT
AGILE TESTER GOES THROUGH?
STORY
PLANNING
SESSION
STORY
WRITING
AUTOMATE
AUTOMATION
TESTS
WHEN AND
WHERE TO
AUTOMATE?
ALL ABOUT
AUTOMATION…
BUT,
• Does your organization
already need test
automation? Or, are you just
following a trend?
• ...an expensive trend…
THINGS TO CONSIDER FOR
AUTOMATION TESTING
● Do you have huge regression suite? Let’s say you need
more than a day to finish running your regression test if
you are doing it manually.
● Do you have huge amount of repeatable tests?
● Do you have production release every single day?
If YES on all those questions...
Congrats! You’ll need to
create test automation.
AUTOMATION
Usually, organization
automate tests that are
repeatable or often used
across projects. This way,
QA teams won’t have to
continually rewrite the
scripts and manually
execute them.
BENEFITS OF AUTOMATION:
● QA can finish other tasks without
worrying about if a test is running
successfully.
● Business will be able to hit the market
faster than ever and mitigate human
errors that were prevalent in
traditional, manual testing.
IMPLEMENT
FUNCTIONALITY
BA & QA
SIGN-OFF
ON DEV
BOX
STORY
TESTING
SHOWCASE
TO BUSINESS
AGILE TESTERS,
TESTING STRATEGIES,
AUTOMATION…
WHERE DOES THIS
LEAD TO?
DESIGNING FOR TESTABILITY
What is Testability?
The degree to which a system can
be tested “effectively” and
“efficiently”
Where
● Effectiveness has to do with increasing the
depth and quality of tests
● Efficiency deals with reducing cost, effort and
time of testing
DESIGNING FOR TESTABILITY
What are the main factors that influence
testability?
● Controllability
● Visibility / Observability
TESTABILITY FACTORS:
CONTROLLABILITY
The better we can control the system (in
isolation), the more and better testing can be
done, automated, and optimized.
Tester ability to create
difficult scenarios to test the
software under extreme
circumstances.
TESTABILITY FACTORS: VISIBILITY /
OBSERVABILITY
“What you see is what can be tested”. Ability to
observe the inputs, outputs, states, internals, error
conditions, resource utilization, and other side
effects of the system under tests.
For example: when a user
receives the correct expected
output, but the internal
process are not quite what
was specified in the
requirements.
DESIGNING FOR TESTABILITY
Why is design for testability important?
It reduces:
● Cost
● Effort and time for debugging
● Diagnosis and maintenance during the full
software development life cycle
DESIGNING FOR TESTABILITY
Who are the brains for the design for
testability?
● Architects
● Developers
● Testers
DESIGNING FOR TESTABILITY
Testability is a design
criteria and testers must
define testability
requirements.
In Agile, testability is a
responsibility for the
whole team but it’s good
to have a specific person
like a test architect who is
driving testability.
CONCLUSIONS
● A strategy for design
testability needs to cover
requirements, testing, and
architecture.
● Neglecting testTestability
needs to be consistently
defined and well known by
everybody involved, handled
in a risk based testing strategy
and balanced with non-
functional requirements.
● ability means increasing
technical debt.
REFERENCES:
https://essenceoftesting.blogspot.com/ by Anand
Bagmar
https://www.infoq.com/news/2014/10/designing-
systems-testability - Designing Systems for Testability
by Peter Zimmerer from Siemens AG
https://www.agileconnection.com/article/testing-
testability - Testing testability by Ipsita Chatterjee

More Related Content

What's hot

SAFe Journey in Nokia - Sónia Won and Ricardo Fernandes
SAFe Journey in Nokia - Sónia Won and Ricardo FernandesSAFe Journey in Nokia - Sónia Won and Ricardo Fernandes
SAFe Journey in Nokia - Sónia Won and Ricardo FernandesRicardo Fernandes
 
TMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep TalkTMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep TalkIosif Itkin
 
SAFe - How to Scale in a company
SAFe - How to Scale in a companySAFe - How to Scale in a company
SAFe - How to Scale in a companyRicardo Fernandes
 
Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)Darryl Jose
 
Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...
Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...
Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...AgileNetwork
 
SAFe for Scrum Masters 2020
SAFe for Scrum Masters 2020SAFe for Scrum Masters 2020
SAFe for Scrum Masters 2020Grant Hamel
 

What's hot (14)

SAFe Journey in Nokia - Sónia Won and Ricardo Fernandes
SAFe Journey in Nokia - Sónia Won and Ricardo FernandesSAFe Journey in Nokia - Sónia Won and Ricardo Fernandes
SAFe Journey in Nokia - Sónia Won and Ricardo Fernandes
 
Sulatha Resume-QA
Sulatha Resume-QASulatha Resume-QA
Sulatha Resume-QA
 
Scaled agile implementation
Scaled agile implementationScaled agile implementation
Scaled agile implementation
 
TMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep TalkTMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep Talk
 
Scaled agile
Scaled agileScaled agile
Scaled agile
 
SAFe - How to Scale in a company
SAFe - How to Scale in a companySAFe - How to Scale in a company
SAFe - How to Scale in a company
 
RTE Presentation
RTE PresentationRTE Presentation
RTE Presentation
 
Rajesh
RajeshRajesh
Rajesh
 
Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)
 
Ravichandran M
Ravichandran MRavichandran M
Ravichandran M
 
Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...
Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...
Agile Network India | De-mystifying the Role of a Release Train Engineer | Ro...
 
rajesh
rajeshrajesh
rajesh
 
Quality Assurance
Quality AssuranceQuality Assurance
Quality Assurance
 
SAFe for Scrum Masters 2020
SAFe for Scrum Masters 2020SAFe for Scrum Masters 2020
SAFe for Scrum Masters 2020
 

Similar to Designing for Testability

A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversionAshish Kumar
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycleDiUS
 
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...Ankit Prajapati
 
[Webinar] Visa's Journey to a Culture of Experimentation
[Webinar] Visa's Journey to a Culture of Experimentation[Webinar] Visa's Journey to a Culture of Experimentation
[Webinar] Visa's Journey to a Culture of ExperimentationOptimizely
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teamsDennis Popov
 
Zero touch QA automation platform for DevOps
Zero touch QA automation platform for DevOpsZero touch QA automation platform for DevOps
Zero touch QA automation platform for DevOpsTaUB Solutions
 
Tune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTechWell
 
TestPRO Profile v4.1
TestPRO Profile v4.1TestPRO Profile v4.1
TestPRO Profile v4.1Samer Desouky
 
Essential Statistical Methods for Process & Product Optimization
Essential Statistical Methods for Process & Product OptimizationEssential Statistical Methods for Process & Product Optimization
Essential Statistical Methods for Process & Product OptimizationSafetyChain Software
 
MHA2018 - Quality Advocacy: The next progression for Agile Testers - Don Peters
MHA2018 - Quality Advocacy: The next progression for Agile Testers - Don PetersMHA2018 - Quality Advocacy: The next progression for Agile Testers - Don Peters
MHA2018 - Quality Advocacy: The next progression for Agile Testers - Don PetersAgileDenver
 
Beyond "Quality Assurance"
Beyond "Quality Assurance"Beyond "Quality Assurance"
Beyond "Quality Assurance"Jason Benton
 
How to make Automation an asset for Organization
How to make Automation an asset for OrganizationHow to make Automation an asset for Organization
How to make Automation an asset for Organizationanuvip
 
Fundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptxFundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptxMusaBashir9
 
Challenges with measuring quality for agile distributed research type project
Challenges with measuring quality for agile distributed research type projectChallenges with measuring quality for agile distributed research type project
Challenges with measuring quality for agile distributed research type projectChandan Patary
 

Similar to Designing for Testability (20)

A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversion
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycle
 
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...
 
The Future of Testing
The Future of TestingThe Future of Testing
The Future of Testing
 
[Webinar] Visa's Journey to a Culture of Experimentation
[Webinar] Visa's Journey to a Culture of Experimentation[Webinar] Visa's Journey to a Culture of Experimentation
[Webinar] Visa's Journey to a Culture of Experimentation
 
QM in Software Projects
QM in Software ProjectsQM in Software Projects
QM in Software Projects
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
 
Design testabilty
Design testabiltyDesign testabilty
Design testabilty
 
Zero touch QA automation platform for DevOps
Zero touch QA automation platform for DevOpsZero touch QA automation platform for DevOps
Zero touch QA automation platform for DevOps
 
Sanitized tb swstmppp1516july
Sanitized tb swstmppp1516julySanitized tb swstmppp1516july
Sanitized tb swstmppp1516july
 
Tune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product Maturity
 
TestPRO Profile v4.1
TestPRO Profile v4.1TestPRO Profile v4.1
TestPRO Profile v4.1
 
Tcl corporate sm v0.05 100510
Tcl corporate sm v0.05 100510Tcl corporate sm v0.05 100510
Tcl corporate sm v0.05 100510
 
Essential Statistical Methods for Process & Product Optimization
Essential Statistical Methods for Process & Product OptimizationEssential Statistical Methods for Process & Product Optimization
Essential Statistical Methods for Process & Product Optimization
 
MHA2018 - Quality Advocacy: The next progression for Agile Testers - Don Peters
MHA2018 - Quality Advocacy: The next progression for Agile Testers - Don PetersMHA2018 - Quality Advocacy: The next progression for Agile Testers - Don Peters
MHA2018 - Quality Advocacy: The next progression for Agile Testers - Don Peters
 
Beyond "Quality Assurance"
Beyond "Quality Assurance"Beyond "Quality Assurance"
Beyond "Quality Assurance"
 
How to make Automation an asset for Organization
How to make Automation an asset for OrganizationHow to make Automation an asset for Organization
How to make Automation an asset for Organization
 
Nitin Chourasia
Nitin ChourasiaNitin Chourasia
Nitin Chourasia
 
Fundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptxFundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptx
 
Challenges with measuring quality for agile distributed research type project
Challenges with measuring quality for agile distributed research type projectChallenges with measuring quality for agile distributed research type project
Challenges with measuring quality for agile distributed research type project
 

Recently uploaded

Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsUXDXConf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreelreely ones
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 

Recently uploaded (20)

Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 

Designing for Testability

  • 1. DESIGNING FOR TESTABILITY REIFA TANGON TECH IN ASIA - PDC 2018
  • 2. HELLO WORLD…! • “Tak kenal, maka tak sayang…” • I’m Reifa Tangon • Been a QA for a bit now • Have worked in these industries: • Health • E-Commerce • Telco • Fintech • Logistics • Transportation • Hobbies: See the world and meet wonderful people from different culture. Also, taste the local delicacies :D
  • 3. AGILE TESTING What is Agile Tester? A tester who embraces change, collaborates well with technical and business people, and understands the concepts of using tests to document requirements and drive development.
  • 4. AGILE TESTING What are the characteristics of Agile Tester? ● Tend to have good technical skills ● Know how to collaborate with others to automate tests ● Experienced exploratory testers ALSO: They are willing to learn what customers do so that they can better understand the customers’ software requirements.
  • 5. AGILE TESTING Who is Agile Tester? A team member who drives agile testing.
  • 6. SO, WHAT DOES THE TYPICAL PROCESS THAT AGILE TESTER GOES THROUGH?
  • 11. ALL ABOUT AUTOMATION… BUT, • Does your organization already need test automation? Or, are you just following a trend? • ...an expensive trend…
  • 12. THINGS TO CONSIDER FOR AUTOMATION TESTING ● Do you have huge regression suite? Let’s say you need more than a day to finish running your regression test if you are doing it manually. ● Do you have huge amount of repeatable tests? ● Do you have production release every single day? If YES on all those questions... Congrats! You’ll need to create test automation.
  • 13. AUTOMATION Usually, organization automate tests that are repeatable or often used across projects. This way, QA teams won’t have to continually rewrite the scripts and manually execute them.
  • 14. BENEFITS OF AUTOMATION: ● QA can finish other tasks without worrying about if a test is running successfully. ● Business will be able to hit the market faster than ever and mitigate human errors that were prevalent in traditional, manual testing.
  • 20. DESIGNING FOR TESTABILITY What is Testability? The degree to which a system can be tested “effectively” and “efficiently” Where ● Effectiveness has to do with increasing the depth and quality of tests ● Efficiency deals with reducing cost, effort and time of testing
  • 21. DESIGNING FOR TESTABILITY What are the main factors that influence testability? ● Controllability ● Visibility / Observability
  • 22. TESTABILITY FACTORS: CONTROLLABILITY The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. Tester ability to create difficult scenarios to test the software under extreme circumstances.
  • 23. TESTABILITY FACTORS: VISIBILITY / OBSERVABILITY “What you see is what can be tested”. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements.
  • 24. DESIGNING FOR TESTABILITY Why is design for testability important? It reduces: ● Cost ● Effort and time for debugging ● Diagnosis and maintenance during the full software development life cycle
  • 25. DESIGNING FOR TESTABILITY Who are the brains for the design for testability? ● Architects ● Developers ● Testers
  • 26. DESIGNING FOR TESTABILITY Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  • 27. CONCLUSIONS ● A strategy for design testability needs to cover requirements, testing, and architecture. ● Neglecting testTestability needs to be consistently defined and well known by everybody involved, handled in a risk based testing strategy and balanced with non- functional requirements. ● ability means increasing technical debt.
  • 28. REFERENCES: https://essenceoftesting.blogspot.com/ by Anand Bagmar https://www.infoq.com/news/2014/10/designing- systems-testability - Designing Systems for Testability by Peter Zimmerer from Siemens AG https://www.agileconnection.com/article/testing- testability - Testing testability by Ipsita Chatterjee

Editor's Notes

  1. Exploring the principles and practices of agile testing Based on book, Agile Testing by Lisa Crispin and Janet Gregory What is Agile Tester? A tester who embraces change, collaborates well with technical and business people, and understands the concepts of using tests to document requirements and drive development. Agile Testers tend to have good technical skills, know how to collaborate with others to automate tests, and are also experienced exploratory testers. They are willing to learn what customers do so that they can better understand the customers’ software requirements. Who is Agile Tester? A team member who drives agile testing. Ten Principles for Agile Testers Provide continuous feedback. Deliver value to the customer. Enable face-to-face communication. Have courage. Keep it simple. Practice continuous improvement. Respond to change. Self-organize. Focus on people. Enjoy.
  2. Exploring the principles and practices of agile testing Based on book, Agile Testing by Lisa Crispin and Janet Gregory What is Agile Tester? A tester who embraces change, collaborates well with technical and business people, and understands the concepts of using tests to document requirements and drive development. Agile Testers tend to have good technical skills, know how to collaborate with others to automate tests, and are also experienced exploratory testers. They are willing to learn what customers do so that they can better understand the customers’ software requirements. Who is Agile Tester? A team member who drives agile testing. Ten Principles for Agile Testers Provide continuous feedback. Deliver value to the customer. Enable face-to-face communication. Have courage. Keep it simple. Practice continuous improvement. Respond to change. Self-organize. Focus on people. Enjoy.
  3. Exploring the principles and practices of agile testing Based on book, Agile Testing by Lisa Crispin and Janet Gregory What is Agile Tester? A tester who embraces change, collaborates well with technical and business people, and understands the concepts of using tests to document requirements and drive development. Agile Testers tend to have good technical skills, know how to collaborate with others to automate tests, and are also experienced exploratory testers. They are willing to learn what customers do so that they can better understand the customers’ software requirements. Who is Agile Tester? A team member who drives agile testing. Ten Principles for Agile Testers Provide continuous feedback. Deliver value to the customer. Enable face-to-face communication. Have courage. Keep it simple. Practice continuous improvement. Respond to change. Self-organize. Focus on people. Enjoy.
  4. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  5. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  6. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  7. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  8. Automation (when and where to automate, and where not to) It’s all about automation these days.. But does your organization already need test automation? Or are you just following a trend? Should I say.. An expensive trend? Before you even start with automation, you need to weigh in couple of points such as: Do you have a huge regression suite? Let’s say you need more than a day to finish running your regression test if you are doing it manually. Do you have a huge amount of repeatable tests? Do you have production release every single day? If you answered YES on all those questions, then looks like you’ll need automation testing. Usually, organization automate tests that are repeatable or often used across projects. This way, QA teams won’t have to continually rewrite the scripts and manually execute them. So, what are the benefits then? QA can finish other tasks without worrying about if a test is running successfully. Business will be able to hit the market faster than ever and mitigate human errors that were prevalent in traditional, manual testing.
  9. Automation (when and where to automate, and where not to) It’s all about automation these days.. But does your organization already need test automation? Or are you just following a trend? Should I say.. An expensive trend? Before you even start with automation, you need to weigh in couple of points such as: Do you have a huge regression suite? Let’s say you need more than a day to finish running your regression test if you are doing it manually. Do you have a huge amount of repeatable tests? Do you have production release every single day? If you answered YES on all those questions, then looks like you’ll need automation testing. Usually, organization automate tests that are repeatable or often used across projects. This way, QA teams won’t have to continually rewrite the scripts and manually execute them. So, what are the benefits then? QA can finish other tasks without worrying about if a test is running successfully. Business will be able to hit the market faster than ever and mitigate human errors that were prevalent in traditional, manual testing.
  10. Automation (when and where to automate, and where not to) It’s all about automation these days.. But does your organization already need test automation? Or are you just following a trend? Should I say.. An expensive trend? Before you even start with automation, you need to weigh in couple of points such as: Do you have a huge regression suite? Let’s say you need more than a day to finish running your regression test if you are doing it manually. Do you have a huge amount of repeatable tests? Do you have production release every single day? If you answered YES on all those questions, then looks like you’ll need automation testing. Usually, organization automate tests that are repeatable or often used across projects. This way, QA teams won’t have to continually rewrite the scripts and manually execute them. So, what are the benefits then? QA can finish other tasks without worrying about if a test is running successfully. Business will be able to hit the market faster than ever and mitigate human errors that were prevalent in traditional, manual testing.
  11. Automation (when and where to automate, and where not to) It’s all about automation these days.. But does your organization already need test automation? Or are you just following a trend? Should I say.. An expensive trend? Before you even start with automation, you need to weigh in couple of points such as: Do you have a huge regression suite? Let’s say you need more than a day to finish running your regression test if you are doing it manually. Do you have a huge amount of repeatable tests? Do you have production release every single day? If you answered YES on all those questions, then looks like you’ll need automation testing. Usually, organization automate tests that are repeatable or often used across projects. This way, QA teams won’t have to continually rewrite the scripts and manually execute them. So, what are the benefits then? QA can finish other tasks without worrying about if a test is running successfully. Business will be able to hit the market faster than ever and mitigate human errors that were prevalent in traditional, manual testing.
  12. Automation (when and where to automate, and where not to) It’s all about automation these days.. But does your organization already need test automation? Or are you just following a trend? Should I say.. An expensive trend? Before you even start with automation, you need to weigh in couple of points such as: Do you have a huge regression suite? Let’s say you need more than a day to finish running your regression test if you are doing it manually. Do you have a huge amount of repeatable tests? Do you have production release every single day? If you answered YES on all those questions, then looks like you’ll need automation testing. Usually, organization automate tests that are repeatable or often used across projects. This way, QA teams won’t have to continually rewrite the scripts and manually execute them. So, what are the benefits then? QA can finish other tasks without worrying about if a test is running successfully. Business will be able to hit the market faster than ever and mitigate human errors that were prevalent in traditional, manual testing.
  13. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  14. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  15. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  16. Typical Process that QA goes through Story planning session Story writing Automate Automation Tests Implement Functionality BA & QA Sign-Off Story Testing Showcase to Business
  17. Designing for Testability - How test thinking can inform design, development, and deployment What is Testability? The degree to which a system can be tested “effectively” and “efficiently”. Where: Effectiveness has to do with increasing the depth and quality of tests Efficiency deals with reducing cost, effort and time of testing. What are the main factors that influence testability? Controllability: The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. For example: tester ability to create difficult scenarios to test the software under extreme circumstances. Visibility / observability: What you see is what can be tested. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements. Design for testability is often a better investment than automation. Automation also depends on testability, when a system is designed to be testable then the effort needed to automate testing will also be lower. Why is design for testability important? It reduces: Cost Effort and time for debugging Diagnosis and maintenance during the full software development life cycle Who are the brains for the design for testability? Architects Developers Testers Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  18. Designing for Testability - How test thinking can inform design, development, and deployment What is Testability? The degree to which a system can be tested “effectively” and “efficiently”. Where: Effectiveness has to do with increasing the depth and quality of tests Efficiency deals with reducing cost, effort and time of testing. What are the main factors that influence testability? Controllability: The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. For example: tester ability to create difficult scenarios to test the software under extreme circumstances. Visibility / observability: What you see is what can be tested. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements. Design for testability is often a better investment than automation. Automation also depends on testability, when a system is designed to be testable then the effort needed to automate testing will also be lower. Why is design for testability important? It reduces: Cost Effort and time for debugging Diagnosis and maintenance during the full software development life cycle Who are the brains for the design for testability? Architects Developers Testers Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  19. Designing for Testability - How test thinking can inform design, development, and deployment What is Testability? The degree to which a system can be tested “effectively” and “efficiently”. Where: Effectiveness has to do with increasing the depth and quality of tests Efficiency deals with reducing cost, effort and time of testing. What are the main factors that influence testability? Controllability: The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. For example: tester ability to create difficult scenarios to test the software under extreme circumstances. Visibility / observability: What you see is what can be tested. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements. Design for testability is often a better investment than automation. Automation also depends on testability, when a system is designed to be testable then the effort needed to automate testing will also be lower. Why is design for testability important? It reduces: Cost Effort and time for debugging Diagnosis and maintenance during the full software development life cycle Who are the brains for the design for testability? Architects Developers Testers Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  20. Designing for Testability - How test thinking can inform design, development, and deployment What is Testability? The degree to which a system can be tested “effectively” and “efficiently”. Where: Effectiveness has to do with increasing the depth and quality of tests Efficiency deals with reducing cost, effort and time of testing. What are the main factors that influence testability? Controllability: The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. For example: tester ability to create difficult scenarios to test the software under extreme circumstances. Visibility / observability: What you see is what can be tested. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements. Design for testability is often a better investment than automation. Automation also depends on testability, when a system is designed to be testable then the effort needed to automate testing will also be lower. Why is design for testability important? It reduces: Cost Effort and time for debugging Diagnosis and maintenance during the full software development life cycle Who are the brains for the design for testability? Architects Developers Testers Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  21. Designing for Testability - How test thinking can inform design, development, and deployment What is Testability? The degree to which a system can be tested “effectively” and “efficiently”. Where: Effectiveness has to do with increasing the depth and quality of tests Efficiency deals with reducing cost, effort and time of testing. What are the main factors that influence testability? Controllability: The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. For example: tester ability to create difficult scenarios to test the software under extreme circumstances. Visibility / observability: What you see is what can be tested. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements. Design for testability is often a better investment than automation. Automation also depends on testability, when a system is designed to be testable then the effort needed to automate testing will also be lower. Why is design for testability important? It reduces: Cost Effort and time for debugging Diagnosis and maintenance during the full software development life cycle Who are the brains for the design for testability? Architects Developers Testers Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  22. Designing for Testability - How test thinking can inform design, development, and deployment What is Testability? The degree to which a system can be tested “effectively” and “efficiently”. Where: Effectiveness has to do with increasing the depth and quality of tests Efficiency deals with reducing cost, effort and time of testing. What are the main factors that influence testability? Controllability: The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. For example: tester ability to create difficult scenarios to test the software under extreme circumstances. Visibility / observability: What you see is what can be tested. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements. Design for testability is often a better investment than automation. Automation also depends on testability, when a system is designed to be testable then the effort needed to automate testing will also be lower. Why is design for testability important? It reduces: Cost Effort and time for debugging Diagnosis and maintenance during the full software development life cycle Who are the brains for the design for testability? Architects Developers Testers Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  23. Designing for Testability - How test thinking can inform design, development, and deployment What is Testability? The degree to which a system can be tested “effectively” and “efficiently”. Where: Effectiveness has to do with increasing the depth and quality of tests Efficiency deals with reducing cost, effort and time of testing. What are the main factors that influence testability? Controllability: The better we can control the system (in isolation), the more and better testing can be done, automated, and optimized. For example: tester ability to create difficult scenarios to test the software under extreme circumstances. Visibility / observability: What you see is what can be tested. Ability to observe the inputs, outputs, states, internals, error conditions, resource utilization, and other side effects of the system under tests. For example: when a user receives the correct expected output, but the internal process are not quite what was specified in the requirements. Design for testability is often a better investment than automation. Automation also depends on testability, when a system is designed to be testable then the effort needed to automate testing will also be lower. Why is design for testability important? It reduces: Cost Effort and time for debugging Diagnosis and maintenance during the full software development life cycle Who are the brains for the design for testability? Architects Developers Testers Testability is a design criteria and testers must define testability requirements. In Agile, testability is a responsibility for the whole team but it’s good to have a specific person like a test architect who is driving testability.
  24. Conclusions A strategy for design testability needs to cover requirements, testing and architecture. Testability needs to be consistently defined and well known by everybody involved, handled in a risk based testing strategy and balanced with non-functional requirements. Neglecting testability means increasing technical debt.