Quality Assurance? Bugs? Testing? What does it all mean? / Whoopty doo, what does it all mean Basil?Have you ever found yourself wondering what exactly these words mean in the world of software development? If so, continue reading and enjoy! If not, enjoy your blissful ignorance for another day…
At a simple level, “quality assurance” means “the activity of checking goods or services to make sure that they are good” says Merriam-Webster. When QA professionals examine and test an application, whether it be mobile or web, they intentionally try to break it. Then they document reproducible steps for the developer and other members of the team to assist in finding and fixing the bug.Bug you say, where?The term “bug”, first coined by Thomas Edison, was popularized in software development by a story involving Grace Hopper, an early pioneer in the world of computer programming. In fact, this story has become somewhat of a legend in the software community. So the story goes that in 1946, when Grace Hopper officially joined the Harvard Faculty at the Computation Laboratory to continue her work on the Mark II and Mark III, she and other operators traced an error in the Mark II to a moth trapped in a relay, thus coining the term bug. This bug was eventually removed, and taped to the log book, and the term has infamously lived on...
With that said, let’s also define what a “bug” is as a modern software term and why they are commonplace in software development. Not to over utilize Merriam-Webster here, but a “bug” is “an unexpected defect, fault, flaw, or imperfection” in the software. These bugs are a natural byproduct of software development that simply can’t be avoided but please don’t fret. As software is developed, bugs are inadvertently introduced as more features and/or functionality is added, increasing the complexity. You can think of this as writing a novel where every typo, grammatical issue or even vague wording is considered a bug. Mistakes obviously happen and it is very difficult and frustrating for any one person to be that accurate and precise when developing software. As frustrating as software bugs are, they should never be feared and instead should be embraced. Yes, I said it - embraced.Embrace the bug… really?If QA finds bugs in your software during the development phase, then it can be seen as an indication that you’ll eventually get a solid end product. It's better that all of the kinks are being worked out in iterations before the product is released and reaches end users. It's important to remember that rarely does anyone write error free code, and assuming such is naive and dangerous as it will likely lead to an utterly unreliable final product. As an added bonus, embracing bugs and the sheer act of finding and removing them can also lead to both unintended and intended innovations. Here's an inspiring TED talk about the beauty of unintended consequences:
Alternatively, learning from previous test cases and squashed bugs yields intended positive consequences realized in more sustainable technical approaches and improved architecture.When debugging becomes testing…The reproducible steps derived in the debugging process become the documentation which later are turned into test cases. These test cases provide steps to prove bugs are fixed and new features are fully complete. Before a release goes out to users, QA performs acceptance testing of all the bug fixes and planned features. With acceptance testing, QA ensures the product meets “acceptable” quality for release.Testing is a core process and instrumental at every stage of the software lifecycle to ensure quality and solid user experience. Testing can come in many forms and also has its many methods whether it be automated, black-box testing, compatibility, exploratory, performance, regression, white-box testing, etc. Each of these methods can and will play a specific role in the software development lifecycle. Stay tuned for a later post where I break down some of these methods and go into more explanation.We think testing should be fun and it’s critical that all applications leaving through our doors get a pass through QA. Without testing, those bugs you may fear could rear their ugly heads at just the wrong moment.Imagine you are demoing your application after having had little to no QA over the lifecycle of the project. You start the demo and all is going flawlessly until BOOM…you see red lettering showing “500 error.” Panic sets in, sweat starts to bead on your forehead and you scramble to get back on track. Well, if the application had thorough testing, the opportunity for this to happen would have been significantly reduced. After that experience, maybe you can see why testing is pretty cool and ever so critical. Next time you think about quality assurance and testing, you’ll think back on that experience and say… ”I MUST HAVE IT.”Yes, this is absolutely a worst case scenario and likely not something that would happen. Just remember that QA professionals have you and your application’s best interest in mind. We are a solid line of defense always striving to help eliminate any chance of a bug ever rearing its ugly head again. We also look to ensure the final user experience of your application is as superior as possible when ready for the big stage. DON’T FEAR, EMBRACE!
We design, develop, and ship custom software for web, mobile, and connected applications and experiences. GET IN TOUCH.