Archive for August, 2007
Tuesday, August 28th, 2007
Over and over, I’ve said that testing is better on many levels when it’s investigative, rather than merely confirmatory. Today I was browsing the Web. A question that someone had asked me about SwissAir led me to Wikipedia; from there I jumped to the article on Air Canada. I’m also a fan of Stan Rogers’ music, and so I looked into the incident in which he died–a fire that started in mid-air, and led to the deaths of 23 people on the ground in Cincinnati. Wikipedia claimed that the fire was triggered by an electrical short-circuit in the lavatory. I hadn’t heard that explanation; my understanding was that the fire was caused by a burning cigarette in the lavatory garbage can. (My belief was strengthened by the fact that onboard smoking bans came into force not long after the investigation into the fire.) Further research seems to confirm that an electrical problem was indeed the trigger–the direct cause of the fire. Other factors made it worse: “the delay before the crew detected and responded to the fire, the ineffective use of the fire extinguishers, the toxicity of the seat covers, and the difficulties encountered in evacuation.”
But then I read something that I found even more interesting: “Accident investigators tend to take an expansive approach when determining the ’cause’ of an accident. Aware that regulations are influenced by accident reports, investigators often seek to effect the greatest possible change. “It’s better if you don’t find the exact cause because then only one thing will get fixed,” according to an NTSB investigator. Instead, for every serious accident the NTSB recommends a laundry list of changes in FAA regulations.” (That’s at http://content.cdlib.org/xtf/view?docId=ft8f59p27j&chunk.id=d0e2155&toc.depth=1&toc.id=d0e2100&brand=eschol ).
So the idea that our tests should pinpoint the problem is better seen as a heuristic–an approach that is often the right one, but that might be the wrong one for some purpose. It might be better not to pinpoint one problem if it means that we fix a few of them instead.
Posted in Uncategorized | 2 Comments »
Wednesday, August 8th, 2007
A correspondent on the Agile Testing mailing list asked recently
Shall automated acceptance tests use the GUI the app provides?
My reply sat in my drafts folder for a while, and I just found it. Too late for the conversation, really, so I’ll post it here.
My thought, as usual, is that automated acceptance tests should or should not use the GUI depending on
- the questions you want to ask and answer;
- the business domain that you’re working in, and therefore the kind and magnitude of the risk you want to address;
- the skill of your toolsmith (or the extent to which she can leverage the skills of others);
- the capabilities of your automation tools;
- the extent to which you wish to model real users and observe what they observe;
- the extent to which you want to deliver yourself automatically to a point where you can begin human-driven testing;
- the extent to which tests have already been created for lower levels;
- the extent to which you’re willing to value speed, precision, and volume over human observation and cognition;
- the extent to which you can vary the data that you’re using–either systematically, pseudo-randomly, or randomly–in a productive way;
- the extent to which you can create or use oracles that will allow the tool to help you recognize problems;
- the extent to which you want to act in a confirmatory, rather than an investigative mode; (and therefore)
- the extent to which you’re willing to be vulnerable to confirmation bias; and
- the extent to which you’re can defend against automation bias.
In my observation and experience, the cost of automating a test increases and the value decreases–generally–the closer to the GUI you get. Automated tests at the unit level tend to be easily to comprehend, simple to automate, subject to falsifiable assertions, and immediately responsive to developers. Automated tests at the GUI level tend to be inadequate for recognizing problems that humans will spot easily, complex to program, much less clearly decidable, and harder to troubleshoot and debug, thus less immediately responsive to developers. There are bound to be exceptions.
You might get different answers, making better use of your tools and the people who use and program them, if you think of test automation in James Bach’s definition as “any use of tools to support testing”.
Posted in Uncategorized | No Comments »
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.