In the early days of my software development career, I was occasionally enamored with the capabilities of a personal computer. The software libraries at my disposal extended my reach into ports, networks, and databases. The ability to move, analyze, organize, or display data was a pallet upon which I wielded elegant solutions, and it encouraged my imagination and creativity. I must also confess to a mild case of hubris. Indeed, I would claim that one “…could do anything in software.” When I said this to my manager, he admonished that I give him a raise.
Time has more than humbled me and taught me the ability to do something usually arrives with the question of should I do something. This was very evident as I moved into more senior development roles. Also, the libraries grew in sophistication and ability – especially the ability to connect. The reach of today’s developer extends not only into every corner of the enterprise but into public APIs of other enterprises. The level of B2B transactions, virtual experiences, and 3D printing make it appear that anything is possible in software.
When I transitioned to a testing role and career, the phrase took on new meaning. It is precisely because one can do anything in software that we test! Project teams are guided by requirements, collaborate to make them understood, and use their skill and talent in implementation. They seek a perfection in communication and methodology that assist in preventing defects. However, because anything is possible, users, both legitimate and nefarious, will attempt the impossible, the improbable, and the ridiculous.
Some users stumble across a defect and are annoyed. Other users find the same defect and see opportunity. The ability to do anything is a tester’s opportunity to orthogonally review an application for the unimagined or unintended use. The next time someone suggests of your test case that no one would ever do that, you can smile. You can believe you have hit upon a vein of scenarios that, with a bit of imagination, can not only root out nasty bugs but mitigate unwanted attention to your company.