2. Introduction – This presentation
• What is test competence?
• What competence does a tester need?
• What competence is it that makes a tester uniquely
suitable to tackle complex testing problems?
• In this presentation I will try to give my view on these
questions – this is my personal definition in my context
3. Tester Competence
• A software tester needs a wide array of skills and
competences to different degrees
Communication
Skills
Collaboration Skills
Agile Mindset
Understanding
Business Value
Quick Learner
Critical Thinker
System Modeling
Coaching Skills
Understand and
Writing Code
Writing Reports
Usability
Review Skills
Active Listener
Feedback
Champion
Risk Analysis
…
4. Tester Competence
But nothing of that is unique to a tester – these are skills
that are valuable to a number of different roles
This is competence a tester needs, but it is not test
competence
5. Test Competence – What it is not
• So let us dig deeper and try to find out what is at the core
of Test Competence
• Modeling a system, or doing risk analysis on a system
and connecting this to business value is very important
and valuable – but this is something a system architect
could probably do better than a tester
• Writing test cases from detailed requirements is an
important skill, interpreting text into test cases, but is more
administration than anything else
6. Test Competence – What it is not
• Writing test reports, and knowing what information is
important to different stakeholders is definitely critical to a
tester, but does not actually require any test competence
• Running scripted tests exactly according to specifications
only requires reading comprehension and fine motor
skills, not much else
• Calibrating tools required for running specific tests is more
tool competence than test competence
7. Test Competence – What it is not
• Communicating with developers and other stakeholders is
a key competence, but a technical salesman would
probably do it better
• Writing a test plan based on test competence, business
value, and other skills – writing the plan in itself is an
administrative task, but the knowledge behind the plan is
partly test competence
8. What types of Test Problems require Test
Competence?
Anyone
Someone with
System
Competence
Someone with
Test
Competence
Someone?
9. So what is Test Competence?
Exploring a Complex System through Tests
Modeling Unpredictability in a Complex System
Provoking a System to reach an Unpredictable Outcome
What does this actually mean?
Having a Toolbox of Unpredictable Behaviors
10. Exploring a Complex System through Tests
• Starting out with a system model created by the system
developers, for any complex systems you will always find
unpredicted behaviors
• Identifying these unpredicted behaviors and using them
as a starting point to find more unpredicted behaviors is a
critical part of the testing skill set
• Probe – Sense – Respond
11. Modeling Unpredictability in a Complex System
• But how does a tester find the unpredictability in the first
place?
• By looking at the system model, thinking about how the
system works, and applying an unpredictable behavior
• What if I do not get the expected parameter for this action?
• What if this action takes longer than intended?
• What if there are intermittent problems with this action that only
shows up once every thousand times?
• What if the user does not understand which button to press?
12. Provoking a System to reach an Unpredictable
Outcome
• But thoughts alone are not enough …
• A good tester will also come up with and execute a way to
provoke the system to reaching a possible unpredicted
outcome
• Sometimes the system will then act in an unpredicted
way, and many times it will work according to the original
system model
• Example: If you have a thought about intermittent
problems, maybe you provoke that unpredictable outcome
by running some long term duration tests
13. Having a Toolbox of Unpredictable Behaviors
• To be able to apply unpredictable behaviors to a system a
tester needs to come up with these unpredictable
behaviors
• One way is to have experiences from previous testing
problems
• One way is to use heuristics to help you come up with
unpredictable behaviors
• SFDPO[1] is one example of a heuristic
14. Conclusion
• A tester needs many different skills, to different degrees,
to be effective, not just test competence
• Test Competence is related to complexity
• Exploring a Complex System through Tests
• Modeling Unpredictability in a Complex System
• Provoking a System to reach an Unpredictable Outcome
• Having a Toolbox of Unpredictable Behaviors
• By knowing this we can better utilize the tester’s unique
competence in our development teams
15. References
[1] How do you spell testing?
http://www.satisfice.com/articles/sfdpo.shtml
[2] Cynefin
https://en.wikipedia.org/wiki/Cynefin
Editor's Notes
Using the Cynefin (Kih-neh-vihn) framework [2]
Simple tests can be done by anyone (unless you want to automate it, in which case you need to know how to do that obviously)
Sense – Categorize – Respond
Simple = easily knowable.
Complicated tests are well suited for someone with a good understanding of the system
Sense – Analyze – Respond
Complicated = not simple, but still knowable.
Complex tests are well suited for someone with a good testing skillset and a good understanding of the system
Probe – Sense – Respond
Complex = not fully knowable, but reasonably predictable.
Chaotic tests are … difficult?
Act – Sense – Respond
Chaotic = neither knowable nor predictable.