CoCo logo

from CDT principles to practice
a model

Joep Schuurkes
@j19sch
Mendix logo

the 7 principles of context-driven testing

  1. The value of any practice depends on its context.
  2. There are good practices in context, but there are no best practices.
  3. People, working together, are the most important part of any project’s context.
  4. Projects unfold over time in ways that are often not predictable.
  5. The product is a solution. If the problem isn’t solved, the product doesn’t work.
  6. Good software testing is a challenging intellectual process.
  7. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.

testing is

an information problem

a people problem

information

process

tools

value

information

process

tools

from tools to value

or

from value to tools?

and what about people?

the model

Value-Information-Process-Tools-People

the 7 principles of context-driven testing

  1. The value of any practice depends on its context.
  2. There are good practices in context, but there are no best practices.
  3. People, working together, are the most important part of any project’s context.
  4. Projects unfold over time in ways that are often not predictable.
  5. The product is a solution. If the problem isn’t solved, the product doesn’t work.
  6. Good software testing is a challenging intellectual process.
  7. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.

thank you!

j19sch.github.io
testingcurve.wordpress.com
@j19sch

main points of this talk

  • distinguish tools, from process, from information
  • without value nothing really matters
  • work from value to tools
  • people are inherently of value
  • find your own way to express CDT

The danger with codifying method as tools is that by ignoring context it obviates the requirement to understand the problem.
- John Seddon

testing is a wicked problem

  • The problem is not understood until after the solution is found.
  • Wicked problems have no stopping rule.
  • Solutions to wicked problems are not right/wrong, but better/worse.
  • Problems and symptopms are hard to separate - every problem is a symptom.
  • Every wicked problem is essentially novel and unique.
  • There is no exhaustively describale set of solutions or permissible operations.

source: James Lynsday

meta-source: Horst Rittel, Melvin Webber - Dilemmas in a General Theory of Planning (1973)

source of meta-source: Joris Meerts, @testingref

main philospical influences on this talk

  • Hume: empiricism
  • Schopenhauer: world as representation
  • Levinas: ethics before ontology
  • Kant: never treat others as mere means
  • Kant: Enlightenment is man's emergence from his self-imposed nonage.

The world is my representation": this is a truth valid with reference to every living and knowing being, although man alone can bring it into reflective, abstract consciousness. If he really does so, philosophical discernment has dawned on him. It then becomes clear and certain to him that he does not know a sun and an earth, but only an eye that sees a sun, a hand that feels an earth; that the world around him is there only as representation, in other words, only in reference to another thing, namely that which represents, and this is himself.

The world as will and representation - Arthur Schopenhauer

Enlightenment is man's emergence from his self-imposed nonage. Nonage is the inability to use one's own understanding without another's guidance. This nonage is self-imposed if its cause lies not in lack of understanding but in indecision and lack of courage to use one's own mind without another's guidance. Dare to know! (Sapere aude.) "Have the courage to use your own understanding," is therefore the motto of the enlightenment.

What is Enlightenment? - Immanuel Kant

Computers and their software are two things. As collections of interacting cogs they must be ‘checked’ to make sure there are no missing teeth and the wheels spin together nicely. Machines are also ‘social prostheses’, fitting into social life where a human once fitted. It is a characteristic of medical prostheses, like replacement hearts, that they do not do exactly the same job as the thing they replace; the surrounding body compensates.

Contemporary computers cannot do just the same thing as humans because they do not fit into society as humans do, so the surrounding society must compensate for the way the computer fails to reproduce what it replaces. This means that a complex judgment is needed to test whether software fits well enough for the surrounding humans to happily ‘repair’ the differences between humans and machines. This is much more than a matter of deciding whether the cogs spin right.

Harry Collins - http://www.developsense.com/blog/2014/03/harry-collins-motive-for-distinctions/