When Quality Assurance is mentioned, a lot of people think that it’s about pressing buttons on a web page, or testing an app and ensuring that all the features work on different devices. Some people might think that there’s a lot of documentation involved and that it’s a continuous, simple, repetitive task of “making sure that everything works”. Many assume that there are minimal coding efforts required for QA engineers. But is it really so?

Software isn’t just graphical

Here’s the thing, testing is not just about user-centered experiences, and there is a need for a distinction to be made between various testing environments. For example, at Tuxera, we mainly execute low-level software tests that work directly with hardware. There are no graphical interfaces involved: we mainly work with a set of APIs, and tend to code all the testing procedures manually. There are no “taps” or “clicks”, everything is done by executing code procedures in various environments.

Low level testing 101

To begin any test, firstly, it’s required to understand the hardware capabilities and specifications, the type of functions that are available, and the software that will be used to make it operable. Once the limitations are set, a testing process is initiated. Basic code functions are launched to check that all the main use cases are working. Quite often, there is already a premade template of procedures that need to be executed, so the main task is to adapt the existing code to be operable with a specific hardware device.

Performance Tests

Performance is a very important characteristic of system software. And there are many things that can affect it. At Tuxera we have designed specific series of tests to ensure that our software can utilize the given device to work at a peak performance. For QA engineers, it can be quite a challenge, as many different details can affect a performance test, that at first sight might not seem so obvious. It’s a creative process of multiple iterations.

Fail-Safety tests

There are many situations where a device can be disconnected unsafely, this can lead to data loss and even storage corruption. We’ve created a special fail-safe test suite to simulate power failures and unsafe disconnects to ensure that the file system remains consistent and no valuable information is lost in such an event.

Compatibility challenges

Sometimes, according to specifications both software and hardware are supposed to support a function, but when combined they may return unexpected results. It is a QA engineer’s duty to ensure that data is accessible on all types of devices with different environments and various operating systems. At Tuxera we have several dozens of devices on which we run our full set of compatibility tests daily. This allows us to continuously improve our software and to deliver on the compatibility expectation.

The perks of QA at Tuxera

Working at Tuxera allows you not only to develop software that is essential and used by millions of people everyday, but to have a chance to test new consumer devices before they even go to the market. From new phones or SoCs that will come out in more than half a year to drones and even car systems, that’s just a glimpse of the things that we get to work with. This is also one of the reasons why there is such a serious approach to quality assurance. Any possibility of failure can put millions of devices at risk, thus ensuring that these risks will be minimal or eliminated is critical for a highly scalable software.

Conclusion

Quality Assurance at Tuxera is not a simple task, it requires software engineers to think outside of the box and to create procedures that challenge the hardware’s potential and pushes it to its limits – bringing safer experiences to millions of users. Interested in joining our company? Check out our open positions and apply now! #MakeItWork