Becoming a Better Software Tester Bernie Berger Test Assured, Inc. www.testassured.com email@example.com Pace University “Code Detectives” Student Seminar Series Tuesday, October 17, 2006
Becoming a Top Software Tester • Software Testers are in high demand • Especially on Wall Street • Top Testers are well compensated • You can learn how to become a Top Tester • My Background
Immediate & Lasting Benefits • Better tested programs are more valuable • Good testers make better developers • Better marketability
Key Point #1 Average Testers only consider simple, happy users when testing. Top Testers consider multiple stakeholders of the product.
Multiple Stakeholders • Different kinds of Users • Lazy • Impatient • Stupid • Malicious • Disabled • Other Stakeholders • Deployment & Installation • Admin & Support • Bugs & Enhancements “No one would do that” really means… “No one, who I like, would do that on purpose” - J. Bach
Key Point #2 Average Testers use simplistic boundary checks in input fields. Top Testers think about new and different ways to cross boundaries.
Crossing Boundaries • Are there boundaries within a range? • Example: Stock Price Alert • Up/Down? • Repeat? • Up/Up and Down/Down? • Which variable changes? • Example: Loops
Key Point #3 Average Testers test sequentially. Top Testers test concurrently.
Concurrency Testing • Test Multi-Process Synchronization • Test for Atomic Operations • Deadlocks • When multiple actions are waiting for each other to finish, and thus none ever does (wikipedia) • Timing Issues • Just before, during, just after
Key Point #4 Average Testers test per specification. Top Testers construct market-triggered test scenarios.
Market-Triggered Scenarios • Corporate Actions: Splits • Interest Rates • Unemployment Reports • Other News
Key Point #5 THE BIGGEST SECRET OF THEM ALL Average Testers learn what they are taught. Top Testers challenge what they are taught and do not believe a word until they reconstruct the ideas for themselves.
The 7 Principles of Context-Driven Testing • The value of any practice depends on its context. • There are good practices in context, but there are no best practices. • People, working together, are the most important part of any project's context. • Projects unfold over time in ways that are often not predictable. • The product is a solution. If the problem isn't solved, the product doesn't work. • Good software testing is a challenging intellectual process. • 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. Source: http://www.context-driven-testing.com/
Summary • Consider Multiple Stakeholders • Think of new boundaries to test • Test Concurrently • Test Market-Triggered Scenarios • Rethink whatever you’ve been taught to believe about software in your own way. Be skeptical of everything. Message: Top Testers Think Outside the Box
Thank You!! Questions???
Bonus Slide – Recommended Reading Thinking like a tester means thinking “out of the box” and the first step in thinking out of the box is thinking, period. Here are some books and other resources I like that helped me think better. Thinking and Deciding, by Jonathan Baron The Logic of Failure, by Dietrich Dorner Lessons Learned in Software Testing, by Cem Kaner, James Bach, and Bret Pettichord How to Break Software, by James Whittaker Read anything written by Gerald Weinberg Study Lateral Thinking Puzzles Play “20 Questions” Watch the movie “The Pentagon Wars”