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?
“Anything that can go wrong, will go wrong.” -Murphy’s Law.
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 😉.
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.
Done by robots.
- 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.
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.
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.
“Quality is never an accident. It is always the result of intelligent effort.” -John Ruskin
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.