In today’s fast-paced world of software development, we as developers need to make our processes more agile and streamlined. Making sure that we can ship code efficiently of the highest quality is crucial to getting features out to our users. However, you cannot cut corners when it comes to accessibility, security, and performance. This is where incremental testing with feature flags comes into play.
What Is Incremental Testing?
Incremental testing sounds just like it is written; it’s the process of testing pieces or modules of software incrementally in an application. The core of incremental testing is really two things together, unit testing + integration testing, and from that we get incremental testing. As you are testing modules, you use a combination of stubs and drivers to make sure the functionality works. This is a great way to surface bugs before anything goes to production.
Automating Incremental Testing
There are a few different reasons for when you can and should automate your testing. With everything we do, if there is a process that is being repeated with the same variables, why not automate it so you can focus on other things?
According to TestSigma (Ritika Kumari, 2023), here are four valid reasons to automate your incremental testing:
- When you need to use the same test cases for testing the modules multiple times
- Your product supports automation testing and is stable for you to run the test scripts
- The test cases provide better results when you automate them and require less manual effort
- When test automation will provide greater ROI on running the tests
As you can see, there are valid points to automating, but it isn’t something to always put in practice when variables of the application are different.
Implementing Feature Flags
If you are new to feature flags and A/B testing, you have come to the right place. You might be asking yourself, “Self, what are feature flags?” In a nutshell, feature flags (or feature toggles) are a way to turn off and on features within a user interface, but not limited to that. You can also implement feature flags to help optimize database queries as well as performance tuning.
A theme you will see with incremental testing as well as usability testing is risk mitigation. Feature flags support a more controlled rollout. Releasing a feature to a subset of users will prove out the scalability and sustainability of the module, component, or piece of UI.
In this business we call software development, we want to break down large tasks into smaller ones. Large chunks of UI into smaller, single components. SPA (single page applications) frameworks have capitalized on this through componentized architecture. The days of creating one long web page in HTML are gone, well sort of. If you are an old school web head like me, they are still fun to make.
Advantages of Pairing Incremental Testing & Feature Flags
Two main things from the developer perspective would be bug fixing and efficient testing after unit testing has completed. If you turn a feature on, test that feature, and if there is clearly a bug in the app, you can identify it with precision and fix it before the app goes into prod.
Efficiently testing each module and linking it to others will save time and headaches. I wrote an article on the importance of usability testing and saving headaches, check it out.
Another advantage that might be overlooked from a 10,000 foot view would be fostering a culture of continuous improvement. All of us are trying to improve. We should care about the code we are shipping. We should care about the quality of code we are shipping. At the end of the day, we are possibly changing people’s lives. I reference this point in all of my accessibility talks.
You might be creating software in the healthcare system that might save someone’s life. Same goes for working in the education space. You might be creating and shipping software that will help someone learn to read. That is extremely powerful. Feature flags paired with incremental testing.
What’s the Business Value?
There are plenty of answers to the reasoning behind testing, and using feature flags. Some of those reasons do provide value to the business at the end of the day.
- Better business decisions are made from testing features and correlating the data based on how the users are interacting
- Your company can get a better feel of its user base based on analytics and metrics
- Effectively understanding what resources to allocate and features to move forward with based on reception of features
We all want the business to make money. It is how we make money that matters. Incorporating feature flags with incremental testing into your SDLC and processes is a winning combination.
Feature flags are not scary. Unit tests are not scary. Incremental testing is not scary. The value that testing provides when linked to feature flags enables fine grained code exposure and result-driven decisions.
Taking the time to incorporate these practices in your process will empower us as developers to ship the best, accessible user experiences. Plus, you’ll be able to retain lifelong customers.
Switch It On With Split
The Split Feature Data Platform™ gives you the confidence to move fast without breaking things. Set up feature flags and safely deploy to production, controlling who sees which features and when. Connect every flag to contextual data, so you can know if your features are making things better or worse and act without hesitation. Effortlessly conduct feature experiments like A/B tests without slowing down. Whether you’re looking to increase your releases, to decrease your MTTR, or to ignite your dev team without burning them out–Split is both a feature management platform and partnership to revolutionize the way the work gets done. Schedule a demo to learn more.
Get Split Certified
Split Arcade includes product explainer videos, clickable product tutorials, manipulatable code examples, and interactive challenges.