Rapid Software Testing
This course is currently not scheduled on the open calendar, but can be organized on request.Request Course
Do you want to learn how to do excellent testing, effectively and accountably, in situations in which you are faced with barely sufficient information and extreme time pressure? Do you want to get very good at software testing? If so, then Rapid Software Testing—a methodology and a course designed by James Bach and Michael Bolton—is for you.
In this course, you will learn how to focus on the mission and hit the ground running, tackling the testing of any product or product idea instantly. How to analyze, select, and use concise and effective heuristics, models, and practices for rapid test design. How to test expertly despite ambiguous, missing, or constantly changing specifications. How to deal with potentially overwhelming complexity or confusion; How to decide when to start, suspend, or stop testing—or how to continue while steering in a different direction. How to prepare and deliver credible test reports at any time.
Instructor-led workshop with practical exercices.
Rapid Software Testing is a three-day, hands-on class that teaches testing as a sophisticated thinking art. Rapid testing is a complete methodology designed for today’s testing, in which we’re dealing with complex products, constant change, and turbulent schedules. This class presents an approach to testing that begins with developing personal skills and extends to the ultimate mission of software testing: lighting the way of the project by evaluating the product. The approach is consistent with and a follow-on to many of the concepts and principles introduced in the book Lessons Learned in Software Testing: a Context-Driven Approach by Kaner, Bach, and Pettichord.
The philosophy presented in this class is not like traditional approaches to testing, which ignore the thinking part of testing and instead advocate never-ending paperwork. Products have become too complex for that, time is too short, and testers are too expensive. Rapid testing uses a cyclic approach and heuristic methods to constantly re-optimize testing to fit the needs of your clients. The Rapid approach isn't just testing with a speed or sense of urgency; it's mission-focused testing that eliminates unnecessary work, assures that everything necessary gets done, and constantly asks what testing can do to speed the project as a whole.
One important tool of rapid testing is the discipline of exploratory testing—essentially a testing martial art. Exploratory testing combines test design, test execution, test result interpretation, and learning into a seamless process that finds a lot of problems quickly. If you are an experienced tester, you'll find out how to articulate those intellectual processes of testing that you already practice intuitively. If you're a new tester, hands-on testing exercises help you gain critical experience.
About Michael Bolton
Since 1998, I have been providing training and consulting services in testing and quality to organizations in Canada, the United States, and around the world. Since 2006, I have been co-author (with James Bach) of Rapid Software Testing and Rapid Software Testing for Managers.
We're aligned with the Context-Driven School of Software Testing, a community of people who believe that testing should respond first and foremost to the needs of the organization and the project, rather than to "best practices" that may not be best at all in the given context.
I'm based in Toronto. I'm a citizen of both Canada and the U.S., so I can work easily in either country and around the world.
From 2006 through 2009, I was Program Chair of TASSQ, The Toronto Association of System and Software Quality. In 2008, I was the Conference Chair for the Conference for the Association for Software Testing. In 2013, I was Programme Chair for the EuroSTAR, Europe's largest testing conference.
I do a little programming, mostly in Ruby and Perl. In the past, I've worked with Visual Basic C and C++, and I've done extensive work in Excel. I've also done rather a lot of technical writing.
- The Themes of Rapid Testing
- Put the tester's mind at the center of testing.
- Learn to deal with complexity and ambiguity.
- Develop testing skills through practice, not just talk.
- Use heuristics to guide and structure your process.
- Be a service to the project community, not an obstacle.
- Consider cost vs. value in all your testing activity.
- Diversify your team and your tactics.
- Dynamically manage the focus of your work.
- Your context should drive your choices, both of which evolve over time.
- Rapid Testing Starts With You
- Identifying your context
- Testing under time pressure
- Excellent rapid technical work begins with you…
- …but you don’t have to be good at everything
- Skills vs. alternatives
- Scientific Thinking
- How do we know what we know?
- Confronting complexity with general systems thinking
- Linking observations and inference
- Testing magic tricks and sufficiently advanced technology
- Introducing heuristics
- Finding and Recognizing Bugs
- Know your oracles
- Consistency as a theme for oracles
- Coping with difficult oracle problems
- Know your coverage
- Handling coverage disputes
- Addressing coverage problems with testability
- Reporting and reporting coverage
- Exploratory Strategies and Procedures
- Focusing and defocusing
- Exploiting variation
- Telling the testing story
- The process of test design
- Testing to search vs. testing to learn
- Blending scripted and exploratory approaches
- Diversifying Your Strategy and Your Tactics
- Considering cost vs. value
- Quick tests vs. careful tests
- Focusing on risk
- The role of repetition
- Rapid Recording and Reporting
- Session based test management for high accountability
- Rapid estimation
- Reporting progress in a test cycle
- Selected Exercises (throughout the class)
- Test The Famous Triangle
- Find the Bug in a Calendar Program
- Test the Mysterious Sphere
- The Wason Selection Task
- The Simplest Possible User Interface
- Testing a Wine Glass
- A Critique of a Test Report
- What Does It Mean To Save a File?
- Use Exploratory Modeling on a Small App
- Breaking Your Confirmation Bias
- Discover the Role of Repetition in Test Strategy
- Report on the Completeness of Testing
- Exploratory Testing with Playing Cards
- Exploratory Testing with Dice