QA can seem straightforward. But from testing headline cases thoroughly to pinpointing exactly why your product isn’t functioning quite how you need it to, implementing a comprehensive QA strategy can be a complex process.
Testing for major headline failures, regression bugs, and extreme edge cases — and anticipating potential issues before they actually become a problem — is a necessary part of software development.
Here are the seven major types of QA testing that all software teams should have on their checklist by the time their product reaches maturity.
Unit testing involves testing the smallest testable segments of software, usually as they are written. Your company should always be implementing unit tests regardless of your stage within the funding cycle. An unreliable core product might discourage users from becoming long-term customers (and stunt any potential company growth!) so it’s really important to be doing unit testing to make sure this doesn’t happen.
Unit testing is usually done manually as new code is written, especially during early stages of your product. But as you grow, it’s more useful to implement automated scripts to help you test the code.
Integration testing ensures that any new code you write compiles smoothly with your existing codebase. You’ll need to start planning automated integration testing as your product grows and you start developing new features that will need to run alongside your existing software. Once you’re at the A/B/C level of funding, both as a B2B or a B2C provider, you’ll need to start this kind of testing. It’s important that new features work well with the current product, as you will have more customers that rely on what’s already there.
Informal testing or exploratory testing can be invaluable tools no matter what stage of production you’re in. Manually just poking around can take up a lot of time, but informally tinkering with your product can also be useful in later stages and can in fact isolate problems that more formal, automated methods might miss.
User acceptance testing is testing with respect to the end users’ needs and requirements. Acceptance testing becomes more important as your product matures. You’ll want a plan in place to assess the major uses of your product and how to address any issues that come up during use by a representative focus group of users. User acceptance testing is important for A/B/C-level and IPO-level companies in both the B2B and B2C markets.
Penetration testing tests for security vulnerabilities in your software and becomes important once you’re big enough to be a target for hacking. You’ll want to include this type of automated testing if you’re an IPO-level B2B company or a company that deals with a lot of sensitive user information.
Load testing assesses the ability of your product to handle a large number of simultaneous users, as well as the capabilities of your infrastructure. This becomes important in the later funding stages of your company. If you’re in the B2B market, this will be once you’re past the seed-funding stage; if you’re B2C, you can wait to worry about this type of automated testing once you’re at IPO level.
Most companies don’t have to worry about load testing until they’re more mature, as they’re not yet likely to encounter traffic that breaks their software. But even early-stage companies should be aware of their load limits — our customer Soylent went viral much faster than anticipated, making load testing suddenly very relevant to its business needs.
Here at Rainforest, we’re big advocates of dogfooding. We don’t have an in-house QA team and we run all our QA tests through the Rainforest platform. Dogfooding keeps your team in close contact with the actual product. It helps you spot big problems, but it also makes you more aware of little things like interface issues and little bugs that can affect speed and accuracy. It can help your developers think like the customers who will be using your product, ensuring a better user experience.
Whether you’re a startup with a small team or a large enterprise, using your own product provides critical feedback about your product’s performance—an opportunity that shouldn’t be passed up. By nature, dogfooding is manual but, unlike many tests, it isn’t performed in a vacuum, so while it can take time, it’s really a pro-multitasking move.
The biggest takeaway when assessing QA testing strategies is that you choose the testing types that are most applicable to where your company is in its life cycle. Comprehensive testing strategies are important in order to satisfy your users, maintain the quality of your product, and continue your growth—but there’s not just one answer for which types of testing you will need to implement for your product. Your company may need just a few or all of these testing strategies depending on the stage your product and company is at. Most importantly, you should continue to evaluate your QA testing needs, since the scope of your testing strategy will change as you grow.
If you've checked all these tests off your to-do list, check out these tips from CD experts on making the leap to continuous deployment for more advice on moving fast without sacrificing product quality.