What Do Software Testing and Poker Have in Common?
If you think about it, software testing and poker have some interesting commonalities. Critics say there’s no use in either, that both are a waste of money and, at worst, dangerous to the financial health of the poker player or the health of the software project. Proponents say that both teach us something valuable and are enjoyable activities. Some say that both are exercises in luck; others say they are exercises in skill. There is a risk element to each.
Software testing and poker have these things in common: instinct, technical or mathematical ability, psychology, and luck. Scholars studying poker consistently find that poker requires significant skill; James Bach regularly argues for the scholastic activity of software testers and the development of specialized testing skills.
Poker rewards players who can outthink their opponent and synthesize different pieces of information to make decisions. Software testing requires similar ability to draw in multiple streams of information, some of which come from a closed system that can sometimes “bluff,” making reality hard to discern.
Poker players learn about mixed strategy, which occurs when a player chooses not to take the same action every time. For example, in baseball, a pitcher doesn’t throw a fastball every time because the hitter simply plans to hit a fastball and thus is more successful. Likewise, software testing requires mixed strategy, which is one of the arguments against automated testing.
A machine cannot vary its strategy, so bugs get very good at hiding. Human testers, however, can use their rich brain matter to employ a variety of testing heuristics as their instincts dictate.
Poker teaches players how to handle the emotional swings of winning and losing streaks. The software tester’s life can be similarly emotional: filled with satisfaction when a product release goes well, filled with despair when it doesn’t. Emotional control is essential for both poker and software testing.
Both activities also exercise probabilities. Poker players learn the importance of calculating “pot odds”— the money a player could win versus the money he or she would have to risk. One of the greatest gifts software testers can give to stakeholders is an assessment of an application’s probability of failure or inability to suit users’ needs.
Studies have shown that highly skilled poker players—those who spent significant time studying poker—had a much higher return on investment (ROI). While the monetary benefit of software testing is more tacit, those who have benefited from excellent testing attest that positive ROI is there.
Since poker and software testing require similar skills and attitudes, it might not be a stretch to infer that software testers could strengthen their testing skills through learning and practicing poker. Such forays into seemingly disparate areas of study and game can sharpen software testers’ senses and help them think more creatively when they sit down to test.