Painting like an engineer Skills in testing Alexandra
Heuristic! Heuristic! Heuristic! Heuristic! Heuristic! Heuristic!
The engineering method: Use heuristics…..to cause the best change....in a poorly understood situation....within the available resources
Where are the skills? The Knowledge Dimension The Cognitive Process Dimension RememberUnderstandApplyAnalyzeEvaluateCreate Facts Concepts Procedures Cognitive Strategies Models Skills Attitudes Metacognition
How do I recognize a skill?
the ability to do something that comes from training, experience, or practice
How do I recognize a skill? the ability, coming from one's knowledge, practice, aptitude, etc., to do something well
How do I recognize a skill? the learned ability to carry out a task with pre- determined results often within a given amount of time, energy, or both
How can I work on my skills? Cem Kaner : I think the best way for people to develop skills is to do something, get feedback on how to do it better, improve it (or do something similar), get feedback, and keep doing this with problems that are increasingly difficult or that apply the technique in new ways.
The necessary conditions for developing skills Predictability of outcomes Good feedback Attitude Motivation Deliberate practice Amount of experience
“Most judgments and most choices are made intuitively.” Maps of bounded rationality: Psychology for behavioral economics – Daniel Kahneman
Let’s apply all this…
A taxonomy of skills Signatures of the heuristic: 1. A heuristic does not guarantee a solution, 2. It may contradict other heuristics, 3. It reduces the search time for solving a problem, and 4. Its acceptance depends on the immediate context instead of an absolute standard
Some examples Working on new skills (repeatedly) Skills atrophy Overlooked skills Transferring skills to someone else
Working on new skills (repeatedly) 1
Let’s introduce some automation.. 1
Defocus from my current task Work in a timeboxed manner Use my curiosity Write code Read code Change how I do testing Change how testing is seen in the team Create valuable documentation 1
The ‘repeatedly’ part 1
Skills atrophy 2
On a previous project 2 Working with APIs Verifying validity output in the DB Monitoring http requests Verifying output in json files Testing social crawlers algorithms
On another previous project 2 Communicating a lot in writing Limited, timeboxed contact with the team Collaborate tightly with the business team Get mentoring from the test manager Make pair testing sessions with another tester
On the current project 2 Work closely with the development team Participating in root cause examination Communicate face-to-face with the team Help in discovering the business needs
Some skills I could have used 3
Logging invalid bugs 3
3
3 Re-evaluate the model Analyze existing data
Transferring skills 4
4 Be appreciative Give useful feedback Decide when to stop Learn from experiences Adapt my working style to the current situation
My personal testing skills categories Human-Human Interaction skills Risk controlling skills Rule of thumb skills Information visualization skills Attitude determining skills
asking questions (in a simple, non-offensive manner) have an empathetic approach be appreciative, considerate have the ability to explain my train of thoughts collect info effectively from team members offer my availability give useful feedback receive and incorporate useful feedback write effective bug reports Human-Human Interaction skills
think critically use counterfactual reasoning deal with uncertainty and incompleteness prioritize work in a timeboxed manner decide when to stop analyze existing data Risk controlling skills
focus defocus break a problem into multiple smaller problems have diverse view points stick with a consistent view point use curiosity fix variables and vary one at a time exercise stubbornness don't use stubbornness create disconfirmatory experiments question things which seem “given” Rule of thumb skills
describe coverage make maps of features under test create valuable documentation Information visualization skills
learn from experiences generate functionality flows analyze information recognize patterns read actively create models use models read and write code make logical connections change how testing is done and seen in the team collect relevant information from different sources handle complexity well evaluate the testing work self-assess my work adapt my working style to the team I am part of Attitude determining skills
testingskills.thesoftwaretestlab.org
Conclusions
It’s about skills interaction An overwhelming accumulation of interactions
Learn by doing
Skills are a procrustean bed
How did this help? The 3 questions that effective feedback answers: Where am I going? (What are the goals?) How am I going? (What progress is being made toward the goal?) Where to next? (What activities need to be undertaken to make better progress?)
Each with their own experience No “lecturing birds how to fly”
Nurturing skills Choose a few areas which I want to improve Learn the queues that lead to the mistakes I want to eliminate When I recognize such a situation, slow myself down And recognize when I need help
Nurturing skills “Peace comes with the realization that the world in which we live is an acquired taste - one we all, as artists, paint in our own chosen styles.”
Nurturing skills Share your painting with others
References Discussion of the method - Billy Vaughn Koen How to read a book – Mortimer J. Adler, Charles van Doren Maps of Bounded Rationality: Psychology for Behavioral Economics – Daniel Kahneman Conditions for intuitive expertise: a failure to disagree – D. Kahneman, G. Klein The BBST courses edX Thinking 101 course The power of feedback – John Hattie and Helen Timperley Illustrations: (slide 2) (slide 3) (slide 5) (slide 43) (slide 44) (slide 45) (slide 48)
@coveredincloth testingskills.thesoftwaretestlab.org