Every product team knows that it can be an uphill struggle to scale their product to where it needs to be, and that hiring a dedicated tester may not be top priority in the early days of a business. The information you get from good testing should be though – because a poor quality product isn’t going to help you scale obstacles that can seem vertiginous in nature.
Download our infographic and use the strategies below to help steer your testing and product quality efforts, whatever the size of your company right now. Whether you’re a startup or a public company – the strategies it contains will act as a sherpa for your business, helping your testers provide the information they need to steer the company away from precipitous falls and on the trail towards success.
Get TestRail FREE for 30 days!
You’re at basecamp; still proving out your product has a business model that can work. Follow the approaches below to keep your testing lean and mean:
- Fast, frequent releases – in your early days, it’s important just to get the product shipped. Follow the Minimum Viable Product approach. Deliver the minimum amount of code necessary to create the desired value, then ship it!
- Continuous integration – automate the build process and add a layer of acceptance tests so you know the product works and is always ready to ship.
- Information radiator – put information where everyone can see it. Kanban boards fit in with the agile/scrum approach and the physicality of the kanban board along with daily huddles is a great way to keep everyone engaged and accountable. From a testing perspective, a low-tech-dashboard can be a worthy addition: www.satisfice.com/presentations/dashboard.pdf
- Code reviews – start as you mean to continue, with great quality code. Reviews are one approach. Pair programming (or perma-review) is preferred.
- TDD – test first, not last. You know it makes sense. Having a solid unit testing strategy will grease the wheels for every other part of your testing strategy in the long term. And it’s far easier to add them when you start, than to try and back fill later. And let’s face it, never ain’t ever going to come.
- Feedback from customers – get all the feedback you can, from whoever you can, whenever you can. Good or bad, suck it all up. Share it with the team, filter the bad and run with the good.
Your company is growing… It’s time for your test strategy to grow with it. Use the strategies below to ensure you have safeguards in place to catch you if you fall.
- Regression test – once you get to a certain point, you need your releases to be stable and as bug free as possible. In the earlier days you just needed to ship. Now, you need to ship a product that won’t tarnish your image in the market place. In these days of instant feedback via app store ratings and comments and social media – you need a regression test strategy to weed out killer issues – before your customers find them.
- Automated deployments – no more manual deployments. They’re time consuming and error prone. Script everything you can and start researching how to automate the stuff you can’t yet. It’ll be worth it in the long run.
- Non-functional testing – as you scale it’s time to start thinking about some of the performance issues that your product might experience with a more distributed user-base. Don’t forget about the other non-functional areas too: accessibility for example, and of course – security.
- Model your testing – find a testing model that works for your team and product. The much maligned testing pyramid (heavy automation, lighter on integration, lighter still on UI and manual testing) works for many. As does the Agile Quadrants approach. For something with a bit more depth, Google the Heuristic Test Strategy Model.
- Hire a dedicated tester – if you can support the investment, you’ll find a skilled tester a worthy addition to your team. Good testers do far more than just run test scripts, but you’ll need to find someone who’s the right fit for your organisation. For more advice in that regard, checkout our article here.
You made it to the summit! Now is the time to plant a flag and make sure it stays there. Implement the tooling below to ensure your product stays ahead of the pack.
- Feature toggling – if you can, build in the capability to turn a feature on/off without making any code changes, then you can release it and if there’s a problem, switch it off until you’ve fixed whatever the issue is. This capability becomes an order of magnitude more powerful when you can toggle it across a specific segment of your userbase – canary or split testing.
- Crowd or outsourced testing – if your product needs to be compatible with a wide range of devices, browsers or regions ,you have the choice of procuring a set of devices yourself, or you can let an outsourced “crowd” do the work for you. They won’t replace your in-house testing efforts, but when you need breadth rather than depth, the crowd is definitely an option.
- Monitoring and alerts – build in the capability to monitor your product in the wild and generate alerts that are picked up by the team when issues arise. Monitoring can also mean keeping an eye on feedback, in app store ratings and comments for example, and on social media. For bonus points, interact directly with your users!
- Dogfooding – make sure your entire organisation is using your product and feeding back to the development team with any issues they find. Probably you’ll need someone to filter their issues and reproduce/document some of the more interesting behaviours. See “hire a dedicated tester” if you haven’t done so already…
- Commit and branching strategies – in a nutshell, make sure you have them. Ideally, commits are kept small with meaningful messaging, and if possible don’t branch; try to stick to the trunk.
- Better tooling – as your team grows, you may need to invest in better tooling, particularly for testing. Open source tooling will get you a long way, but for some tasks – performance testing and monitoring for example, investing in the right tools will save time and money in the long term.
Test Automation – Anywhere, Anytime