Not your typical QA experience

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


Playing ping pong at Tuxera

Summer internships with Tuxera – Rostislav’s story

Internships with Tuxera – Rostislav 's storyRostislav is a Junior Engineer in Tuxera’s QA team. He’s a computer science major at the University of Helsinki. When he’s not studying or working, he enjoys traveling and reading books about history and economics.

Computers – my passion since early childhood

I started learning to use computers before the age of six, and when I was seven, we had a computer at home. Just like other kids, I liked to play games, but my parents would not allow me to play on the computer for more than one hour per day! Another challenge for me was that our home computer was not very powerful, and it could run only some of the games that my classmates were playing (at that time, only two out of my 25 classmates had home computers). Therefore, I had to learn about computer components, their characteristics, and prices in order to persuade my parents to buy them.

When I was 13 or 14, I joined a youth programming club where I received my first education in software engineering. After a couple of years of studying there, I was able to use my programming skills to solve my school math problems, and that felt very satisfying! Later, when I finished secondary school, I learned web application development and did some work in that field as a freelancer. That leads me to today, a fourth-year student of computer science at the University of Helsinki.

It was a lucky coincidence that I visited Tuxera with my university’s student organization. This way I learned what a great company Tuxera is, and immediately applied for a job! That's how I became a Junior Quality Assurance Engineer and started working on Tuxera’s main products – file system drivers and testing tools. I had knowledge of how file systems work theoretically, and now I could finally apply that knowledge in practice!

Testing and ensuring your data is reliably stored

One of the best things about Tuxera is having the freedom to choose what part of the system to work on. There are several components of the quality assurance process. One of them is the "build system", which compiles our software for all possible devices that our customers have. Those devices may be anything from smartphones to drones to automotive navigation systems, may have one of several CPU architectures, and have very unexpected configurations. A part of my work is to make sure that our testing tools compile and run correctly on all devices.

Another part of my work is developing the testing tools themselves. File systems must support a large set of features: operations on file data (reading and writing of data from/to files), operations on metadata (reading or modifying file type, owner, permissions, size, last modification time, etc.), directory operations (copying, moving, creating, and deleting files) and other things that aren't so easy to describe.

As a part of the QA team, I develop and run testing tools that verify the correctness of our file system drivers and tools. Through my experience at Tuxera I have learned that there are many ways how a file system could fail, which means that somebody would lose valuable data. The QA team's work includes developing tools that would simulate situations where data may be lost and verifying that data is reliably stored.

Colleagues that are always willing to lend a hand

I love that all of my coworkers in the QA and development team are eager to help and share their knowledge. Whenever I have a problem or a difficulty with something and ask for help, I always get a very intelligent and thorough answer. Sometimes I ask about very difficult concepts, and despite being very busy, my colleagues always find time to clarify the concepts to me in depth. Plus, when I come up with ideas about new testing features, my colleagues give helpful feedback and encourage me to implement them. One such example is a method of software testing that I learned in a university course on software security. I have successfully used this method to identify areas in which our software could be improved, and most of those improvements have now been implemented.

Final thoughts

I greatly enjoy that there is no bureaucracy and red tape in Tuxera. For me, that means I don't have to write formal requests for basic things and instead rely on common sense. Our managers treat me and other employees as equals, and I have never been told to do something I did not want to do. Lastly, the atmosphere around the office is very friendly and welcoming. Tuxera is the best place I have worked so far, and I am looking forward to tackling new challenges together with the team!