Welcome to our first edition of Real Tech Pros. In this interview series, we’ll be in the trenches with IT professionals from all parts of the business, from C-level to systems administrator, to get to the heart of the pain points and issues affecting their jobs today.
In this inaugural Real TechPros interview, we talk with software testing professional from Germany Daniel Knott on why testing doesn’t get the limelight that shines on other parts of IT, the unforgiving expectations when it comes to mobile app end-user experience, and why enterprises are failing to live up to these expectations in their testing activities.
Daniel has been working in software development and testing since 2003. He started his career as a trainee at IBM, where he was involved in enterprise software development and testing.
Daniel has worked at several companies in various industries where he was responsible for testing Web, desktop, and mobile applications. During a number of projects, he developed fully automated testing frameworks for Android, iOS, and Web applications. Daniel is a well-known mobile expert, a speaker at various conferences in Europe, and a frequent blogger on his own blog. In 2014, he authored the book Hands-On Mobile App Testing.
TechPro: You’re a Senior Software Test Engineer, specifically on mobile apps, at XING AG, a business social network in Germany. Could you describe your role?
Daniel Knott: I work as a Senior Software Test Engineer in our mobile development family. I am part of the Android platform team and focus mainly on manual and automated testing of the XING Android app. Together with a colleague, I plan all our testing activities from the very first idea of a new feature to the rollout of the app.
I support the product owner [the developer] in defining new features to match them with specific domain knowledge of XING. During the ‘grooming’ meeting, I am asking the ‘stupid’ questions no one would ask, to get all the details of the features and to minimize any uncertainties.
While the developers are working on new features, I work on my test ideas and the test activities I’ll execute whenever features are ready for testing. Next to manual testing of our mobile app, test automation is very important, and that needs planning and maintaining, too. For our Android app, we are using the Espresso API in order to simulate the user interactions on the interface.
Besides this manual and automated testing work, I created a mobile testing training for all of my colleagues in order to improve their mobile testing skills. One of my last projects was to establish a beta testing community with real users in order to get more feedback from them — before going live to the general public. As a part of this work, I am also working on the release management process for all our Android apps in the Google Play store.
Related TechPro Story:
TechPro: Why is testing historically a “lesser” position, then say, a developer, in some organizations? With high-profile security breaches and many embarrassing bugs for organizations (i.e. healthcare.gov in the US) raising the importance of testing, would you say that the image of the software tester has changed for the better?
DK: I am in a lucky position, because this is not the case at XING. Software testers at XING have a valued and appreciated position in the agile development team. However, this is not the case for other companies out there. Either these companies have no software testers at all, or there is a lonely tester in the company fighting for our craft, trying to support the developers in delivering better software — with no success.
I think one of the biggest problems is that software testing is often seen as a craft that everyone is able to do. Which is correct to an extent — software developers or product owners are also able to test the software, and they must do it as a part of their job.
However, a dedicated software tester within a team is behaving and working completely different. Software testers have the end user in mind while testing. They have a closer look into functional and non-functional requirements. Besides that, software testers support the team in all quality-related topics: e.g. documentation, adding value to new features to manual and automated testing.
Unfortunately, this kind of work in lots of companies is overseen, has no value for them, or is just too expensive. But the past has proved them wrong. You already mentioned the example of healthcare.gov, which was a complete disaster after going live. Even here in Europe, we heard about it in the news.
Especially in our fast-changing world, where users have very high expectations when it comes to working software, I think companies have no second chance to make their customers happy. Therefore, testing must be part of every software development team.
TechPro: As you’ve just mentioned, users have really high expectations. You’ve even cited in some of your presentations that 80-90% of apps get deleted after their first usage. Does this correlate with a poor user experience?
DK: Yes, user experience is the key when it comes to using mobile apps. Today’s mobile users have extremely high expectations not only with hardware, but also with software. Poor user experience is one of the things users really hate.
For example, mobile users expect an app to be fast, easy, and simple to use. If an app is crashing directly after it starts, it will get deleted. Users expect an app to start or load within two seconds. Otherwise? They will remove it. Apps that are unclear in terms of icons, text, or functions will be removed immediately.
It is very easy for mobile users to search for a competitor app in the app stores of the different mobile operating systems to find the right one for their needs. Furthermore, mobile users can — and will — leave bad feedback really quickly, and this has a big impact on your app.
We as mobile testers must keep in mind that users are on the move — in most cases, under time pressure — and they want to check something really quickly. Therefore, the apps must be quick, too. To not forget the importance of speed and simplicity, I created my own principle similar to the KISS principle which is called KIFSU – Keep It Fast, Simple, and Usable.
TechPro: With such the ability to switch to a competitor’s app with ease, then, why are some organizations still doing a poor job – and where are they going wrong — when it comes to testing?
DK: Mobile apps are still seen as something small. Many organizations think it’s a small piece of software that can be written once by some students, will just be published, and that’s it. We all know that this is not true, but I think several companies are making the same mistakes again like in the 90s, where we saw a similar problem with websites.
I talked to several people from various industries, and mobile apps were not part of their business strategy — that is, until now. Now, many companies start to build their own apps, but it is very hard to find the right, skilled people who have the mobile mindset to develop and test the right app for their companies.
Finding mobile developers is already hard, but finding mobile testers is even harder. Most of the software testers out there focus mainly on web or desktop applications — they have to adapt to mobile as well. It is a fact that mobile pretty much rules the world, and that the PC and laptop era will end soon.
TechPro: You’ve mentioned on many occasions in your presentations that you’re not a fan of emulators. What’s the biggest issue with testing on emulators, and do you see a lot of organizations turning to them as a cost-cutting measure?
DK: The reason is simple — mobile apps will actually be used by the end-user on real devices — not on emulators or simulators!
During your testing activities, it is very important to “feel” the app you are testing. You need your fingers for that — this is nothing you can do with a mouse, a trackpad, or with an emulator/ simulator. As I mentioned earlier, mobile users are on the move using many different hardware and software combinations, and therefore, it is essential to test in the real environments of your end users as well. In most cases, emulators and simulators will reach their testing limits pretty fast (e.g. when it comes to sensor testing). Not all sensors can be emulated or simulated.
Sure, lots of companies see emulators/simulators as a cheap alternative to a real device, but in the end, they will pay the price for the bad results when real users start to use their app ‘in the wild.’
While I am not a big fan of emulated or simulated environments, they can be used to extend the testing activities on your team. For example, developers can use them to run their unit tests and first debug tests. Emulators/simulators can also extend your test automation matrix in order to cover more hardware and software combinations. The most important thing is that a mobile development team is not working with just emulators or simulators! If they do, they will fail.
TechPro: What are the main things you’re looking for when you’re “breaking an app”?
DK: First of all, I am listening to my feelings when starting an app. When it feels slow or sloppy, I start to get into the testing mindset. I start to note down things that are bothering me to investigate in later testing activities. After the first overview of an app, I explore the different sections individually, especially if it is a completely new app or feature I have to test.
When exploration and structured testing is done, I try to “break the app.” I do weird things like rotating the device like hell, or touching and tapping with all of my fingers on the screen. Sometimes, I just leave the app open for a couple of hours on my desk, or I execute huge monkey scripts on several devices in parallel just to see what’s happening. I am creative during that time, especially as it is sometimes hard to reproduce bugs or problems. Mobile testers should give it a try!
TechPro: Testing isn’t only your day job – it’s a passion for you: You’ve written a book on it, have presented at various testing conferences throughout Europe, and founded a testing user group. Why do you think it’s so important to evangelize testing outside of the walls of your organization?
DK: First of all, I love what I am doing. I love being a software tester who is able to understand the entire product from different angles, and support the team to build better software.
Besides my role as software tester at XING, I also love to contribute to the software testing community to exchange my knowledge with others. This all started with my blog, which I created in 2011. I thought it would be a good idea to write down the stuff I am working on, but I never expected that people will read the content I am producing. The feedback I got was really great, I started to talk at conferences about mobile testing, and I was invited to talk at several conferences, which made me really proud and motivated me to continue with it.
Writing a book was never on my list. Several people from all over the world asked me if I knew a good book about mobile testing. And my answer at this time was always ‘no.’ I think Jonathan Kohl got asked the same questions during that time as well, because he also published a great book about mobile testing.
But then on one Saturday morning, I started to outline the first draft of my book, Hands-On Mobile App Testing. And then after a year and a half of hard work, the book was ready. It was an intense time for me, because I was writing every evening after my full-time job as a software tester, and on most of the weekends. But I think it was worth it, and I am really proud of the result.
Contributing to the community for me is natural, and helps me expand my own skills and become a better software tester. While I don’t recommend other software testers write a book — it is really hard work — everyone should think about contributing to the community, because it will help us to raise the awareness of software testers across all industries.
TechPro: What’s the biggest misconception about your job from folks that aren’t in IT?
DK: When I tell non-tech people what my job is, they have no clue what is behind software testing. First of all, they think it involves clicking or touching some buttons — and that’s it.
Sometimes, people also think that I am playing all day long with mobile devices, and that it is an easy job. Well, yes, I am playing with all those nice gadgets in my daily job, and that is one part I really like about it. On the other hand, it is real challenging work, too. Mobile applications are complex products that behave very differently as they are used on the move in different locations around the world.
But still, THE biggest misconception — especially in my family — is: “Daniel, you have studied computer science — can you please fix my computer?”
I think we all know this one.
Additionally, check out Aberdeen Group’s recent research into mobile technology.