Becoming a Better Software Tester


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Becoming a Better Software Tester

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