QA Testing: What is it? Why should we do it? How do we do it?

Table of Contents:

  1. Introduction
  2. What is Software QA?
  3. Why should we test?
  4. How to write test cases?
  5. Automated testing

Introduction

This article will specifically focus on the testing portion of the development process. It is an essential and often overlooked part of this process and it will explain what software quality assurance or Software QA is, why it is an important part of the development process, how to do it and links to an overview of automated testing (a useful tool in QA). At the end of this article, a CSC301 student would have a basic understanding of Software QA and would be able to look into a career in the Software QA field.

What is Software QA?

Quality Assurance, Quality Control and Testing - the Basics of Software Quality Management

This paper is likely the greatest paper about software QA, but it is quite long. Here are some of the main definitions and key takeaways:

What does a Software Quality assurance engineer do?

This article gives a tease of what a software QA engineer is like, the different types of SQA engineers and their duties and responsibilities. It is the right article to figure out if you want a career in this field or if you are interested in QA.

Software QA engineers take the job of encompassing a range of tasks aimed at identifying and addressing issues so that high-quality software products are delivered. They have a series of responsibilities:

QA engineers may have more responsibilities than what’s above. Here we are just listing a few.

There are also Different types of Software QA Engineers, each dedicated to a different specialized role. Here are a few of them:

As we can see from above, QA engineers are more than simply writing automated test cases and doing manual tests one after another. Sometimes they require more knowledge than simply knowing how to code, like the accessibility testing engineers. They are also an important part of delivering a reliable and high-quality product.

Why should we test?

Testing is a vital part of the software development life cycle. This very entertaining video shows what events prompted the creation of software testing and how it has changed. The first few minutes of the video is what I would like to call attention to. It highlights the importance of software testing as far back as 1999 with the “Y2K” problem. Every software engineer should know about this.

There are many reasons why software testing is important. This blog 7 reasons why software testing is important summarizes it into 7 different reasons:

How to write test cases?

Most CS undergrad students might have only written automated tests before, so they might know test cases only as they are in unit tests. However, in software development, test cases are not only for automated tests. They are more often used in manual tests. Normally, we design test cases for manual tests and possibly convert them into automated tests later if needed.

This article describes how to write test cases. It describes a test case vs test scenario, the various types of test cases and how to write test cases. Here, we will briefly go through the most important things covered in the article.

First of all, the article provided a very comprehensive 10-step guide for writing test cases:

  1. Define the area you want to cover from the test scenario.
  2. Ensure the test case is easy for testers to understand and execute.
  3. Understand and apply relevant test designs.
  4. Use a unique test case ID.
  5. Use the requirements traceability matrix in testing for visibility.
  6. Include a clear description in each test.
  7. Add proper preconditions and postconditions.
  8. Specify the exact expected result.
  9. Utilize suitable testing techniques.
  10. Get your test plan peer-reviewed before moving forward.

The article also included a list of popular test case management tools. You may want to have some experience with one or two of them if you are about to engage in writing tests for a large formal project:

  1. JIRA
  2. Juno.one
  3. Klaros Test Management
  4. QACoverage
  5. Qase
  6. SPIRATEST by Inflectra
  7. TestFLO for JIRA
  8. Testpad
  9. XQual
  10. Xray
  11. Zephyr Scale for JIRA
  12. Zephyr Squad for JIRA

There are some important takeaways from this article:

If you need more help on how to write a test case, here is a short blog that’s relatively easy to understand. This blog provides visual examples of what a test case should look like, and a short video showing step-by-step how to write a test case.

Automated testing

Automated testing is an important part of QA testing, that involves engineers writing test scripts, and running them to get test results. Here are some reasons that made automated testing a critical part of QA:

Since automated tests can be written by either professional QA testers or software developers, both practices are common in the industry.

Detailed information about automated testing can be found on this page.