Blog

Quality Sense Podcast: Eran Kinsbruner – The future of mobile applications

Welcome to another episode of the Quality Sense podcast! In this second episode, we have an amazing exchange between our host and COO, Federico Toledo and our guest, Eran Kisnbruner, DevOps Chief Evangelist for Perfecto. Eran and Federico converse about everything related to mobile testing. What is special about it and what the future might hold for mobile apps.

Episode Highlights

  • How Eran got started on Software Testing.
  • How to improve the developing cycle in mobile apps.
  • How is 5G going to affect our testing?
  • How simulators and emulators have evolved to support our testing.

Relevant Links:

Listen Here

Episode Transcript

Federico:

So, Eran, hello and welcome to the show. I’m really excited to have you here in the show. Welcome. How are you doing?

Eran:

I’m good. Thank you for having me.

Federico:

So I’m also really excited that we are going to meet in person in a couple of weeks in a conference. This is something that I really miss, going to conferences, meeting people. It’s great that with the online virtual conferences, we have the chance to participate in conferences all over the world, but there are some things that are not the same, right?

Eran:

Oh, definitely. And I think the human touch after two, actually even more than two years of pandemic, having face-to-face engagements and actually getting more feedback live from practitioners… Because a lot of things have changed in my mind during the pandemic. A lot of realization happened, especially in the remote testing abilities, software testing, and development. So I’m looking forward to seeing you actually, and the entire team, in a couple of weeks at the show.

Federico:

Yeah. Yeah. Yeah. So to start the conversation, I would like to know more, I’m curious about learning about your experience in support testing, how you started in support testing, and maybe take the opportunity to introduce yourself to the audience.

Eran:

Of course. Thank you, Federico. So my name is, as you mentioned, Eran Kinsbruner. Today, I’m a Chief DevOps Evangelist for Perfecto and BlazeMeter under Perforce. I’ve been in this space for nearly 22 years now. So quite a lot of time and [crosstalk 00:02:01]. And I studied software programming, software development and mathematics, and that was my degree back then, late 1999. Well, it’s a lot of time. And then I started working for a hardware-software company that I was a developer in the beginning, but as part of the development, I was doing also a lot of validation, software, hardware testing, validations, and stuff like that.

Again, as I was developing, I started finding this seek for bugs, seeking for cord violations and stuff, more exciting and more interesting for me. And that’s when I decided to move to a company, a small one called Sun Microsystems. After a while it got acquired by Oracle, and I was leaving and breathing Java, Java for mobile for almost seven years. And over there, I built tools for debugging and testing mobile applications. Actually registered many patents during my work with Sun Microsystems managing remote testing teams. It was a lot of fun.

And since then I was moving all in on software testing. Again, software testing means not just automation and code, but also exploratory in all types of testing. But I understand that this was my world. And since then, of course, now we are in 2022, I’ve done many, many things. I worked in many companies, Texas Instruments and General Electric and others, and even wrote a few books. We’ll touch on them maybe later on in our conversation. But that’s actually part of my journey to where we are today.

Federico:

That’s impressive. And I understand that in the last years you were focusing more on the mobile applications. Right?

Eran:

Yes. Yes. I joined Perfecto nearly 10 years ago. And Perfecto back then just started talking about cloud for mobile devices and how you can build and test mobile applications. Back then it was mostly Android and then iOS, it became in even more dominant. And I obviously loved… I used to work on mobile in the J two E words with, with some Microsystems, but obviously it all changed with Android and iOS. And Perfecto in my mind back then, were the leaders in building cloud computing for mobile devices and mobile application. Back then, it seems weird. Why would someone need these things?

But obviously, as Android evolved and iOS evolved, we’re now flooded with so many smartphones and tablets and permutations of these things. And even more unique applications like Flutter and Progressive Ware, which are running on web and mobile. So I dived deeper and deeper into these mobile technologies and hopefully became an expert. So I’m trying to know and understand what I’m talking about when you talk about mobile testing, because it constantly changes. It constantly changes, and maybe, Federico, with your permission, I would just say one example. Okay.

Federico:

Yeah. Please go ahead.

Eran:

Because people would say, okay, so mobile, mobile is stable, right? It’s not like five years ago or six years ago when you were developing an application and it crashed. Well, I tend to disagree because, as testing practices and development practices evolved, mobile technologies evolved. Now we are dependent on multiple complex networks, IoT, Connected Cows, these kind of things, foldable smartphones, secure screens today with iOS 15. I don’t know if you run into this challenge, but iOS 15 comes with secure screen.

So if you have a sensitive banking application, which you need to test, I am talking mostly from a testing perspective, it blanks your screen, so you cannot really see the login screen. You need to do things like orchestration instrumentation and stuff like that to really get access to these secure screens. Same goes with Android. So things are evolving and changing even though mobile is no longer a new thing. So it’s a constant evolution.

Federico:

And there are new problems appearing with that evolution, right? It’s like, we are not only solving the old problems, but we are creating new ones. And maybe with your experience, can you tell me what are the most common challenges now arising in the mobile testing space? Because I face this question frequently, which is special about mobile testing?

Eran:

Yeah. There are many challenges which, by the way, are very constant and never going away. One of them is coverage. Okay. How can I make sure as an application developer, that my application will get installed and run and function? We are also performance engineer experts. So, from a user experience perspective and also a functionality perspective, how it’s going to walk and run across my end user devices. Okay. I work with customers in the healthcare area. These guys sell very elderly users, which needs the applications for working with the doctors and the physicians. They’re using older devices. They’re not keeping up. They’re not updating all the operating systems. I am young, young at heart, at least. So whenever a new iOS version comes up, I’m upgrading it like any other young guys. Same goes with Android.

These demographics actually keep all the smartphones, bigger screen, but all the operating systems. So that’s the coverage challenge. That’s one. So from a development perspective, he shouldn’t care who is the end user. Obviously, he should care, but he needs to make sure that regardless of the end user, the application works, gets installed, and performs. And oh, by the way, accessibility is becoming critical requirement and mandatory requirement. So how do I make sure that I have the accessibility support on each element on my mobile application? Accessibility IDs, screen readers that can really read everything that I have within my application? It’s not just fine if your application isn’t accessible, but it’s your end user experience here that counts as well. So coverage, accessibility, performance.

Let’s talk a bit about performance. So, as to mobile devices, mobile users today are always in the move. What do I mean by in the move? They’re transitioning from wifi to 4g, to 5g, to LTE, the greater networks, moving from one building to the next, connecting the device to a car with Apple Auto and Android car services. How do you make sure that these transitions are not impacting the end user experience? There are no disconnections? I can tell you, I face a lot of disconnections and I need to kill many times the application when I’m moving from one network to the next, because the session is stuck. And I suffer from degradation in user experience in performance of the networks.

Federico:

Yeah. And you’re a special user because you have a technical background. I don’t know what happens with people that don’t have the knowledge of what’s happening and, how can I solve this situation where I feel stuck and it’s not working, it’s not solving the problem I have? So I understand the frustration for so many years, and how we are responsible for avoiding that type of frustrations.

Eran:

Definitely, and we can take it even to the next level. Regardless of the age today, your smartphone or tablet is your banking application, right? No one is going any longer to his banking. No one goes to the office or the bank, maybe just for an ATM, if you want to withdraw some cash. And by the way, you don’t need to do it as well. You can do it also from your mobile and you just go to pick it up from an ATM. You don’t need the user interaction. So when you are dependent, you are counting on your smartphone as being your life, including the healthcare applications, the connected car, and then the financial, like insurance, like GEICO and other applications.

I’m a GEICO user. I’m not promoting them, but if I, God forbid, have an accident, I’m in the middle of the street, GEICO is my application. If it doesn’t work on my smartphone or it doesn’t connect to the network and I cannot submit my claim or send my picture over the internet, I’m stuck. Okay. If I cannot deposit my check with my mobile device, I need to find an open branch that I need to go to. And there are not that many open branches because everyone shifted to mobile. So there is a lot at stake now because mobile has become so much an in integral part of our lives. This-

Federico:

That’s very good.

Eran:

… is by the way… It’s good, but also that’s part of the challenge in my mind.

Federico:

Yeah.

Eran:

And maybe last challenge, which not many people are talking about and they should, and that’s security. Okay. We’ve talked about functionality. We’ve talked about accessibility. We’ve talked about coverage. We’ve talked about performance, and we’ve talked about the different use cases, the car, the bank, the healthcare, but let’s just talk one moment about security. Mobile by definition has the security layer of the operating system, but we are all traveling and we are moving from one wifi in the airport. Now we are back to traveling. So different networks come with different security constraints for good and bad. And I think that security becomes today another key pillar in our testing.

And over the past few years, security was, in my mind, nice to have. People didn’t pay too much attention to security. But as all these branches of service providers are getting closed in favor of mobile services, security now holds a huge chunk of everything that we have. All of my life, all of my passwords for my banks, I don’t want to say maybe… It’s recorded. So yeah, everything is on our mobile device today, security, the wallet, you pay with your smartphone. So security needs to also be shifted towards the development stages with static analysis, dynamic code analysis, scanning obfuscation of sensitive data. So you can be on top of everything as an application developer.

Federico:

Yeah. I’m thinking of the many situations that we face now with working from home, or working from wherever you are. There is sensitive information in my computer, in my phone. And in so many cases, I go and work from a coffee shop or someplace where I don’t know how the wifi is configured. So, I rely on, not only in the connectivity and this layer of security, but on the security that the applications offer and manage. Right?

Eran:

And the thing which needs to bother us as users, not just as developers and testers, is that many of the mobile applications today are based on open source libraries and APIs, which sometimes the application developer doesn’t know much about it. It’s just a library that he is using, is dependent on. Even mobile banking APIs, these are given things that are part of a mobile application, that are doing all the authentication process and everything like that. So I think that the application developers need to be on top of not just their own code, but also try to scan what we call software composition analysis. They need to scan also the underlying open source libraries that are being used by their application. And they can do it by monitoring HIGH files and other synthetic testing that they can do inside their labs.

And by the way, coming from, not just Perfecto, but also BlazeMeter, what we have heard from many of our customers, and this is what we have released recently, what we call test data management, this is another enabler to these challenges. If you are able to test at such high scale, by inserting into your testing pipeline any types of user profiles, hundreds of combinations, username, password, emails, locations, dates, illegal, negative, positive, out of boundaries data, you are not solving everything, but you are mitigating some of your risk in testing, by applying test data at scale within your software testing cycle.

So that’s something that I’ve seen. Just been at the conference in Chicago with a lot of financial institutions. They’re definitely looking at test data as one of the… Because they cannot do testing in production of such sensitive information, and they’re relying on synthetic test data that can help them mitigate, and maybe mimic some of the production activities.

Federico:

Yeah, absolutely. This is a typical challenge in any type of application, right?

Eran:

Yeah.

Federico:

There is something particular to mobile development that I’ve seen, that there are different tools or different approaches in order to improve the life cycle, I would say, because it’s different… When you are developing a web application, you can get feedback constantly. You can make changes and send them to production in seconds. But it’s not the same with mobile applications. The life cycle, the times are longer. So, is there something that we can do in order to improve that situation, to mitigate the risk involved with that?

Eran:

There are a few things which actually I have seen transformed over the past few years. I’m not talking about decades, I’m talking about two, three years. Many practitioners today, I’m talking about developers and test engineers, are mixing between virtual devices like emulators and simulators and real devices. Emulators and simulators are baked into the IDEs, the Escort for iOS, the Android studio for Google Android applications. And by getting access to these virtual platforms, they cannot, sorry, they can scale the testing, but they can also bring left, the feedback that you’re talking about. As they’re writing their code, as they’re fixing a bag, code is also fixing bags, they can easily get the feedback, maybe not the maximum feedback, but certain level of feedback from virtual platforms without building full blown environments and devices, which to your point, yes, takes more performance time, environment set up time, maintenance time.

So this is one thing that I’ve seen. Mixing of virtual devices earlier in the cycle, and then following up with real devices, smartphones and tablets later on, in the better stage, in the integration testing stage, et cetera. A second thing that I’m seeing is the dividing of test technologies or test frameworks between software test engineers and developers. I see developers using more the native frameworks. They’re using, as I mentioned, virtual devices, they’re using the native frameworks, XCUITest or iOS and Espresso for Android. These are very fast, white to gray, I would say, black box… Sorry, white to gray box, not the black.

The black box testing I will soon talk about. But it’s mostly white box testing, which obviously gets them access on the code with blank points and whatever they can do to get feedback. So especially an XCUITest used by developers is another way of accelerating feedback and mitigating the [inaudible 00:19:03] that you mentioned. The software test engineers, on the other end, are using Appium, and Appium is the black test framework, because you get a binary compiled IPA or a IPK on a mobile phone, and they just do a functional end-to-end testing at scale on real devices, but that’s on the Appium font.

So, as I mentioned, this balance, it’s one answer to your question actually, it’s one new order in the world of mobile, which is XQI Espresso on the mobile testing frameworks used by developers together with virtual devices, Appium with real devices used by [inaudible 00:19:43], one complementing the other to accelerate feedback, to extend the scale of testing and coverage, and hopefully, release the better applications to production.

Federico:

Of course. So it’s mainly thinking of different ways to design the feedback loops and getting information in order to improve the application, yeah?

Eran:

Exactly.

Federico:

Absolutely. You mentioned something that made me think of another question I have related to simulators and emulators. I remember when everything started with mobile, I don’t know, 10 years ago, not much more than that, right?

Eran:

It boosted 10 years ago significantly. Yes.

Federico:

Yeah. So I remember that there was a gap between testing in a simulator than testing in a real device.

Eran:

Right.

Federico:

How is it nowadays? Did the tools evolve? Can we trust more on emulators and simulators? What’s your perspective on that?

Eran:

That’s a great question, Federico. I totally agree with you. A few years ago, virtual devices, emulators and simulators, weren’t that sophisticated. They were limited by capabilities. Hence, you were doing testing on something which you needed to redo on a real device because of the capabilities. Nowadays with Apple and Google taking it seriously, you have a very robust set of capabilities. I would say up to 60% to 70% of your use cases, you can do today on a virtual device by developers, within their IDE. They can do it also, by the way, without doing too much marketing. Perfecto hosts these virtual devices. When you do want to scale and get the feedback at scale on virtual devices, you can do it also in the cloud.

But since Android 11, we are now already in Android 12, Android 11 came with a foldable smartphone simulator, or, sorry, emulator for Android. It was a collaboration between Google and Samsung. And now you can actually do development and testing on a foldable emulator within the Android studio. So that’s how much this system evolved. So, yeah, it doesn’t run on your capabilities of a smartphone. It utilizes your desktop or your Mac or your windows OS, which is smarter and much stronger. So it’s not real user conditions. But for development purposes, for end-to-end test cases done by mostly developers, these platforms have significantly evolved. Authentication, biometrics, location, even some visual testing can be done on these platforms and they are trustworthy.

Federico:

That’s amazing. And then of course, we need to complement that with using a real device, because you cannot test the user experience on an emulator, right, because you have a different interface. You don’t use your fingers, you use the mouse or the touch file, or…

Eran:

And it’s not even the same hardware, right? You are using different chipset on a smartphone and you are using your own Intel processor or whatever, Apple processor on your PC, which is always charged, connected to the internet. You want to check different network like 5g. You want to check SIM cards. You want to use the Google plan, the App Store. In some virtual devices, you don’t have access to the stores. So it’s a different environment. This is why digital devices have evolved up until a certain point and they’re trustworthy, but you cannot complete your entire cycle just relying on these devices. You need to complement them to your point with your devices. I would say starting the integration testing after the developers have done, the BAT, right, they build acceptance testing within the CI Jenkins. You can do it parallel and run some regression end-to-end testing on real devices.

Federico:

Amazing. And you mentioned something again now. It’s another topic I wanted to ask you about. What about 5g? Is it something that we should take into account in our testing strategy? Is it affecting how the applications behave or how we should test our applications?

Eran:

Totally, totally. I think that the network… We mentioned earlier that the virtual devices have evolved significantly. The network led by the network providers, the Telcos, the operators, have evolved significantly, and they’re allowing us to not just get more services with the faster cadence, you can download it at scale, you can do a full set of video calls and GPS navigations. It’s so extensive speed that you didn’t use to have in the past. But 5g is not just about speed and user experience that you get on the mobile phone. It’s a new layer of use cases like smart cities, connected cities, right? When you are on a 5g and the network is relying also on 5g when you are driving in the cities, in New York, I live in Boston, obviously it’s full with 5g.

You see all the commercials, T-Mobile, Verizon and all the other big Telcos, they’re putting network of 5g connectors throughout the cities, as infrastructure for smarter technologies. So the cars, your smartphones are all connected the well, if you like, which means when you are driving through specific tunnels, you are driving through a specific junction, the network maybe follows you, good or bad, knows where you are, but it can also offer you more services. Okay? So this is where 5g, it’s not just about my smartphone, it’s also about everything that is connected to my smartphone, my network. And by the way, when I’m in the car, I don’t use my smartphone. The car is my smartphone, right? You have the set box in your car and that’s your smartphone.

So, there you go. Everything that you have on your smartphone is being nivelled into your car and it needs to walk because you’re getting notifications, messages, calls, location-related stuff based on where you are driving. Okay? So, everything is connected. That’s why I’m saying, the user journey is now more dependent on network providers on 5g that supports you wherever you are, in the car, outside of the car, in a coffee shop, in the middle of the street, et cetera.

Federico:

I can’t help you, but thinking of this idea that in the future, we will not need testers. And actually the technology is every day more and complex. And I think of more and more testing scenarios, and you are describing just a few of them, right? So, testing is getting more challenging and we have to consider more situations, more different possibilities and interoperability between different components and, wow, it’s getting crazy.

Eran:

I think that your keyword here is interoperability and complexity. And by the way, I’m speaking at so many conferences and testers, practitioners, are always concerned about the future of testing because there is AI, machine learning. Would someone need me as a tester in five years? To your point exactly. They will need you. They will need even more of you because the stakes are so high, the complexities are becoming so great, which you need to think outside of the box, because everything can happen because you depend on so many different things, connected everything, right? So testing is not going anywhere. It’s just becoming more and more smart.

Federico:

More and more challenging, more entertaining, I would say.

Eran:

Definitely.

Federico:

Yeah. Well, and thinking of the modern R Apps or the new trends that you see in the market, or even thinking of NFTs, blockchain, these type of things, do you see something emerging on the mobile field that we should be aware as testers and be preparing ourselves to be better tested for that new situation in the future?

Eran:

I see something which is very clear specifically to mobile, and I think that’s the modern digital applications. Up until quite recently, you had three types of applications. You had mobile web and native or hybrid, right? So meaning you go to the Google Play, you go to the App Store, you install an application, and it’s native application installed on your device. Or you went to a cnn.com from your Safari or on your iPhone or from your Android device, and you get a hybrid or responsive web application working on your smartphone. This is all news. What I see today is the emerging of technologies like Apple introducing App clips, progressive web applications, Flutter applications, right?

We used to talk about react native. It’s also becoming all because Google is now pushing Flutter. Flutter is a single code base written in a language no one knows. It’s Doubt, right? That is almost like Java, but it’s a new language. Okay. And the beauty of Doubt or Flutter is that you build an application in this language, and clicking the compile button can deploy it to Linux, Mac, Windows, iOS, Android, Google Fuchsia, six platforms with a single code base. And that’s mobile, of course. Apple App clips. Apple App clips, if you are a gamer and you go to web application on your iPhone, you can download and play a game without even installing the native application.

You play one level, two levels. If you like it, within the web, you click on this link and you download and continue to level three. Okay? So it’s a semi-type of web application driving you towards native. So to your question, Federico, a total change that I’m seeing from a planning perspective is in the type of applications that we can, as users, consume, again, led by PWA, progressive web applications, Flutter and these uplifts. So I think that many, many more consolidations is going to happen more towards a single code base rather than separation of user experience and different code bases.

Federico:

I think this conversation’s been very, very useful for me in order to catch up with all what’s happening in the mobile field, because it’s not something static, it’s something very dynamic, it’s changing and evolving all the time. So thank you so much for sharing all your experience with us. I have a few questions to wrap up the interview. One is, if you have to recommend a book, which one would you like to mention? And yes, you are allowed to mention your books because I know you have so many already published.

Eran:

So thank you. Yeah. I have written four books from the Digital Quality Handbook that covers the basic of mobile technologies and web technologies, and it was followed by a Continuous Testing for DevOps Professionals. And this is how you shift left, how you do mobile and web application development and testing in an agile reality. I then developed a book… By the way, most of my books were developed with industry leaders. It’s not just my brain. It’s a lot of efforts coming from the community for the community. So the third book that I wrote was about AI machine learning in software development and agile. So many use cases. Some of them we actually mentioned without even knowing about them during this conversation.

And the last book that was released just a week or two before this conversation is about front-end web application development testing. And this is featuring Cypress and playwright and puppeteer, and selenium, and cordless tools for the font-end developers, making sure that all these modern web applications that we have talked about, progressive web, responsive web and Flutter can be well tested. So these are books that I have written, and we can provide the links to the audience afterwards, if they’re interested. I also recently read a book about a joint friend of ours, Senior Performance Guide. I totally recommend his book, a lot of insights.

I actually recommended his book a few weeks ago, also on LinkedIn because I really loved it. So that’s another great book. And lastly, I read also quite recently the book, I think everyone knows about, Accelerate. That’s the name of the book. It’s really good to understand. Not just about DevOps and how [inaudible 00:33:46] development can be accelerated, but a lot of metrics, a lot of research that was put within this industry. So Accelerate is another book that I can definitely recommend for.

Federico:

Thank you so much for those recommendations. I will share the links in the notes of this episode. So it’s easier for the audience to get to the books. And is there something else you’d like to invite our audience to do or access your blog, article, talks, reach out in social media?

Eran:

So few things. A) I hope I’m going to see you later this month at Star East. So if any of you that are listening wants to see us face-to-face at Star East in Orlando, come. There is also a virtual program. So if you want to hear me speak, Federico, and the entire great speakers that are in the program, Star East is coming and I definitely recommend. I have my own personal blog on medium.com that you can find on Google. And I have my own blog site, continuoustesting.dev. If you want to follow it, when I’m writing blogs, you obviously get notified.

And lastly, if you care about things that I’ve mentioned during this discussion, talking about functional and non-functional testing for mobile applications and web applications, to perfecto.io. If you care about API testing, performance testing, go to blazemeter.com and get some free experience, free trial that experience. See if it helps some of the challenges that you, Federico, asked me about. So this will be my recommendations.

Federico:

Amazing. There is also a webinar coming in the next few weeks that we are going to be also talking about performance challenges, right?

Eran:

Yes, yes, totally. And I hope we can put a link for this webinar also in the invite. It’s definitely going to be an exciting one. I’m looking forward to see it and be part of it.

Federico:

Yeah, of course. Eran, thank you so much for your time, for your knowledge. It’s been a pleasure to have you here. It was very fun as well. So thank you so much.

Eran:

Thank you, Federico. The pleasure was all mine. Thank you so much.

Federico:

Bye-bye.

Eran:

Bye-bye.

271 / 432