Creating in House Testing Course
Creating in House Testing Course
Tutorial at the
Conference of the
Association for Software Testing
June 5, 2006
Copyright (c) Cem Kaner 2006. This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/ or send a letter to Creative Commons, 559 Nathan
Abbott Way, Stanford, California 94305, USA.
These notes are partially based on research that was supported by NSF Grant EIA-0113539 ITR/SY+PE: "Improving the
Education of Software Testers." Any opinions, findings and conclusions or recommendations expressed in this material are
those of the author and do not necessarily reflect the views of the National Science Foundation.
Source Materials on the Disk
• Video lectures
• Activities
• Assignments
• Sample exam questions
• Some readings
• A little additional instructional support material
• James Bach, Scott Barber, Tim Coulter and I are creating a site
like this at www.satisfice.com (“Satisfice University”) that will
host supervised courses. (Some will cost money, others will be
free.)
• I have a closed moodle site at Florida Tech but expect to open a
public one in mid-summer.
• Both of these will provide access to reusable content.
Today’s Key Assertions
1. Testing is evolving slowly because there is so little educational
support for it.
2. University support will continue to be inadequate for the
foreseeable future. Companies will therefore have to develop
their own training strategies.
3. Commercial short courses are often ineffective because they
– try to cover too much,
– at too shallow a level,
– without application to the learner’s specific situation,
– with too little opportunity for practice,
– and less opportunity for assessment and feedback.
• You can develop a suitable training program that integrates into
your work environment at a low net cost.
• The full curriculum might be broader than you first suspect.
Meet & Greet
• Who are you?
• What are the most important three things we should
know about your background?
• Why are you here?
• What do you hope to leave with?
Initial task: Connect to Moodle
• Your card has your user ID and password
• Router is bedbug
• Encryption is WEP:
603a96b7e7
• Please update your profile by personalizing it in some
way.
• This task is complete when you have:
– Updated your profile
programming?
technical support?
technical training?
project management?
– Why do you think this is?
• Conclusion:
• You want a good tester?
– Plan A: Hire experienced staff who can demonstrate
relevant knowledge, skill and attitudes
– Plan B: Train your own staff
Software testing
is cognitively complex,
requires critical thinking,
effective communication, and
rapid self-directed learning.
Software testing is a
process of empirical,
technical investigation
of the product under
test conducted to
provide stakeholders
with quality-related
information.
http://www.testingeducation.org/BBST/BBST--IntroductiontoTestDesign.html
http://www.testingeducation.org/BBST/BBST--IntroductiontoTestDesign.html
Contexts Vary Across Projects
Testers must learn, for each new product:
– What are the goals and quality criteria for the project
– What skills and resources are available to the project
– What is in the product
– How it could fail
– What the consequences of potential failures could be
– Who might care about which consequence of what failure
– How to trigger a fault that generates the failure we're seeking
– How to recognize failure
– How to decide what result variables to pay attention to
– How to decide what other result variables to pay attention to in the event of
intermittent failure
– How to troubleshoot and simplify a failure, so as to better
(a) motivate a stakeholder who might advocate for a fix
(b) enable a fixer to identify and stomp the bug more quickly
– How to expose, and who to expose to, undelivered benefits, unsatisfied
implications, traps, and missed opportunities.
It's kind of like CSI
MANY tools, procedures,
sources of evidence.
• Tools and procedures don't define
an investigation or its goals.
• There is too much evidence to test,
tools are often expensive, so
investigators must exercise
judgment.
• The investigator must pick what to
study, and how, in order to reveal
the most needed information.
Commercial Teaching Style
• Primary communication style
was lecture
– Real-life examples
Motivating
Memorable
Illustrate applications
Illustrate complexity
• Lectures can be excellent for
conveying basic knowledge,
but they are weak for
developing higher order
cognitive skills
Example Problem: Domain Testing
• It was impractical in
commercial training
• Now, at last, we can
try it on university
students.
Padmanabhan's Thesis:
Practice on Domain Testing
• 15 classroom hours of lecture plus examples plus practice, practice,
practice. Lots of procedural instruction and drill
• Students mastered every procedure
• Final exam
– Applied what they knew to similar questions (near transfer)
Meta-
Cognitive
– Lecture slides
– Review quizzes
– Activities
– Make-up mid-terms
– Wikis
– Workshops