尊敬的 微信汇率:1円 ≈ 0.046239 元 支付宝汇率:1円 ≈ 0.04633元 [退出登录]
SlideShare a Scribd company logo
Testability
An Underrated Factor In Long Term Success
By
Richard Neeve
<Date removed to protect client identity>
Reference material
This presentation is predominantly a summary of the
ideas presented in Bret Pettichord’s paper entitled
“Design for Testability”.
This can be found here.
Outline
• Background.
• What is testability?
• Why is it important?
• How can it be achieved?
• What are the risks?
• What are the people/organisational issues?
• Conclusions.
Some background
Why now?
• The <removed> department has recently been shifting its focus to newThe <removed> department has recently been shifting its focus to new
products.products.
• A chance to reflect on where the problems of testing <product names>A chance to reflect on where the problems of testing <product names>
started.started.
• Biggest causal factor was the failure to properly design testability intoBiggest causal factor was the failure to properly design testability into
the solutions from the outset.the solutions from the outset.
• This inhibited manual testing and the scheduling of automation work.This inhibited manual testing and the scheduling of automation work.
• Consequently we incurred large (and recurring) effort costs which thenConsequently we incurred large (and recurring) effort costs which then
gave rise to significant opportunity costs.gave rise to significant opportunity costs.
• Looking ahead, it’s hard to see how placing so little emphasis onLooking ahead, it’s hard to see how placing so little emphasis on
testability is compatible with sustaining an Agile approach.testability is compatible with sustaining an Agile approach.
• The testability of new products needs to be addressed now whilst theirThe testability of new products needs to be addressed now whilst their
designs are still open. The longer we leave it the harder it will be.designs are still open. The longer we leave it the harder it will be.
I am aiming to
• Help create a better appreciation for the topic.
• Stimulate some discussion.
• Promote the importance of testability in automation and agility.
• Get testability on (or higher up) the agenda.
• Contribute to the avoidance of previous mistakes (e.g. <product
name>).
I am not aiming to
• Address the testability of documentation (e.g. requirements).
This talk is about software testability.
• Try and tell people where testability should be positioned in their
overall list of design priorities.
• Try to convince people to retro-fit testability into products for
which the die is cast. If there are easy wins for mature products
that’s great but my focus is on improving the situation for new
products.
What is testability?
Part of a long wish list
• Maintainability
• Scalability
• Extensibility
• Flexibility
• Correctness
• Efficiency
• Security
• Reliability
• Reusability
• Portability
• Testability
• Usability
• Accuracy
• Consistency
• Robustness
_____________________________
• All wholesome aims and there are undoubtedly others.
• This list is both long and nested >>>
• Commonality
• Auditability
• Modularity
• Interoperability
• Integrity
• Completeness
• Conciseness
Zoom in on ‘Testability’ and you get...
Controllability The better we can control it, the more testing can be automated.
Availability To test it, we have to get at it.
Simplicity The simpler it is, the less there is to test.
Stability The fewer the changes, the fewer the disruptions to testing.
Observability What you see is what can be tested.
Understandabilit
y
The more information we have, the smarter we can test.
Operability The better it works, the more efficiently it can be tested.
Decomposability By controlling the scope of testing, we can isolate problems efficiently and
perform smarter retesting.
• Often referred to as ‘The Heuristics of Software Testability’.
• Again we can go a level deeper. Let’s look at observability.
…another wish list:
Observability
“What you see is what can be tested”
• Past system states and variables are visible or queriable.
• Distinct output is generated for each input.
• System states and variables are visible or queriable during
execution.
• All factors affecting the output are visible.
• Incorrect output is easily identified.
• Internal errors are automatically detected and reported through self-
testing mechanisms.
___________________________
• Perhaps you have other things you would add.
• We could have similarly expanded any one of the items in the
previous table [NB: this type of material is available via Google].
Seeing the wood from the trees
These lists are useful because:
• It’s important to remember that testability competes with other design
aims for consideration.
• They offer a feel for the breadth of the issues (limits complacency).
• Everything in these lists is a potentially valid consideration.
But…
• There is a danger of paralysis through the lack of a clear focus.
• Looking at the core essence of testability is a good starting point.
The crux of the matter
• Ultimately it’s all about control and visibility:
Control Can we repeatedly and deterministically place the software in
its various known states through the application of pre-
determined inputs and other stimuli?
Visibility Can all relevant data pertaining to internal state, inputs,
outputs, resource usage etc be obtained in the course of
executing a test?
• Sort these out and you’re well on the way.
• Remember testability is a design issue so it needs to be
addressed whilst the design is still open for discussion.
Why is testability so important?
• Can help to detect faults that don’t trigger an observable failure.
• Can improve the efficiency of manual test execution, thereby aiding
early defect detection.
• Can significantly expedite fault investigation and fix verification.
• Can increase the chances of getting automation and benchmarking off
the ground by improving readiness and therefore ease of scheduling.
• Critical to the ongoing productivity of any automation and
benchmarking.
___________________________
• All of which contribute directly, substantially and continually towards a
product’s agility and viability throughout its life time.
• This is the basis of testability’s importance in long term success.
How is testability achieved?
Testability Aids (1)
• Testable documentation (e.g. requirements)
– Plenty to say.
– But not today because:
• Battle selection is very important in testing.
• I promised not to at the start of this talk.
• Scriptable installations/uninstallations
– Can speed up environment setup (often a big and resented cost).
– Needed to reset the environment in an un-attended test run.
• Support for different versions to co-exist on the same machine
– Things like avoiding resource collisions (e.g. configurable ports).
– Aids comparisons made for regression analyses.
– Helps us to maximise our CAPEX.
Testability Aids (2)
• Diagnostics
– Provide a view on the code’s internal workings.
– Expose defects that are not externally visible (e.g. corrupt data structures).
– Types: Monitors, Assertions, Probes.
– If in doubt, err on the side of verbosity (adjustable verbosity is very helpful).
– Developers shouldn’t underestimate a tester’s ability/interest in using these.
• Fault injection hooks
– Particularly important for testing error-handling code.
– Useful for efficiently re-creating faults that are
difficult/inconvenient/impossible to re-create at will and in a repeatable way
(e.g. loss of network connectivity).
– Tools like ‘Holodeck’ allow the simulation of conditions like resource
starvation. See here for more details.
• Test points
– Allow data/state to be changed/examined in a system thereby facilitating
both diagnostic monitoring and state manipulation.
Some points to consider
• Driving automated tests through programmatic test interfaces is typically
(but not always) more productive than going via a GUI.
• If you’re going to rely on custom testability aids, you must ensure the
absolute correctness of their implementation.
• It’s often easier to build test support directly into code upfront rather than
trying to erect non-intrusive ‘test scaffolding’ later.
• Over time, external test support code can sometimes be merged into the
core product but the associated code churn presents risks.
• Need to decide whether/how you’re going to mitigate the risks associated
with testability aids (see next section).
• Need to give careful thought to whether/how you will provide customers
with knowledge about any test interfaces.
What are the associated risks?
From the frying pan to the fire?
• Testability can play a pivotal role in mitigating
technical and project risks.
• But it brings some risks of its own.
• Sometimes these are cited as a stalling tactic.
• The risks are real, but are usually manageable.
• They are often (but not always) seen to be more
palatable than the risks associated with not
progressing a testability strategy.
• So what are these risks and are we just swapping
one set of problems for another?
Security risks
• Testability features can provide back door access for hackers.
• Of particular concern to a company like <removed>.
• Potential mitigative measures include:
– Analysing the scope for exploitation and making adjustments.
– Removing test interfaces and hooks from production code.
• Creates a secondary risk because what you’ve tested and what you’ve
released will be different.
– Using encryption keys to lock testability features.
– Trying to keep testability features secret and hoping they don’t get
discovered!
Privacy risks
• Some logs may contain sensitive information.
• If possible, the customer should approve the log content.
• Could ‘cleanse’ logs prior to release.
Performance risks
• Assertions and heavy instrumentation can ultimately impact
performance.
• Need to understand whether any impact is material.
• Profiling can help to objectively quantify a suspected impact.
• Having configurable levels of instrumentation is a help.
• Could strip out the instrumentation prior to release.
Test veracity risks
• Paradoxically, testability aids can be seen to undermine testing.
• Purists argue that test legitimacy is compromised by injecting artificial
mechanisms into the code and then using them to drive the system,
often as a substitute for a human user (especially if those mechanisms
are then removed just prior to release).
• Pragmatists argue that the need to alter the product to facilitate efficient
testing is almost inevitable and that wise testers will accept this and
manage it rather than act as though it can be eliminated.
• Level of risk depends on:
– How functionally/anatomically intrusive your testability aids are.
– The extent to which you rely upon them to make judgments.
• I used to be a purist but now I’m a pragmatist.
Maximising test veracity
• It’s important to have a sharply defined boundary between the
logic layer and the presentation layer by which it’s invoked.
• Confidence comes from knowing that any test interfaces call the
same internal interfaces as the presentation layer itself.
• Avoid 11th
hour removal of testability aids from code.
• Manual tests should supplement automated tests (more later).
Further Risks
• Adding/maintaining/removing testability features
causes code churn.
• Customers may not like the idea (or like it too much
and abuse the features provided).
• May encourage an over-reliance on test automation.
Swapping one set of
problems for another?
• To a degree, yes.
• The effort/risk/reward ratio and its acceptability is circumstantial.
• But the benefits are often very compelling so it warrants
consideration.
People/Organisational Issues
The role of manual testing
• This is not about eliminating manual testing through automation.
• Even with the best possible testability and automation, manual
black-box testing is still needed because automated tests:
– Typically fail to drive the system in a manner that exactly
replicates that of a human user.
– Cannot provide a substitute for the intuition, critical thinking
and spontaneous inspiration enjoyed by a human tester.
• In other words “test automation does not provide automatic
manual testing”. This is often not appreciated.
Key knowledge requirements
• Some testers may have always treated the code as a black box.
• To confidently engage in discussions on testability, a tester needs to
understand aspects such as:
– The system design and the geography of the implementing code.
– What interfaces are already available.
– Where testing hooks might be placed (for fault injection and
monitoring).
• Without this perspective a tester won’t be effective in the role of
testability consultant so:
– Developers need to be ready to provide the required teaching and
read access to the code repository.
– Testers need to be very specific about what they want.
Team dynamics
Need this To get this
Good dev/test relationship. Co-operation in adding/maintaining
testability aids and sharing knowledge of
the code.
Strong team-wide commitment to
enduring success.
Acknowledgement of how important
testability is.
Testers to drive the discussions from the
earliest possible stage.
Early identification of the testability
issues whilst the design is still open.
• Same needs as those for automation (unsurprisingly).
• Testers should collaborate and trust, but verify.
Some common inhibitors
• Some test teams are very inflexible on the veracity issue.
• Testers often fail to raise the subject or convey their needs (even if
support might be trivial to implement).
• Some test managers feel that the test report’s audience won’t
understand/accept any qualifications in the results in cases were test
veracity has been diluted in the interests of testability.
• Co-operation from development teams varies enormously.
• There is often a reluctance to incur what are probably new costs e.g.
testing testability features.
• Some development teams create testability aids but then don’t tell the
testers (worst case scenario).
Conclusions
• Testability can play a key role in achieving long term success.
• As with defect detection, earlier => easier => cheaper.
• It’s technically straightforward, but is typically overlooked, often
at great cost (e.g. <product name>).
• Seems like a big missed opportunity that we should consider
taking in respect of new products.
• Many of the issues are non-technical and we need to overcome
those.
• It won’t be easy but if we don’t address testability properly, our
long term agility is at risk.
Follow-up
• I would like to hear other ideas and opinions.
• I’m particularly interested in relevant <company name>
anecdotes:
– Painful examples of where testability is lacking.
– Examples of where testability has been improved
with noticeable results.
– Examples of automation solutions that have been
built upon existing testability features.
– Examples of where testability strategies have failed.
– Etc.
Thanks for listening.
Any questions or comments?

More Related Content

What's hot

Learn Software Testing for ISTQB Foundation Exam
Learn Software Testing for ISTQB Foundation ExamLearn Software Testing for ISTQB Foundation Exam
Learn Software Testing for ISTQB Foundation Exam
Yogindernath Gupta
 
ISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam PracticeISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam Practice
Yogindernath Gupta
 
Risks of Risk-Based Testing
Risks of Risk-Based TestingRisks of Risk-Based Testing
Risks of Risk-Based Testing
rrice2000
 
CTFL Module 01
CTFL Module 01CTFL Module 01
CTFL Module 01
Davis Thomas
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based Testing
Johan Hoberg
 
ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2
onsoftwaretest
 
Introduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB CertificationsIntroduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB Certifications
Yogindernath Gupta
 
From Defect Reporting To Defect Prevention
From Defect Reporting To Defect PreventionFrom Defect Reporting To Defect Prevention
From Defect Reporting To Defect Prevention
Sune Gynthersen
 
CTFL chapter 05
CTFL chapter 05CTFL chapter 05
CTFL chapter 05
Davis Thomas
 
Derk jan de Grood - ET, Best of Both Worlds
Derk jan de Grood - ET, Best of Both WorldsDerk jan de Grood - ET, Best of Both Worlds
Derk jan de Grood - ET, Best of Both Worlds
TEST Huddle
 
Michael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software TestingMichael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software Testing
TEST Huddle
 
ISTQB - CTFL Summary v1.0
ISTQB - CTFL Summary v1.0ISTQB - CTFL Summary v1.0
ISTQB - CTFL Summary v1.0
Samer Desouky
 
Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!
SQALab
 
HCLT Whitepaper: Landmines of Software Testing Metrics
HCLT Whitepaper: Landmines of Software Testing MetricsHCLT Whitepaper: Landmines of Software Testing Metrics
HCLT Whitepaper: Landmines of Software Testing Metrics
HCL Technologies
 
Michael Snyman - Software Test Automation Success
Michael Snyman - Software Test Automation Success Michael Snyman - Software Test Automation Success
Michael Snyman - Software Test Automation Success
TEST Huddle
 
Kasper Hanselman - Imagination is More Important Than Knowledge
Kasper Hanselman - Imagination is More Important Than KnowledgeKasper Hanselman - Imagination is More Important Than Knowledge
Kasper Hanselman - Imagination is More Important Than Knowledge
TEST Huddle
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1
Yogindernath Gupta
 
Practical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsPractical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing Methods
Reuben Korngold
 
Edwin Van Loon - How Much Testing is Enough - EuroSTAR 2010
Edwin Van Loon -  How Much Testing is Enough - EuroSTAR 2010Edwin Van Loon -  How Much Testing is Enough - EuroSTAR 2010
Edwin Van Loon - How Much Testing is Enough - EuroSTAR 2010
TEST Huddle
 
Testing fundamentals in a changing world
Testing fundamentals in a changing worldTesting fundamentals in a changing world
Testing fundamentals in a changing world
PractiTest
 

What's hot (20)

Learn Software Testing for ISTQB Foundation Exam
Learn Software Testing for ISTQB Foundation ExamLearn Software Testing for ISTQB Foundation Exam
Learn Software Testing for ISTQB Foundation Exam
 
ISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam PracticeISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam Practice
 
Risks of Risk-Based Testing
Risks of Risk-Based TestingRisks of Risk-Based Testing
Risks of Risk-Based Testing
 
CTFL Module 01
CTFL Module 01CTFL Module 01
CTFL Module 01
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based Testing
 
ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2
 
Introduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB CertificationsIntroduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB Certifications
 
From Defect Reporting To Defect Prevention
From Defect Reporting To Defect PreventionFrom Defect Reporting To Defect Prevention
From Defect Reporting To Defect Prevention
 
CTFL chapter 05
CTFL chapter 05CTFL chapter 05
CTFL chapter 05
 
Derk jan de Grood - ET, Best of Both Worlds
Derk jan de Grood - ET, Best of Both WorldsDerk jan de Grood - ET, Best of Both Worlds
Derk jan de Grood - ET, Best of Both Worlds
 
Michael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software TestingMichael Bolton - Two Futures of Software Testing
Michael Bolton - Two Futures of Software Testing
 
ISTQB - CTFL Summary v1.0
ISTQB - CTFL Summary v1.0ISTQB - CTFL Summary v1.0
ISTQB - CTFL Summary v1.0
 
Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!
 
HCLT Whitepaper: Landmines of Software Testing Metrics
HCLT Whitepaper: Landmines of Software Testing MetricsHCLT Whitepaper: Landmines of Software Testing Metrics
HCLT Whitepaper: Landmines of Software Testing Metrics
 
Michael Snyman - Software Test Automation Success
Michael Snyman - Software Test Automation Success Michael Snyman - Software Test Automation Success
Michael Snyman - Software Test Automation Success
 
Kasper Hanselman - Imagination is More Important Than Knowledge
Kasper Hanselman - Imagination is More Important Than KnowledgeKasper Hanselman - Imagination is More Important Than Knowledge
Kasper Hanselman - Imagination is More Important Than Knowledge
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1
 
Practical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsPractical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing Methods
 
Edwin Van Loon - How Much Testing is Enough - EuroSTAR 2010
Edwin Van Loon -  How Much Testing is Enough - EuroSTAR 2010Edwin Van Loon -  How Much Testing is Enough - EuroSTAR 2010
Edwin Van Loon - How Much Testing is Enough - EuroSTAR 2010
 
Testing fundamentals in a changing world
Testing fundamentals in a changing worldTesting fundamentals in a changing world
Testing fundamentals in a changing world
 

Viewers also liked

Girlhoods Project - Sophie Alder
Girlhoods Project - Sophie AlderGirlhoods Project - Sophie Alder
Girlhoods Project - Sophie Alder
sophiealder
 
Girlhoods project
Girlhoods projectGirlhoods project
Girlhoods project
sophiealder
 
Diadiktyaki_dimosiografia2
Diadiktyaki_dimosiografia2Diadiktyaki_dimosiografia2
Diadiktyaki_dimosiografia2Afroditiii
 
13日心シンポ話題提供スライド(web心理学ミュージアム)
13日心シンポ話題提供スライド(web心理学ミュージアム)13日心シンポ話題提供スライド(web心理学ミュージアム)
13日心シンポ話題提供スライド(web心理学ミュージアム)Mia Takeda
 
Derechos humanos
Derechos humanosDerechos humanos
Derechos humanos
Anita Hinojosa
 
141118武田Presentation revised
141118武田Presentation revised141118武田Presentation revised
141118武田Presentation revised
Mia Takeda
 
Down's sindrome
Down's sindromeDown's sindrome
Down's sindromemoshkareus
 
หลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษาหลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษา
chueain
 
Search engines
Search enginesSearch engines
Search engines
bri6059
 
Destination Touristic Services Bulgarien
Destination Touristic Services Bulgarien Destination Touristic Services Bulgarien
Destination Touristic Services Bulgarien
Marina Marinova
 
หลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษาหลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษา
chueain
 
E-TPMS Security and Privacy Vulnerabilities
E-TPMS Security and Privacy VulnerabilitiesE-TPMS Security and Privacy Vulnerabilities
E-TPMS Security and Privacy Vulnerabilities
TiroGage
 
Commercial Medium Tire Debris Study
Commercial Medium Tire Debris StudyCommercial Medium Tire Debris Study
Commercial Medium Tire Debris Study
TiroGage
 
Final Report - Commercial Vehicle Tire Condition Sensors
Final Report - Commercial Vehicle Tire Condition SensorsFinal Report - Commercial Vehicle Tire Condition Sensors
Final Report - Commercial Vehicle Tire Condition Sensors
TiroGage
 
Software Developers In Test: The Supply-Side Crisis Facing Agile Adoptors
Software Developers In Test: The Supply-Side Crisis Facing Agile AdoptorsSoftware Developers In Test: The Supply-Side Crisis Facing Agile Adoptors
Software Developers In Test: The Supply-Side Crisis Facing Agile Adoptors
Richard Neeve
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman java
WiEn SHipiet
 
Rede fetalsimilexitjavier2014port
Rede fetalsimilexitjavier2014portRede fetalsimilexitjavier2014port
Rede fetalsimilexitjavier2014port
laragabas
 

Viewers also liked (20)

Girlhoods Project - Sophie Alder
Girlhoods Project - Sophie AlderGirlhoods Project - Sophie Alder
Girlhoods Project - Sophie Alder
 
Girlhoods project
Girlhoods projectGirlhoods project
Girlhoods project
 
Diadiktyaki_dimosiografia2
Diadiktyaki_dimosiografia2Diadiktyaki_dimosiografia2
Diadiktyaki_dimosiografia2
 
Casacopreto
CasacopretoCasacopreto
Casacopreto
 
Lightroom 4 read me
Lightroom 4 read meLightroom 4 read me
Lightroom 4 read me
 
Casacoverdecombotes
CasacoverdecombotesCasacoverdecombotes
Casacoverdecombotes
 
13日心シンポ話題提供スライド(web心理学ミュージアム)
13日心シンポ話題提供スライド(web心理学ミュージアム)13日心シンポ話題提供スライド(web心理学ミュージアム)
13日心シンポ話題提供スライド(web心理学ミュージアム)
 
Derechos humanos
Derechos humanosDerechos humanos
Derechos humanos
 
141118武田Presentation revised
141118武田Presentation revised141118武田Presentation revised
141118武田Presentation revised
 
Down's sindrome
Down's sindromeDown's sindrome
Down's sindrome
 
หลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษาหลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษา
 
Search engines
Search enginesSearch engines
Search engines
 
Destination Touristic Services Bulgarien
Destination Touristic Services Bulgarien Destination Touristic Services Bulgarien
Destination Touristic Services Bulgarien
 
หลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษาหลักและทฤษฎีการบริหารการศึกษา
หลักและทฤษฎีการบริหารการศึกษา
 
E-TPMS Security and Privacy Vulnerabilities
E-TPMS Security and Privacy VulnerabilitiesE-TPMS Security and Privacy Vulnerabilities
E-TPMS Security and Privacy Vulnerabilities
 
Commercial Medium Tire Debris Study
Commercial Medium Tire Debris StudyCommercial Medium Tire Debris Study
Commercial Medium Tire Debris Study
 
Final Report - Commercial Vehicle Tire Condition Sensors
Final Report - Commercial Vehicle Tire Condition SensorsFinal Report - Commercial Vehicle Tire Condition Sensors
Final Report - Commercial Vehicle Tire Condition Sensors
 
Software Developers In Test: The Supply-Side Crisis Facing Agile Adoptors
Software Developers In Test: The Supply-Side Crisis Facing Agile AdoptorsSoftware Developers In Test: The Supply-Side Crisis Facing Agile Adoptors
Software Developers In Test: The Supply-Side Crisis Facing Agile Adoptors
 
Pengenalan pemrograman java
Pengenalan pemrograman javaPengenalan pemrograman java
Pengenalan pemrograman java
 
Rede fetalsimilexitjavier2014port
Rede fetalsimilexitjavier2014portRede fetalsimilexitjavier2014port
Rede fetalsimilexitjavier2014port
 

Similar to Design testabilty

L software testing
L   software testingL   software testing
L software testing
Fáber D. Giraldo
 
chapter 7.ppt
chapter 7.pptchapter 7.ppt
chapter 7.ppt
TesfahunAsmare1
 
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
TechWell
 
Software testing for project report .pdf
Software testing for project report .pdfSoftware testing for project report .pdf
Software testing for project report .pdf
Kamal Acharya
 
System testing
System testingSystem testing
System testing
Sifat Hossain
 
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
DiUS
 
Fundamentals of Testing Section 1/6
Fundamentals of Testing   Section 1/6Fundamentals of Testing   Section 1/6
Fundamentals of Testing Section 1/6
International Personal Finance Plc
 
UNIT 1.pptx
UNIT 1.pptxUNIT 1.pptx
UNIT 1.pptx
GNANAJESLINJ
 
An introduction to Software Testing and Test Management
An introduction to Software Testing and Test ManagementAn introduction to Software Testing and Test Management
An introduction to Software Testing and Test Management
Anuraj S.L
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
Dennis Popov
 
Fundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptxFundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptx
MusaBashir9
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
Webtech Learning
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
Jean-François Nguyen
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
ShudipPal
 
01. foundamentals of testing
01. foundamentals of testing01. foundamentals of testing
01. foundamentals of testing
Tricia Karina
 
SQA_Class
SQA_ClassSQA_Class
Software Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentSoftware Defects and SW Reliability Assessment
Software Defects and SW Reliability Assessment
Kristine Hejna
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
ShudipPal
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
acemindia
 
Quality Assurance and Testing services
Quality Assurance and Testing servicesQuality Assurance and Testing services
Quality Assurance and Testing services
Boston Technology Corporation
 

Similar to Design testabilty (20)

L software testing
L   software testingL   software testing
L software testing
 
chapter 7.ppt
chapter 7.pptchapter 7.ppt
chapter 7.ppt
 
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
 
Software testing for project report .pdf
Software testing for project report .pdfSoftware testing for project report .pdf
Software testing for project report .pdf
 
System testing
System testingSystem testing
System testing
 
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
 
Fundamentals of Testing Section 1/6
Fundamentals of Testing   Section 1/6Fundamentals of Testing   Section 1/6
Fundamentals of Testing Section 1/6
 
UNIT 1.pptx
UNIT 1.pptxUNIT 1.pptx
UNIT 1.pptx
 
An introduction to Software Testing and Test Management
An introduction to Software Testing and Test ManagementAn introduction to Software Testing and Test Management
An introduction to Software Testing and Test Management
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
 
Fundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptxFundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptx
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
01. foundamentals of testing
01. foundamentals of testing01. foundamentals of testing
01. foundamentals of testing
 
SQA_Class
SQA_ClassSQA_Class
SQA_Class
 
Software Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentSoftware Defects and SW Reliability Assessment
Software Defects and SW Reliability Assessment
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Quality Assurance and Testing services
Quality Assurance and Testing servicesQuality Assurance and Testing services
Quality Assurance and Testing services
 

Recently uploaded

QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
FilipTomaszewski5
 
Cyber Recovery Wargame
Cyber Recovery WargameCyber Recovery Wargame
Cyber Recovery Wargame
Databarracks
 
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to SuccessMongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
ScyllaDB
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
Mydbops
 
CTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database MigrationCTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database Migration
ScyllaDB
 
Radically Outperforming DynamoDB @ Digital Turbine with SADA and Google Cloud
Radically Outperforming DynamoDB @ Digital Turbine with SADA and Google CloudRadically Outperforming DynamoDB @ Digital Turbine with SADA and Google Cloud
Radically Outperforming DynamoDB @ Digital Turbine with SADA and Google Cloud
ScyllaDB
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
ScyllaDB
 
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDBScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
dipikamodels1
 
Discover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched ContentDiscover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched Content
ScyllaDB
 
Day 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data ManipulationDay 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data Manipulation
UiPathCommunity
 
An Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise IntegrationAn Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise Integration
Safe Software
 
An All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS MarketAn All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS Market
ScyllaDB
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
Multivendor cloud production with VSF TR-11 - there and back again
Multivendor cloud production with VSF TR-11 - there and back againMultivendor cloud production with VSF TR-11 - there and back again
Multivendor cloud production with VSF TR-11 - there and back again
Kieran Kunhya
 
So You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental DowntimeSo You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental Downtime
ScyllaDB
 

Recently uploaded (20)

QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
 
Cyber Recovery Wargame
Cyber Recovery WargameCyber Recovery Wargame
Cyber Recovery Wargame
 
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to SuccessMongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
 
CTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database MigrationCTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database Migration
 
Radically Outperforming DynamoDB @ Digital Turbine with SADA and Google Cloud
Radically Outperforming DynamoDB @ Digital Turbine with SADA and Google CloudRadically Outperforming DynamoDB @ Digital Turbine with SADA and Google Cloud
Radically Outperforming DynamoDB @ Digital Turbine with SADA and Google Cloud
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
 
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDBScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
 
Discover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched ContentDiscover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched Content
 
Day 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data ManipulationDay 4 - Excel Automation and Data Manipulation
Day 4 - Excel Automation and Data Manipulation
 
An Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise IntegrationAn Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise Integration
 
An All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS MarketAn All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS Market
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
Multivendor cloud production with VSF TR-11 - there and back again
Multivendor cloud production with VSF TR-11 - there and back againMultivendor cloud production with VSF TR-11 - there and back again
Multivendor cloud production with VSF TR-11 - there and back again
 
So You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental DowntimeSo You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental Downtime
 

Design testabilty

  • 1. Testability An Underrated Factor In Long Term Success By Richard Neeve <Date removed to protect client identity>
  • 2. Reference material This presentation is predominantly a summary of the ideas presented in Bret Pettichord’s paper entitled “Design for Testability”. This can be found here.
  • 3. Outline • Background. • What is testability? • Why is it important? • How can it be achieved? • What are the risks? • What are the people/organisational issues? • Conclusions.
  • 5. Why now? • The <removed> department has recently been shifting its focus to newThe <removed> department has recently been shifting its focus to new products.products. • A chance to reflect on where the problems of testing <product names>A chance to reflect on where the problems of testing <product names> started.started. • Biggest causal factor was the failure to properly design testability intoBiggest causal factor was the failure to properly design testability into the solutions from the outset.the solutions from the outset. • This inhibited manual testing and the scheduling of automation work.This inhibited manual testing and the scheduling of automation work. • Consequently we incurred large (and recurring) effort costs which thenConsequently we incurred large (and recurring) effort costs which then gave rise to significant opportunity costs.gave rise to significant opportunity costs. • Looking ahead, it’s hard to see how placing so little emphasis onLooking ahead, it’s hard to see how placing so little emphasis on testability is compatible with sustaining an Agile approach.testability is compatible with sustaining an Agile approach. • The testability of new products needs to be addressed now whilst theirThe testability of new products needs to be addressed now whilst their designs are still open. The longer we leave it the harder it will be.designs are still open. The longer we leave it the harder it will be.
  • 6. I am aiming to • Help create a better appreciation for the topic. • Stimulate some discussion. • Promote the importance of testability in automation and agility. • Get testability on (or higher up) the agenda. • Contribute to the avoidance of previous mistakes (e.g. <product name>).
  • 7. I am not aiming to • Address the testability of documentation (e.g. requirements). This talk is about software testability. • Try and tell people where testability should be positioned in their overall list of design priorities. • Try to convince people to retro-fit testability into products for which the die is cast. If there are easy wins for mature products that’s great but my focus is on improving the situation for new products.
  • 9. Part of a long wish list • Maintainability • Scalability • Extensibility • Flexibility • Correctness • Efficiency • Security • Reliability • Reusability • Portability • Testability • Usability • Accuracy • Consistency • Robustness _____________________________ • All wholesome aims and there are undoubtedly others. • This list is both long and nested >>> • Commonality • Auditability • Modularity • Interoperability • Integrity • Completeness • Conciseness
  • 10. Zoom in on ‘Testability’ and you get... Controllability The better we can control it, the more testing can be automated. Availability To test it, we have to get at it. Simplicity The simpler it is, the less there is to test. Stability The fewer the changes, the fewer the disruptions to testing. Observability What you see is what can be tested. Understandabilit y The more information we have, the smarter we can test. Operability The better it works, the more efficiently it can be tested. Decomposability By controlling the scope of testing, we can isolate problems efficiently and perform smarter retesting. • Often referred to as ‘The Heuristics of Software Testability’. • Again we can go a level deeper. Let’s look at observability. …another wish list:
  • 11. Observability “What you see is what can be tested” • Past system states and variables are visible or queriable. • Distinct output is generated for each input. • System states and variables are visible or queriable during execution. • All factors affecting the output are visible. • Incorrect output is easily identified. • Internal errors are automatically detected and reported through self- testing mechanisms. ___________________________ • Perhaps you have other things you would add. • We could have similarly expanded any one of the items in the previous table [NB: this type of material is available via Google].
  • 12. Seeing the wood from the trees These lists are useful because: • It’s important to remember that testability competes with other design aims for consideration. • They offer a feel for the breadth of the issues (limits complacency). • Everything in these lists is a potentially valid consideration. But… • There is a danger of paralysis through the lack of a clear focus. • Looking at the core essence of testability is a good starting point.
  • 13. The crux of the matter • Ultimately it’s all about control and visibility: Control Can we repeatedly and deterministically place the software in its various known states through the application of pre- determined inputs and other stimuli? Visibility Can all relevant data pertaining to internal state, inputs, outputs, resource usage etc be obtained in the course of executing a test? • Sort these out and you’re well on the way. • Remember testability is a design issue so it needs to be addressed whilst the design is still open for discussion.
  • 14. Why is testability so important?
  • 15. • Can help to detect faults that don’t trigger an observable failure. • Can improve the efficiency of manual test execution, thereby aiding early defect detection. • Can significantly expedite fault investigation and fix verification. • Can increase the chances of getting automation and benchmarking off the ground by improving readiness and therefore ease of scheduling. • Critical to the ongoing productivity of any automation and benchmarking. ___________________________ • All of which contribute directly, substantially and continually towards a product’s agility and viability throughout its life time. • This is the basis of testability’s importance in long term success.
  • 16. How is testability achieved?
  • 17. Testability Aids (1) • Testable documentation (e.g. requirements) – Plenty to say. – But not today because: • Battle selection is very important in testing. • I promised not to at the start of this talk. • Scriptable installations/uninstallations – Can speed up environment setup (often a big and resented cost). – Needed to reset the environment in an un-attended test run. • Support for different versions to co-exist on the same machine – Things like avoiding resource collisions (e.g. configurable ports). – Aids comparisons made for regression analyses. – Helps us to maximise our CAPEX.
  • 18. Testability Aids (2) • Diagnostics – Provide a view on the code’s internal workings. – Expose defects that are not externally visible (e.g. corrupt data structures). – Types: Monitors, Assertions, Probes. – If in doubt, err on the side of verbosity (adjustable verbosity is very helpful). – Developers shouldn’t underestimate a tester’s ability/interest in using these. • Fault injection hooks – Particularly important for testing error-handling code. – Useful for efficiently re-creating faults that are difficult/inconvenient/impossible to re-create at will and in a repeatable way (e.g. loss of network connectivity). – Tools like ‘Holodeck’ allow the simulation of conditions like resource starvation. See here for more details. • Test points – Allow data/state to be changed/examined in a system thereby facilitating both diagnostic monitoring and state manipulation.
  • 19. Some points to consider • Driving automated tests through programmatic test interfaces is typically (but not always) more productive than going via a GUI. • If you’re going to rely on custom testability aids, you must ensure the absolute correctness of their implementation. • It’s often easier to build test support directly into code upfront rather than trying to erect non-intrusive ‘test scaffolding’ later. • Over time, external test support code can sometimes be merged into the core product but the associated code churn presents risks. • Need to decide whether/how you’re going to mitigate the risks associated with testability aids (see next section). • Need to give careful thought to whether/how you will provide customers with knowledge about any test interfaces.
  • 20. What are the associated risks?
  • 21. From the frying pan to the fire? • Testability can play a pivotal role in mitigating technical and project risks. • But it brings some risks of its own. • Sometimes these are cited as a stalling tactic. • The risks are real, but are usually manageable. • They are often (but not always) seen to be more palatable than the risks associated with not progressing a testability strategy. • So what are these risks and are we just swapping one set of problems for another?
  • 22. Security risks • Testability features can provide back door access for hackers. • Of particular concern to a company like <removed>. • Potential mitigative measures include: – Analysing the scope for exploitation and making adjustments. – Removing test interfaces and hooks from production code. • Creates a secondary risk because what you’ve tested and what you’ve released will be different. – Using encryption keys to lock testability features. – Trying to keep testability features secret and hoping they don’t get discovered!
  • 23. Privacy risks • Some logs may contain sensitive information. • If possible, the customer should approve the log content. • Could ‘cleanse’ logs prior to release.
  • 24. Performance risks • Assertions and heavy instrumentation can ultimately impact performance. • Need to understand whether any impact is material. • Profiling can help to objectively quantify a suspected impact. • Having configurable levels of instrumentation is a help. • Could strip out the instrumentation prior to release.
  • 25. Test veracity risks • Paradoxically, testability aids can be seen to undermine testing. • Purists argue that test legitimacy is compromised by injecting artificial mechanisms into the code and then using them to drive the system, often as a substitute for a human user (especially if those mechanisms are then removed just prior to release). • Pragmatists argue that the need to alter the product to facilitate efficient testing is almost inevitable and that wise testers will accept this and manage it rather than act as though it can be eliminated. • Level of risk depends on: – How functionally/anatomically intrusive your testability aids are. – The extent to which you rely upon them to make judgments. • I used to be a purist but now I’m a pragmatist.
  • 26. Maximising test veracity • It’s important to have a sharply defined boundary between the logic layer and the presentation layer by which it’s invoked. • Confidence comes from knowing that any test interfaces call the same internal interfaces as the presentation layer itself. • Avoid 11th hour removal of testability aids from code. • Manual tests should supplement automated tests (more later).
  • 27. Further Risks • Adding/maintaining/removing testability features causes code churn. • Customers may not like the idea (or like it too much and abuse the features provided). • May encourage an over-reliance on test automation.
  • 28. Swapping one set of problems for another? • To a degree, yes. • The effort/risk/reward ratio and its acceptability is circumstantial. • But the benefits are often very compelling so it warrants consideration.
  • 30. The role of manual testing • This is not about eliminating manual testing through automation. • Even with the best possible testability and automation, manual black-box testing is still needed because automated tests: – Typically fail to drive the system in a manner that exactly replicates that of a human user. – Cannot provide a substitute for the intuition, critical thinking and spontaneous inspiration enjoyed by a human tester. • In other words “test automation does not provide automatic manual testing”. This is often not appreciated.
  • 31. Key knowledge requirements • Some testers may have always treated the code as a black box. • To confidently engage in discussions on testability, a tester needs to understand aspects such as: – The system design and the geography of the implementing code. – What interfaces are already available. – Where testing hooks might be placed (for fault injection and monitoring). • Without this perspective a tester won’t be effective in the role of testability consultant so: – Developers need to be ready to provide the required teaching and read access to the code repository. – Testers need to be very specific about what they want.
  • 32. Team dynamics Need this To get this Good dev/test relationship. Co-operation in adding/maintaining testability aids and sharing knowledge of the code. Strong team-wide commitment to enduring success. Acknowledgement of how important testability is. Testers to drive the discussions from the earliest possible stage. Early identification of the testability issues whilst the design is still open. • Same needs as those for automation (unsurprisingly). • Testers should collaborate and trust, but verify.
  • 33. Some common inhibitors • Some test teams are very inflexible on the veracity issue. • Testers often fail to raise the subject or convey their needs (even if support might be trivial to implement). • Some test managers feel that the test report’s audience won’t understand/accept any qualifications in the results in cases were test veracity has been diluted in the interests of testability. • Co-operation from development teams varies enormously. • There is often a reluctance to incur what are probably new costs e.g. testing testability features. • Some development teams create testability aids but then don’t tell the testers (worst case scenario).
  • 35. • Testability can play a key role in achieving long term success. • As with defect detection, earlier => easier => cheaper. • It’s technically straightforward, but is typically overlooked, often at great cost (e.g. <product name>). • Seems like a big missed opportunity that we should consider taking in respect of new products. • Many of the issues are non-technical and we need to overcome those. • It won’t be easy but if we don’t address testability properly, our long term agility is at risk.
  • 36. Follow-up • I would like to hear other ideas and opinions. • I’m particularly interested in relevant <company name> anecdotes: – Painful examples of where testability is lacking. – Examples of where testability has been improved with noticeable results. – Examples of automation solutions that have been built upon existing testability features. – Examples of where testability strategies have failed. – Etc.
  • 37. Thanks for listening. Any questions or comments?
  翻译: