Past Presentations
You can find an extensive list of presentations and courses that I've taught, including the slides and speaker notes for many of them, here.
Let's meet!
Highlights from my schedule appear below. If you notice that I'm in your part of the world, drop me a line if you'd like to get together. If you'd like to engage my services and worry that I'm not available, please note that my clients' schedules are subject to change, so mine is too. Please drop me a line in any case.
January 3-6, 2012
Calgary, Alberta, Canada
Rapid Software Testing class (three days) with an extra free day for which the client chooses the agenda.
January 9-10, 2012
Toronto, Ontario, Canada
Rapid Testing training and consulting in Rapid Testing with a corporate client.
January 16-18, 2012
Helsinki, Finland
Rapid Software Testing: a three-day public class, organized by Altom. Information is here; registration here.
January 27-29, 2012
Melbourne, Florida
Workshop on Teaching Software Testing
January 30-February 3, 2012
Palm Bay, Florida
Writing work with Cem Kaner and Becky Fiedler.
February 13-17, 2012
Orcas Island, Washington
In-person development work on the Rapid Software Testing class with James Bach.
March 8-14, 2012
Utrecht, Netherlands
Pencilled-in engagement teaching Rapid and exploratory approaches with a corporate client.
March 15-16, 2012
Munich, Germany
Two days of presentation and particpation in an in-house testing conference for a corporate client.
March 26, 2012
Halifax, Nova Scotia, Canada
A three-day Rapid Testing class, with a free fourth day based on the client's agenda.
April 10-12, 2012
Oslo, Norway
A public offering of Rapid Software Testing.
April 13, 2012
Oslo, Norway
Work for a corporate client.
April 16-19, 2012
Orlando, Florida
A tutorial and a keynote at the STAR East conference.
April 25
Toronto, Ontario, Canada
Corporate in-house training and consulting.
April 30-May 2, 2012
London, UK
Rapid Software Testing public class organized by Electromind.
May 3-4, 2012
London, UK
The UK's first public offering of Rapid Software Test Management, again organized by Electromind.
May 7, 2012
Stockholm, Sweden
I'll be presenting the first keynote and a half-day tutorial at the inaugural Let's Test Conference in Sweden. Alas, I'll only be able to stay the first day of the conference, which runs from May 7 through May 9, 2012.
May 8-11, 2012
Trondheiim & Brønnøysund, Norway
The Norwegian Testing Cruise. So far as we know, this will be the the first boat-based and northernmost testing conference in history.
May 21-23
Utrecht, The Netherlands
A public course Rapid Software Testing class in the Netherlands.
May 24-25
Utrecht, The Netherlands
A public class of Rapid Software Testing for Managers.
June 12-14
Cary, NC
Private training and consulting in Rapid Software Testing for a corporate client.
June 25-29, 2012
Atlanta, Georgia, USA
Private training and consulting in Rapid Software Testing for a corporate client.
July 10-12, 2012
Cary, NC
Private training and consulting in Rapid Software Testing for a corporate client.
July 16-18, 2012
San José, California, USA
Participating in the CAST conference.
September 10-12, 2012
London, UK
A public class of Rapid Software Testing, organized by ElectroMind.
I think I read about transpection on James' blog sometime in the past. I've found it to be a very beneficial activity.
I wanted to chime in to see if you consider this to be a "check" or not. The last rule throws up a red flag for me, because it seems that sapience is required for some checks, but I'm sure you and James already worked that out.
Scenario: I'm reviewing test cases designed by testers. I observe that they are not specifically going to stress the system. I have a decision rule in place "If testing occurs on a piece of software then check for stress testing opportunities." It doesn't seem to me that a non-sapient entity could even make the observation, because it requires the parsing of english sentences or models or napkins. The tester could choose to communicate this information in so many different ways, so I think a human should do this checking (checking for some basic levels of coverage) using tools like SFDPOT while also doing a qualitative analysis of the test coverage.
Are the things that I sometimes "check" for not really checks in your opinion or do you think that it is possible to make those observations without sapience?
-Joe Harter
I wouldn't say "based on" a decision rule, but rather "linked to" as in "If I see X, do Y."
Asserts in jUnit are a perfect example of an observation (result of function call) connected to a decision rule (if fail then…)
@joe: Yes. The design of a check is a testing activity; it requires sapience. The performance or execution of a check doesn't require sapience (by definition; if it did, it would be testing). Evaluating the result of a check is non-sapient, but ascribing meaning or significance to it, interpreting the result is again sapient, so an activity of testing. The distinction is based on this: could a machine make the decision after I had programmed it to do so? If Yes, it's a check; if No, it's a test. Another aspect: does it involve a value judgement, or is it a one-bit decision?
A check results in "pass" or "fail"; that can be a non-sapient decision. It requires a human to decide "Is this a big deal?" "Is the check, rather than the product, broken?" "Should we change the product or drop this check?" "Even though this check reports 'fail', can we still ship?" "Should we be doing any more checks or tests, or do we already know enough?"
One more thing, though. I don't want to enforce orthodoxy on speech; that way lies the ISTQB and the SWEBOK and all that. In casual conversation, it makes little difference what word you use. It's when you want to think critically about what you're up to that the distinction (and not the label) matters. "I want to check to make sure that these are good tests," is a fine thing to say, even if what you're doing is really very testerly, and far more than checkish.
@james: Yes, "linked to" is better. I've changed it above. The links are powerful enough that I'd contend that the observation is motivated by, even dominated by the decision rule. And that jUnit example is paradigmatic.
—Michael B.
This sounds a lot like Satsang to me – I'm surprised that no indian tester has pointed this out.
Wiki has an interesting definition of what Satsang is which seems to describe in slightly different words what you are doing. Replace "indian philosophy" with "software testing" and "guru" with "expert" and you're there.
Interesting discussion, just wanted to highlight this as it was an eyeopened when I spoke to my wife (a yoga teacher) about Satsang today.
[...] http://www.developsense.com/blog/2009/09/transpection-and-three-elements-of/ [...]
[...] check, as James Bach and Michael Bolton defined, is characterized by 3 attributes. A check, then, has three attributes: 1) It requires an [...]
[...] The problem with your approach to “Is there a Problem here?” is that you are discussing it only partially. At first look, I confess, it looks pretty convincing. But the moment one starts thinking that one would have to answer this question, the difference fades away. Michael: “I think Rahul’s notion that a test must pass or fail is confused with the idea that a test should involve the application of a stopping heuristic. For a check, “pass or fail” is essential, since a check relies on the non-sapient application of a decision rule.” [...]
[...] Often when programmers are asked if they test, they hopefully say they do. But when asked about the type of testing carried out, it is mostly about writing and running automated unit or integration tests as they call it. Considering the discussions in the linked blog posts, these would really be checks. This is how Michael defines a check in the comments of Aarons post (original post): [...]
[...] of interesting stuff on it (see James Bach’s post here, some Michael Bolton posts here and here, and Stephen J. Hill’s post here), so we asked Michael Bolton if he would be willing to give [...]
[...] testing and checking [1]. He has since then elaborated more in the area and digged deeper into it [2], and continue to do so [3]. By clarifying what we are doing at a certain time it makes it easier [...]