Delivering Continuous Business Value
Today's modern businesses are headed into an "App"-O-calypse, due to the need to grab their customer's attention every way and everywhere possible. The sprawl of increasingly powerful smart devices creates a very challenging landscapes for businesses to keep up. Customer attention spans are significantly lower and so is the appetite for defects or functional issues in a product. Developing high quality products that customers love interacting with requires fundamentally different approach to software testing today, than it was about 5 years ago.
Today, customers interact with businesses and products not through one or two, but several channels starting with smartphones leading the group, followed by web, wearables, living room devices and internet of things. A competitive business environment puts immense pressure on companies to deliver innovation to their market and their customers faster. Continuous delivery of business value (workable software) is the single most important thing, using which, businesses can bring "high quality" innovation to their customers faster. But that means that, enterprises and start-ups alike, have a dire need to enable test automation at scale very quickly to meet business demands and outrun competition.
Implement the test skyscraper within your organization so you can cover a wide spectrum of capabilities that are foundational to building bleeding edge software that just works
Yet, product innovation isn't the only challenge: as the "App" ecosystem thrives, the threat landscape grows along with it. So keeping customer data safe and secured becomes paramount. All these parameters and constraints directly drive why, what and how you test the software you produce, and hence the tools and methods you use to achieve that goal. No longer can you rely on the simplistic test pyramid and you must reimagine it as a what I call a "test skyscraper".
What is a test skyscraper?
How to create a test strategy for your organization?
Growing demand and speed of innovation will demand your organizations strategy to be nimble and agile such that you have high level of confidence in the business value you deliver safely and securely to your customers. As you start your journey, take into consideration the following criteria in defining a test strategy
1. Embrace automation, manual testing is ancient
You cannot do continuous delivery without test automation. Make automated testing, the DNA of how you develop software. Automated tests enable continuous regression of your application. Embed quality engineers into your agile scrum teams and create an arsenal of well written automated tests that test your application at several levels that include unit testing, integration testing, security testing and automated visual testing. Testing software isn't just limited to UI, expand out your automation to API, fat clients and other software. There are several players in this space providing specialized software for example Sauce Labs, Browser Stack, Perfecto, Nessus etc. Gartner magic quadrant reports are a great way to learn about leaders in the space of automated testing.
2. Don't spend time building your own test infrastructure
By far one of the biggest mistakes I have seen organizations make when forming their test strategy is that they try to build, which otherwise could have been bought. In the amount of time you spend building and perfecting your testing infrastructure, think about how much business value you can deliver. You will struggle keeping up with the speed of innovation.
3. The public versus private cloud dilemma
Take advantage of the economies of scale. Several major vendors offer specialized testing and device clouds for you to run large scale high volume tests on public cloud infrastructure at the fraction of the cost. If your domain is a highly regulated domain, consider securing your data and infrastructure first, then embrace the public cloud. Cloud enablers like Docker are also bringing low cost alternatives like headless cross browser testing to the masses and may be a great cost saver for companies that are running on limited finances.
4. Artificial intelligence is a game changer
Writing impactful tests is an art in itself. Standardizing best practices and ways development teams create test is a good way, however it takes time. With the rise of machine learning and artificial intelligence, a lot of intelligence can be built into testing software to make testing applications easy for example AppliTools makes use of advanced machine learning algorithms to pinpoint visual defects in your products that otherwise would go unnoticed by a human eye. AI in testing is an evolving space with much too it and a single article isn’t enough to do justice to it.
5. Make security testing the part of the pipeline
The rising tide of cyber crime has increased cybersecurity spending up millions of dollars estimated to be over a $1 trillion by the year 2021. Consider using tools like OWASP ZAP proxies in your continuous delivery pipelines to scan for vulnerabilities in shipped code. Make use of open source frameworks like GauntLT[http://gauntlt.org] adn BDD-Security[https://www.continuumsecurity.net/bdd-security/] to perform security acceptance tests to make applications more secured.
6. Test management
Metrics. Metrics. Metrics. What you cannot measure cannot be improved and hence having effective test management software is critical to success of your strategy. Use test management software like Zephyr that integrate with your continuous delivery toolset so that you can gather metrics. Better yet, with advent of AI, these tools have become intelligent in learning the patterns in your data and can provide you meaningful intel in what works and what does not work for your organization.
Whether you are a big enterprise or a small startup, creating an effective strategy of how you test your software is crucial. Implement the test skyscraper within your organization so you can cover a wide spectrum of capabilities that are foundational to building bleeding edge software that just works.