DEFINING TEST COMPETENCE
What is test competence, and what
competence does a tester need?
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
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
…
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
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
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
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
What types of Test Problems require Test
Competence?
Anyone
Someone with
System
Competence
Someone with
Test
Competence
Someone?
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
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
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?
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
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
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
References
[1] How do you spell testing?
http://www.satisfice.com/articles/sfdpo.shtml
[2] Cynefin
https://en.wikipedia.org/wiki/Cynefin

Defining Test Competence

  • 1.
    DEFINING TEST COMPETENCE Whatis test competence, and what competence does a tester need?
  • 2.
    Introduction – Thispresentation • 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 • Asoftware 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 nothingof 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 ofTest Problems require Test Competence? Anyone Someone with System Competence Someone with Test Competence Someone?
  • 9.
    So what isTest 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 ComplexSystem 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 ina 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 Systemto 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 Toolboxof 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 testerneeds 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 doyou spell testing? http://www.satisfice.com/articles/sfdpo.shtml [2] Cynefin https://en.wikipedia.org/wiki/Cynefin

Editor's Notes

  • #9 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.