Sentinel – A Simple Tool that Solves Testing Complexities

Finding a bug is important, but what help is a bug report without knowing where the problem lies? We present Sentinel, an open-source library built by Infinum that is a perfect all-in-one tool for any software tester.

QA engineers working in agencies are often met with a range of different projects. At Infinum, we test Bluetooth communication between smartphones and house appliances (smart lights, air fryers, coffee machines..), mobile banking applications, AI-powered bike cameras that provide a rear-view of the traffic, night vision scopes, etc. 

Each project has its own needs and challenges, and this is a case where one size doesn’t fit all. For efficient testing, we need different sets of tools. 

To meet the needs of both our testers and developers, we created Sentinel – an open-source library that offers multiple functionalities inside one customizable hub. Sentinel comes preloaded with a number of tools that make QA engineers’ lives easier and allows for additional integration of a wide range of third-party tools. 

Let’s walk you through Sentinel (both Android and iOS versions are available on GitHub) and demonstrate how it can improve the testing process.

Why Sentinel is an essential testing tool

Sentinel gives testers simple access to information about the device model, OS version, application, and performance details. To meet varying project needs, developers can easily import a selection of additional tools. In addition, the library can be triggered by multiple types of events, such as a shake, long press, or a tap on a notification. 

But where Sentinel truly shines is accessing logs with its built-in tool called Loggie.

A lot of software testers’ time is dedicated to reading logs and sending them to developers or clients. Sometimes, the source of the problem isn’t obvious at first look, and logs present the essential info developers need.

In an ideal world, the testing process would look like this: a developer builds a feature based on a set of requirements, the feature is implemented in a new build, the tester downloads the build, tests it, concludes that everything works well, and marks the task as done. 

Life is good when this is the case, but in reality, mistakes happen. There can be misunderstandings between devs and clients, discrepancies between devices, platforms, OS versions, or screen sizes, and conflicts between features. Bugs are inevitable, especially when the size of the app keeps increasing. 

How can QA engineers help developers better understand where the problem lies? By providing them with as much information as possible. 

Maybe it’s Bluetooth logs if the app has connectivity issues or network logs when the banking app you’re testing throws you a “Something went wrong” message when you try to refresh the transaction list. Sometimes, it isn’t clear where the issue lies, frontend or backend. This is a perfect use case for Loggie. The QA engineer can easily look up the response sent from the backend for more information. 

Loggie can be useful even if there is no error at all. For example, a feature we recently developed for a mobile banking app is a lending card that is shown only to specific users. By looking up the response sent by the backend, the tester can see if the feature should be shown or not.

Sentinel’s star features

Loggie

A preloaded tool in Sentinel, Loggie displays all API requests and responses in a single list. Speaking from experience, it is the tool we use 90% of the time when we open Sentinel. 

Loggie will present the exact time an event occurred, how long it took the backend to respond, and the size of the log. Tapping on the API request from the list opens a screen that displays three categories – Overview, Request, and Response. There’s also a conveniently placed Share button, which allows you to share logs to your computer or send them via email.

Feature flags

Feature flags allow us to turn an app’s features off or on, so we can test according to specific requirements. For example, a great use case for this is dealing with an app feature that is only available for specific markets, or we’re trying to simulate specific errors. 

With the help of feature flags, a QA engineer can test specific scenarios for certain user types faster. There’s no need to ask the client to enable or disable services that will affect all users. 

Feature flags can be loaded inside the Preferences screen. Each has a toggle that functions as an ON/OFF button. Simply tapping on the toggle enables or disables a feature.

Database File Manager

Database File Manager allows the user to import or export databases if the app uses a local database. This is a very useful feature when you are testing a connection between a smartphone and another smart device, for example. 

With this feature, you can export the local database, modify some parameters, and import it back, instead of trying to simulate a complicated scenario with a real device.

What does Sentinel look like?

Sentinel’s user interface consists of a total of five screens, three of which are fixed and non-configurable, while two are open to customization. All of them can be easily accessed from Sentinel’s tab bar.

Customizable screens

Most QA engineers who use Sentinel spend the most time inside the Tools screen. This is where you will find the features described above. Loggie comes in the package, and developers just need to enable it, while the rest of the list is fully customizable and can contain as many third-party tools as necessary. 

The Preferences screen also provides access to feature flags if the developers have implemented them for the project.

Non-customizable screens

Sentinel’s non-customizable or “out-of-the-box” screens contain features that can be of great help when there are some performance issues with the app. 

The Performance tab bar shows CPU and memory usage, while the Application screen contains information like the app version and build version. 

Looking up these two pieces of information is not difficult on Android because you can quickly access App info from the home screen. However, it can be tricky on iOS because there is no support for quick actions from the home screen. In this case, Sentinel offers the fastest way to access these two.

Lastly, the Device screen allows us to check out information like the device model, OS version, and battery level.

Boost QA efficiency with Sentinel

Sentinel is a great all-in-one tool for software testers, especially useful in diverse and challenging testing environments. By consolidating a range of functionalities into a single customizable hub, it helps streamline the testing process and makes it much easier to catch and resolve issues. 

Features like the invaluable Loggie, feature flags, and Database File Manager help us test any application, from smart devices to mobile banking. Ultimately, Sentinel allows QA engineers to provide developers with all the information they need, which results in higher quality and more reliable digital products for the end users.

If you want to test out how Sentinel can help improve your testing progress, you can find it on GitHub.