Kit Wai Chan - Fotolia
IT organizations that can simplify development and improve performance see big benefits. One way to get there is micro applications, which can help cut costs and speed projects to delivery.
A micro app performs a limited number of specific functions. For example, Google Hangouts and Facebook Messenger are micro apps that provide one specialized function of Gmail and Facebook, respectively. Micro apps are limited in functionality, which simplifies the workflow for developments. These simple apps also typically result in a positive user experience, because they are not complex.
Micro apps have three main components:
- an authentication layer that works with the identity management tool, such as Okta, through which users sign in;
- an interface that interacts with the database or an API, so the user can create, read, update and delete data; and
- a notification layer that sends alerts when a user takes actions that require a next step.
Let's run through how to test micro apps, how they relate to microservices and why they benefit organizations building mobile applications.
Micro apps vs. microservices
Although micro apps and microservices offer many of the same advantages, the two terms refer to different aspects of a software architecture. Developers typically use microservices to build micro apps.
A microservices architecture is composed of multiple small, independent components to complete a task. Each component is a microservice. A micro app can, and often does, rely on multiple microservices to perform its specified functions.
Micro apps predominately focus on UI. Microservices facilitate communication between an application front end and back end. Using a microservices architecture, development teams can deploy a micro app without making a change to the broader application for which it provides functionality.
Micro apps testing strategies
To effectively test micro apps, the QA team must perform functional testing on both the micro app itself and its underlying microservices. Here are the types of tests to include in a micro apps QA strategy.
Unit and component testing. Unit test design is crucial in micro apps testing. Micro apps with many microservices or custom-built components can be a challenge to test. However, micro app management tools like GE Digital Solutions' AppHub simplify the process of code verification, even as programmers write it. The components of the micro app are microservices, so perform an end-to-end test for each microservice as early in the development process as possible.
Contract testing. Microservices work together via a contract: how their integration is designed as provider and consumer. Contract testing validates that a provider's data formats, requests and responses meet the consumer's requirements.
Integration testing. Integration tests validate that the layers of the micro app work together when combined. Through integration testing, the QA team can check that the data flows through the micro app according to specifications.
Functional testing. Functional testing ensures that the function and sub-functions of the micro app work according to specifications. Include accessibility testing as part of the functional testing strategy.
System testing. System testing broadens out the focus of QA. Testers should perform end-to-end tests of the individual micro app(s), plus the applications through which the micro apps function.
Nonfunctional testing. Not only must the micro app complete functions as expected, it must perform well too. Add performance tests to the mix, such as stress, load and reliability tests.
Micro apps use case: Mobile
Mobile applications present significant challenges in development and testing, but micro apps can make the work easier.
The mobile UX can be difficult to test, for example, because it has many features, and complex ones at that. Some features are difficult to find, require long registration processes or cause performance issues, such as long load times. Mobile testing is also difficult because of the need to adhere to multiple app stores' UX requirements. Many app stores, after all, have a notoriously slow and complicated review process. Also, device fragmentation is common. QA teams must test apps across many platforms, browser and device combinations, and be cognizant of suboptimal network bandwidths, interrupts and memory leakage possible in users' hands.
Here's where micro apps benefit testers. They are device-, platform- and browser-agnostic. Thus, micro apps need substantially fewer test cases for thorough coverage. Also, micro apps usually deploy within mobile apps, which means no additional testing within the various app stores.
Microservices and micro apps will likely continue to proliferate in mobile app space, so testers must develop a comprehensive QA strategy.