"You will be the goalkeeper of our company".
Those were the powerful words spoken to me the first day I was hired, and this analogy sums up very succinctly the role of quality assurance within a company. The QA team is the last line of defense before something nefarious pierces the perimeter and starts negatively affecting everything valuable inside: usability, clients, reputation, etc.
Quality is Everything
There is a well-known saying within QA professional circles that states the bitterness of poor quality remains long after the sweetness of meeting the schedule has been forgotten. In other words, quality is everything. Therefore creating or discovering a bug is not criticizing someone's work, but rather enhancing it. The tests done by the QA team on a single item are drastically more intensive and objective compared to what a developer can perform on his or her own work. Finding bugs is the natural outcome of this action, and consequently quality and customer experience are elevated.
—the bitterness of poor quality remains long after the sweetness of meeting the schedule has been forgotten— (CLICK TO TWEET)
If you don't like unit testing your product, most likely your customers won't like to test it either. Save everybody the aggravation and test all the things.
Have a Plan
So - what are the primary steps to performing QA efficiently?
Know the Product
Take the time to genuinely wrap your mind around what you are testing, as well as what might be the future implementations. After that, dive headfirst into probing for possible issues. Do your best to break something.
Know the Target
An informational website, a music streaming app, and an ecommerce platform are fundamentally different products. The targets of these products are quite different as well. Utilize analytics to determine the target, put yourself in their shoes, and attempt to view the product through the end-users eyes (admin, user, and all other possible roles).
Define the Scope
Some testing efforts require a limited scope, whereas others require an expansive scope. Sometimes the scope can be paradoxical - a small change might affect many more components than what is visible to the end user. Always take a high-level view and consider the big picture.
Define your Weapons
What devices need to be tested? Will this QA benefit any automated testing? What issue tracker am I going to use? Will there be recurring testing on this product? Multiple languages? How many testers are on the project? Who will fix and regress the defects?These questions will help you choose the necessary ammo.
Create your Test Cases
From test cases to checklist, it is of dire importance to track what was tested, what needs to be tested, what portions had issues, what needs to be regressed, what needs to be re-tested, etc. This is your game plan, your attack, and your exit strategy.
Testing during production is not testing. Commit to a QA process and test everything! And whatever you do...don't be this guy: