Contributor

Redefining software testing in the era of microservices and AI

opinion
Mar 6, 20186 mins

Software testing and software testing vendors will need to fundamentally rethink and reshape their approach, given the new paradigms of programming and software development

10 hottest IT jobs primary
Credit: Thinkstock

As an increasing number of industries and their workflows get disrupted by software, the complexity and importance of testing the software increases severalfold. As software seeps into workflows that were previously manual, the need for the software to elegantly handle the diversity of edge cases becomes paramount.

Such elegance does not come without a price. Dev teams need to gain quick expertise on complex toolsets, stomach various waves of devops adoption, maintain a TDD, test-everything approach, define a test automation strategy, and achieve code coverage while shipping high-quality code.

A few key software testing concepts are increasingly important to testing teams today.

Increased use of microservices

As new applications and old systems are designed and refactored, the number of microservices used will increase—according to a 2017 report by Research and Markets, the microservices market is expected to reach $32 billion by 2023.

Microservices are lightweight services that offer a small functionality as a service to an app. Modern apps tend to be orchestrators of multiple microservices. These microservices manage complex workflows that route, distribute, consume, and coordinate multiple services in a specific order to ensure that the larger scenario is enabled.

As the number of microservices per app goes up, the challenge and complexity of orchestrating that app workflow grows. Testing in such an environment becomes more challenging. The test environment now needs to offer test versions of each of the microservices individually deployed before the application workflow can be tested.

In addition, microservices have very specific requests and responses. Building workflows that combine multiple microservices requires the data transferred among the services to be appropriately transformed. This adds an additional level of complexity and changes how test metrics are defined and appropriate automation is added to the system.

Growing use of AI and machine learning

As AI becomes more prevalent and ubiquitous, it is bound to start showing up in most applications. AI can offer predictive capabilities in applications that drive or inform the application workflow. As applications mature, the number of AI models per application will grow. Testing an AI-driven application is very different and requires the ability to measure and monitor the quality of the AI model and the application’s usage of the model to drive decisions.

Advancements in machine learning have even raised doubts as to whether machines will take over testing altogether. For example, a platform names Apdiff uses advanced or clever fuzzing to not only interact with apps, while its algorithms are able to determine whether an outcome of a specific action is likely to expose defects.

Whether bots will or won’t take over testing jobs, software testing will need to advance and ensure that the models themselves are tested: The data used for training needs to be of high quality, the training setup well designed, and the trained models easily transported to the production environment. This is in addition to the need to test and ensure that the application workflow consumes the AI prediction appropriately and accurately.

Push to real-time processing

There is a push to make an increasing number of applications real-time. Driven by consumer products that offer instant gratification, enterprise software is also feeling the push towards real time processing ability. This can range from servicing client requests in real time to dealing with operational, supply chain issues in real time. To include this real-time processing capability in software, applications will need to be redesigned. In addition, real-time processing will put an additional burden on the application making it more susceptible to traffic patterns and behavior changes. This opens up another dimension for software testing where the ability of the software to continue performing at expected quality levels at peak times becomes very important.

Higher data volume

Hand in hand with more software driven workflows comes the increased generation of data. As more data is generated, it needs to be collected, moved, stored, processed, and analyzed. Quality testing is challenged and redefined by growing volumes of data, the availability of big data processing technologies, and expectations for services to consume all of the available data to drive quality of service. Organizations need to find new ways to make sense of these huge data volumes. The ability to process data with high quality is key to offering differentiated services and has the potential to, over time, become the primary driver of value in the user experience.

Push towards personalization and customization

As software-driven workflows and products grow, they present the opportunity to personalize and customize the user’s experience. Personalization and customization has become and will continue to be a differentiator and products/services that are able to achieve this will have a lasting presence in their user’s value chain. However, personalization and customization requires the ability to test and ensure that the experience is personalized at the individual user level. This adds to the level of complexity of testing that is required to ensure that other, crucial functionality is not compromised in the process of applying personalization and customization techniques.

Regulatory pressure for higher transparency

Higher regulatory pressure will also drive testing complexity. Not only is testing required to offer a high level of service to customers, regulatory requirements will continue to challenge testing teams. The upcoming GDPR enforcements are only one example of the need for testing teams to reach an extremely high level of transparency and auditability. The requirement for transparency will grow the need for testing coverage and confirmation of software workflows that perform according to specification. In addition, testing will need to ensure that all testing logs are available for inspection, sharing and analysis. Internal stakeholders and external regulators will request and require access to data that confirms that the software is designed to and verified to perform as expected.

Software testing and software testing vendors will need to fundamentally rethink and reshape their approach in these new paradigms of programming and software development. You can expect them to bring new solutions, products, and services to the market to help enterprises deal with the complexity of software and the intricate workflows that make up modern, digital products and services.

Gilad David Maayan is a technology writer who has worked with over 150 technology companies including SAP, Oracle, Zend, CheckPoint and Ixia, producing technical and thought leadership content that elucidates technical solutions for developers and IT leadership.

Gilad is a 3-time winner of international technical communication awards, including the STC Trans-European Merit Award and the STC Silicon Valley Award of Excellence. Over the past two decades he has written over 70 technical books, white papers and guides spanning over 5,000 pages, in numerous technology sectors from network equipment to CRM software to chip manufacturing.

Over the past 7 years Gilad has headed Agile SEO, which performs strategic search marketing for leading technology brands. Together with his team, Gilad has done market research, developer relations and content strategy in 39 technology markets, lending him a broad perspective on trends, approaches and ecosystems across the tech industry.

Gilad holds a B.Sc. in Economics from Tel Aviv University, and has a keen interest in psychology, Jewish spirituality, practical philosophy and their connection to business, innovation and technology.

The opinions expressed in this blog are those of Gilad David Maayan and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.

More from this author