How To Get Started with QA

We’ve all been there. You’re fresh off a new release and busy working away on building new features for the next milestone when suddenly, a flood of support tickets start coming in. Your users have found a bug. And not a tiny bug either. A gut-wrenching, data-deleting bug.

The alarms sound. Production is shut down. It’s all hands on deck to rectify this error. Your team drops everything to solve this before your company loses thousands of dollars, or even worse, thousands of customers. Now if only you had caught this ahead of time. If only you had set up a proper QA environment. If only you had a plan.

Create A Test Plan


Setting up a proper QA process is key to a successful, bug-free release. The first step in the process is to create a test plan, or a record of the process itself. In order to understand what tests need to be created, start by laying out the scope of your website or application to develop a test plan.

Begin your test plan document by creating a plan for each level of testing detailing all unit, integration, and UI tests per feature. For each plan, establish the testing scope, resources, schedule, and approach. Specify the goals of the plan and any specific constraints it may have. A good test plan identifies the features to be tested, what features not to test, the test items, and the tasks associated with each test.

Assign each task to a team member, and set them up with the appropriate test environment. In your test plan, provide information on the pass/fail criteria and test design techniques to be used. Identify any risks or specific dependencies. It might also be wise to list the assumptions that have been made about the plan as a reference point for retrospection. Now that you have your plan laid out, it’s time to put it into action.

Automate Tests


The plan is in place, and your team has been working away manually testing each test. Things have been going great, and your test plan has helped immensely, but as your product grows, so does your time to release. With every new feature you add more tests to your plan. On top of these new tests, you realize you need to review each old test as well. There’s nothing worse than building a new feature only to have the code changes break an old existing feature.

Thankfully, test automation is here to help. Test automation is the use of software to automate the execution of tests and compare the predicted outcome to the actual outcome. The software will compare the previous state of a test to the current state of a test and alert you to any changes. A test will either pass or fail. A failing test can then be assigned to a developer to fix the error.

When thinking about what tests to automate, start by automating the things you test most often. What’s the most important feature to your product? Is it your navigation? Your login? Take this time to think about which tests are most likely to be affected by changes to your product. Create a checklist for key features that are necessary for your product to be useful for your customers. Starting by prioritizing these tests first will help to set you on the right track. You’ll soon find that your testing cycle gets shorter as you automate your existing tests.

Scheduling


Now that you’ve automated some of your tests, testing is a lot easier, but you still need to check in on these tests every time you have a new release. You could continue to run each test as needed, or you could schedule your automated tests.

Most test automation tools will provide you with a way to schedule the run of each test. Assign each test a frequency for how often you want the test to run whether that be biweekly, weekly, or even daily.

In addition to scheduling these tests, make sure you give yourself a way to be notified when the test results are in. Schedule an alert for each test run to be notified when it has been completed. Most test automation tools will allow you to send an alert to your email, or over a collaboration tool like Slack.

Select A Tool


There are wide variety of tools designed to help automate your QA process. Make sure you find a tool that will allow you to create and edit your tests. These days there are even tools that will help you find, build, and maintain these tests for you.

You might also want to consider a tool that works well with your existing development release cycle. Continuous integration tools like Jenkins and Travis CI help engineers to automate releases to production by acting as a continuous delivery hub. Many tools exist that will hook right into your integration pipeline, making your team more efficient.


Summary


Choosing the right test automation tool is all about finding out what works best for you and your company’s needs. Planning ahead will help you to identify the testing needs of your system before you’re too deep in the weeds. Use this knowledge to automate your most common tests and you’ll be well on your way to an effective QA environment.


Good luck and happy testing!


Comments

  1. Thanks for creating this blog! I'm excited to learn "all things QA".

    ReplyDelete

Post a Comment

Popular posts from this blog

Getting Started With Qanairy: How to Autogenerate Tests [Part 1]

Getting Started With Qanairy: How to Review and Verify Tests [Part 2]