What is QA Testing?

And why it’s important.

Songtham Tung
Sep 25, 2019 · 3 min read

Quality Assurance (QA) is making sure that something works as intended. Whether hardware or software, or even writing (hint: editor), having a QA process is critical to the success of a company and customer satisfaction. After all, isn’t it better to find out if something is broken before your users do?

In most product companies, QAs are often the gatekeeper in determining whether or not the feature is ready for release. While some may reduce QA to simply testing, there’s a lot more to it. In this article, we will go over two of the main practices in the world of quality assurance for software products: Manual Testing and Automated Testing.

I’ve also included a bonus section for QA lingo near the end of the blog 😉.

Manual Testing

Done by humans.

  • User Acceptance Testing (UAT): having users test the product to make sure that it works as intended.
  • Smoke Test: making sure that the most important functions still work.
  • Regression Test: verifying that new features did not break existing ones.
  • API Test: testing application program interface (see WTF IS AN API?)
  • Load Test: testing the performance of your system e.g. simulating 10,000 requests in 10 seconds and measuring the response.
  • White Box Testing: when the internal system is known to the tester.
  • Black Box Testing: when the internal system is NOT known to the tester.
  • Usability Testing: UX related test to see how easy it is to use something.

Automated Testing

Done by robots.

Photo by Andy Kelly on Unsplash
  • System Integration Test (SIT): overall testing of the whole system.
  • Unit Test: individual tests at the code level (mostly done by developers).
  • Test Driven Development (TDD): software development practice where unit test is written before code.
  • Continuous Integration (CI): runs automated build and tests, allowing teams to detect problems early.
  • Continuous Delivery (CD): automatically prepares code to be released.
  • CI/CD Pipeline: automated software delivery process, such as initiating code builds, running automated tests, and deployment (see example).
  • Selenium: web browser automation tool.

QA Lingo

How testers speak.

  • Acceptance Criteria: a set of conditions that must be met in order for a feature to be considered ready to release.
  • Bug: error.
  • Blocker: something that blocks another thing from happening.
  • Code Coverage: a metric that shows how much of your code is tested.
  • Deprecated: no longer used.
  • Edge Case: an issue that occurs in rare conditions.
  • Endpoint: url.
  • Hot Fix: a quick fix to a major bug.
  • Not Reproducible: a bug that is not easy to recreate.
  • Steps to Reproduce: instructions to discover a bug.
  • Test Case: requirements with steps for testing.

Wrapping Up

In the world of QA, no news is good news. When you’re doing a great job, few will notice. However, when you’re doing a bad job…everyone will notice.

QA testing a tough position that is often overlooked and under appreciated. Nevertheless, it is an important role that can make or brake the reputation of a company (imagine what would happen if Google stopped working?). It’s not a coincidence that the best organizations take QA seriously.

Thanks for reading! If you have something that you would like to add, drop a comment below and I’ll include it in the list.

The Startup

Medium's largest active publication, followed by +582K people. Follow to join our community.

Songtham Tung

Written by

Technical Product Director @ Geddit ✈️ From the bay to bkk | #b2b #saas #cloud

The Startup

Medium's largest active publication, followed by +582K people. Follow to join our community.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade