Jeroline
All right.
Jeroline
Uh let's get started then.
Jeroline
Uh hello everyone and welcome to yet another exciting webinar from the change leader series break free.
Jeroline
So today we'll be looking at the topic idea to app store expert strategies for a frictionless mobile app testing.
Jeroline
My name is Gerilyn and I'll be your host for today.
Jeroline
So before we get started, I would like to go over a few housekeeping rules.
Jeroline
Your line is currently muted, but don't worry, you can submit uh your questions during the webinar through the chat option that you see at the end of your screen.
Jeroline
And uh we'll answer your questions uh as a part of the Q&A section at the end of the webinar.
Jeroline
And please note that this webinar is currently being recorded and we'll send out the link of the recording through an email so that you can have a watch later or share it with your friends and colleagues.
Jeroline
So with that being said, let me quickly share a bit about the break free series.
Jeroline
Next slide please.
Jeroline
Yeah, thanks.
Jeroline
Uh break free was an idea that birthed out of the need for change in the testing domain.
Jeroline
U next slide please.
Jeroline
So we've seen the testing industry evolve and grow over the decades as a few leaders took the risk to break free from traditional approaches towards testing and come up with new ideas and practices.
Jeroline
We believe that this change can be accelerated at at a much faster pace.
Jeroline
So we took the liberty of identifying and inviting a few change leaders for breaking the mold and embracing change to see the QA industry evolve.
Jeroline
And that's what breakthrough is all about.
Jeroline
Our hope is that these sessions would spark ideas in each one of you to be the change that's needed in the QA industry for the industry to grow into great into greater leaps and bounds.
Jeroline
So with that, let me welcome the change leader for today, Daniel Kot.
Jeroline
Daniel is an expert in the field of mobile testing and quality engineering.
Jeroline
He's currently serving as the head of product quality engineering at Maven Wolf in uh Germany where he plays a key role in shaping the future of testing for his clients.
Jeroline
So with over 14 plus years of experience as lead software uh uh test engineer for various native mobile apps and products, Daniel brings a wealth of knowledge and expertise for this webinar.
Jeroline
So, in addition to his uh professional experience, Daniel has also made significant contributions to the testing community, he's the author of two books, hands-on mobile app testing and smartwatch app testing.
Jeroline
And uh he's also a frequent blogger at adventures in QA.com.
Jeroline
He's a sought after conference speaker and has re recently created his uh YouTube channel about software testing.
Jeroline
So without any further ado, let me let me hand it over to the speaker for today, Daniel.
Daniel
Thank you, Sherolina.
Daniel
Hi and welcome to the webinar for today.
Daniel
I'm really excited to be here and thank you so much for the really nice introduction.
Daniel
So we can at least uh skip one slide which is the introduction of myself.
Daniel
So yeah, let's get started for today.
Daniel
Um today we would like to talk or I would like to talk about with you about mobile why mobile testing is still a challenging topic and how you can uh overcome those challenges.
Daniel
And here's a quick look at the agenda.
Daniel
So basically at the beginning I would like to give you a quick update on the current mobile market.
Daniel
What are like really uh impressive numbers I have to say.
Daniel
Uh I would like to talk about the the mobile user.
Daniel
Why is this important to talk about the mobile user?
Daniel
I would like to talk about some challenges in mobile testing.
Daniel
How you can test uh against different testing scenarios for mobile.
Daniel
How to scale mobile testing across your organization or within your team and how to release a mobile product frequently in order to have a successful and high quality app in front of your customers.
Daniel
And last but not least, I'm going to share some key takeaways.
Daniel
So, let's let's get started.
Daniel
Um the current mobile uh market is still growing.
Daniel
There's a number from 2020 um is that in 2020 more than 1 billion devices have been sold and this number is still increasing which I think is is tremendous because keeping in mind that we have iOS and Android um since more than what is it 15 years now 16 years on the market and and the ecosystems are still growing.
Daniel
So that's cool.
Daniel
Um by end of this year more than six billion people on this planet will use a smartphone.
Daniel
It's also a huge number.
Daniel
So there's a huge potential in building your own apps, building your services for mobile product.
Daniel
Also by the end of this year, uh the mobile app revenue alone will be like above 9 $935 billion, which is also like a big potential for for your revenues for selling your products on on a mobile device.
Daniel
Uh on the other side, we have uh on Apple and on Google, so on iOS and on the play store, we have more than 4 million apps.
Daniel
It's I would say it's a com it's it's a small number compared to the big numbers that we have seen in the beginning like six billion people using a smartphone.
Daniel
One billion devices have been sold and we have only 4 million apps in the app stores but it's only talking about apps that you can install from those stores.
Daniel
We're not talking about mobile um web pages which comes uh um on top of that.
Daniel
What else?
Daniel
Uh 21% of the mill millennials um open their app more than 50 times per day.
Daniel
This is a quite impressive number.
Daniel
It's like um every couple of hours they are like opening it up and checking what's different status.
Daniel
Yeah.
Daniel
Um almost 70% of the US digital media time comes from mobile apps.
Daniel
It's also an impressive number.
Daniel
And with mobile apps, I mean it's like native apps, not mobile browsers.
Daniel
So also there's a huge potential in terms of getting user engagement, selling products and making revenues.
Daniel
Um an average smartphone user, so this is now in comparison to the millennials, uses 10 apps per day and only uh 30 each month.
Daniel
So that the number of apps that a user has installed on his or her mobile device is not too large actually compared to again to the 4 million apps available.
Daniel
And and this is because I also talk to many people uh in on conferences also in the in the testing industry and also to to clients is that they they don't like to have um too many apps on their device because they would like to use only high quality apps and with with a high quality that brings value to them and they're really picky in terms of what is running on their mobile device and we come to that in a second um why they are so picky.
Daniel
And last but not least are some numbers that in 2020 there were more than 150 app uh million app downloads on both of the on the biggest app stores that we have.
Daniel
Also quite impressive number.
Daniel
Okay.
Daniel
So that so far for for the current mobile market just to give you some perspective and some numbers that this market is still growing because when I talk sometimes to people uh that are a bit like hey mobile is not is not growing anymore.
Daniel
Uh the devices they don't have like new really new cool new features.
Daniel
Yes, the the devices from a hardware perspective they are more or less um settled at the moment on a plateau not too many innovations but from a software perspective there's still huge potential.
Daniel
So and with that I would like to talk quickly about why mobile technology changed our lives and maybe you see yourself in those patterns or in those examples that I brought uh for you today is here's an example.
Daniel
So on and this is the pope election uh in 2005 on top you can see that almost nobody was using his or her mobile device to actually take photos and then only eight years later the the humanity or like the people they're consuming everything through their mobile device and this when I saw the first first time this picture I was impressed like oh my god what has happened to us you know we are just using our mobile devices everywhere to capture every moment and this is actually something that this technology changed our And here's another nice example that I found and I would like to share with you today is that in 1999 80 billion photos have been taken on film um by Kodak mainly.
Daniel
Yeah.
Daniel
So that by by plain old film.
Daniel
So you go you took a photo went to a shop and then you had a physical a phys physical image uh to your hand and then a couple of years later jump now to 2015.
Daniel
Uh usually I ask the audience hey what do you think?
Daniel
Well, how many pe how many photos have been taken or on a mobile device?
Daniel
Uh, but now in the webinar I can ask you the question.
Daniel
I will just show you the number and I think it's really impressive because in 2015 two trillion photos have been shared online.
Daniel
That's that's impressive.
Daniel
That's an amazing number, right?
Daniel
It's mind-blowing, I would say, because it's the uh the the interesting part is in the name shared.
Daniel
So only only so two trillion photos have been shared online.
Daniel
Now imagine how many photos have been taken before um in order to to share something.
Daniel
I mean look at yourself like how many pictures are you are you doing like taking before you select one image that you would like to share online.
Daniel
So this number is even bigger and this shows you or should show you actually how mobile devices have changed our lives.
Daniel
And these are just like two examples.
Daniel
I mean look at yourself nowadays we couldn't do everything with our mobile device from travel booking to banking to insurance to uh I don't know order order something buy something online everything you can do with your mobile device that's why it's important we have to talk about the quality this brings us to the first topic of for today is the mobile user so before you start working or before you start developing a mobile app you should be clear about the mobile user and what your customer is all about because this is a key important fact when you would like to work in mobile and testing for mobile.
Daniel
I have some numbers as well.
Daniel
Um mobile users have a really high expectation when it comes to mobile products.
Daniel
So the first one is that in average adult checks every 12 minutes their smartphone.
Daniel
Impressive, right?
Daniel
So it's also compared to the millennials.
Daniel
Um 88% of overall smartphone time is spent on apps.
Daniel
Also impressive.
Daniel
80% of users delete an app after the first usage.
Daniel
And this is this is really tough one.
Daniel
What does it mean?
Daniel
So if users expect or like see the first time they download an app, see any hiccup, any reasons that they don't like it, they're going to delete it.
Daniel
And 80% is a quite large number of users.
Daniel
And this brings me to the next topic here.
Daniel
The top four reasons for deleting an app is a bad design, bad usability, long loading times, and app crashes.
Daniel
So whenever you ship your product in front of a customer, be aware of those four top reasons that your app might get deleted.
Daniel
So I I I can call myself into this uh bad usability for example.
Daniel
I hate it when apps are not usable like I don't understand what they would like to have or if they require a login u login or registration up front and so forth.
Daniel
Yeah.
Daniel
Or it crashes, then I also go just delete it and go jump to the next app because there's always at least one or two competitor apps out there on the app stores that a user can go to.
Daniel
Um, also quite impressive numbers number is that nearly 60% of users will delete an app if it requires a registration.
Daniel
So over the course of the year since we have mobile apps out there since 2009, we had do we have the Apple app store and um users got lazy in terms of signing up to new services.
Daniel
So whenever you have something that the user has to sign up for, keep it in mind that you should um add something like a trial period or that requires no registration uh show movies up front that explain the product and so forth.
Daniel
So don't just blindly show the user registration form is the likelihood is really high that person will go away.
Daniel
And last but not least, uh mobile users expect an app uh that loads under two seconds.
Daniel
So it's also important.
Daniel
Speed really matters.
Daniel
And also again, maybe you you you notice it yourself when you're on the move in the wild out there, maybe commuting on a train and you pick up your mobile device.
Daniel
You just what would you like to check um where uh where the next train departs from from which track and so forth and you start the app and it takes ages to load and while the app is loading you maybe miss your train.
Daniel
This is nothing a user really wants.
Daniel
Yeah.
Daniel
So that's why important speed matters, quality matters for mobile products.
Daniel
And whenever you start in a mobile team and you know that mobile users have a high expectation, it's important to gather some information.
Daniel
So get to know your customers.
Daniel
Yeah.
Daniel
So that's what I usually do is like the first thing I ask basically is get information about the user needs and the preferences.
Daniel
So what are our user base?
Daniel
Yeah.
Daniel
So how where are they living?
Daniel
What are they doing?
Daniel
Which apps are they using?
Daniel
And so forth and so forth.
Daniel
Uh what I do is whenever we we have like a marketing department or sales or customer support department, I talk to them.
Daniel
If we don't have that departments in your company, you can use market data.
Daniel
So collect data from market research studies or even you have tracking implemented.
Daniel
Maybe you are going to you would like to implement or start to work on a on a mobile app and you have already a running web product.
Daniel
That's perfect.
Daniel
You have tracking data in most of the cases there.
Daniel
Use this data to see what kind of devices is your audience using, what are they doing with other devices and other apps.
Daniel
That's really important.
Daniel
And also ask the customer, hey, what do you like to know uh of about a product?
Daniel
How would you like to use our product on a mobile device?
Daniel
That's important.
Daniel
And with all this knowledge, it's important then to outline the most important scenarios for you and for your team and make this transparent.
Daniel
What are the the most used scenarios?
Daniel
What are the customers asking for and then make this transparent.
Daniel
It will help a lot in developing defining user user stories creating acceptance criteria uh developing against those and also test against those and then of course focus on the user.
Daniel
Yeah, that's important something you have to keep in mind.
Daniel
And then as the last point here is whenever you have this data available in your team in your company um you as a tester you can plan your testing activities around this data.
Daniel
This is so helpful.
Daniel
Yeah, it will narrow down fragmentation.
Daniel
Come to that in a second.
Daniel
It will narrow down the complexity of automation.
Daniel
It will also narrow down the complexity of the test environment and so forth and so forth.
Daniel
So getting to know your customers from my from my point of view is key uh to have a successful product out there uh in front of your customers.
Daniel
Okay.
Daniel
So what ne what's next?
Daniel
Uh the mobile testing challenges.
Daniel
Yeah.
Daniel
So what are actually the challenges that I would like to talk about?
Daniel
Um for you or in this webinar is I I brought three challenges.
Daniel
So for those of you who were already working in mobile, you know there are more challenges out there that you have to cover but uh I would like to highlight three of them today.
Daniel
So here they are.
Daniel
First one is uh fragmentation.
Daniel
The second one is I would like to talk about sensors.
Daniel
And the last one is I would like to talk about test automation because I have seen so many mistakes uh made in in in teams when starting with test automation and doing it especially for mobile.
Daniel
So let's take a look at fragmentation.
Daniel
Um I bet fragmentation you have heard about it.
Daniel
I mean this picture already indicates it that fragmentation is or was a big topic on Android.
Daniel
Yeah.
Daniel
So this is a fragmentation report from open signal.
Daniel
It's quite old.
Daniel
It's uh it's from 2014.
Daniel
Um but it just should give you an example what Android fragmentation is all about.
Daniel
So we're on Android side.
Daniel
We have lots of different manufacturers building lots of different devices with different screen resolutions with different hardware and software combinations and this poses an extreme challenge to mobile teams because depending on your customer base you need to test against those different devices and this is it's absolutely not possible right to test on all the different harden device combinations and I brought an example how you go can overcome this challenge on the other side back then let's say in 2010 or 11 or uh when working with iOS teams, they were always laughing at Android saying, "Haha, we don't have this topic on iOS uh fragmentation because back then there was only one iPhone.
Daniel
IPads was just introduced back then and there was no no such thing um as fragmentation, but this has changed as well.
Daniel
So this is not to update its screenshot, but you can see here we have also different screen resolution.
Daniel
So we have from the iPhone SE to the iPhone 12 mini in this example and we now have the iPhone 14 with the with the dynamic island.
Daniel
So we have different form factors, different screen sizes, resolutions and I missed to put the the iPad um devices here as well.
Daniel
So we have also fragmentation topic on the iOS side but it's not too hard to overcome like on Android because iOS is is really or Apple is really good in rolling out updates uh to the customer.
Daniel
So whenever there's a new iOS update um you you get at least for six years old six year devices you get updates so you always have the latest operating system.
Daniel
So the hard device where combination is not not a hot topic but on Android still is a topic.
Daniel
Yeah.
Daniel
So fragmentation is a key a key thing to think about and to deal with.
Daniel
And as I as I promised, I I brought a a solution that you can use that I have used also in the past when working with with many mobile devices uh to find the right device to test against those devices.
Daniel
And the the the idea is that what I've done is I created mobile device groups.
Daniel
So um I I created basically always three groups depending on the customer target base.
Daniel
So I just open up the three groups here.
Daniel
Yeah.
Daniel
So we have group one, we have group two and we have group C.
Daniel
All of them they have a different priority.
Daniel
So we have priority one and group one B and C.
Daniel
And depending on the um on my target group on the target customers what I have done in the beginning the research I know that for example in this example that the most of my users the I potential customers bringing lots of revenues in they fit in this category group one with highest priority.
Daniel
So they have high-end devices and with a super powerful hardware, latest software.
Daniel
Group B is still important for me, but the device have like a mid-range devices that they are not so powerful and so forth.
Daniel
And group C are like yeah smaller devices, lower um hardware capacity and also old operating system versions.
Daniel
But I still see them in my statistics that they are like maybe like below 10% of usage.
Daniel
Yeah.
Daniel
And what I've done then I I have those three groups depending on my customer um target group and then I select the devices that I see in the tracking or in the app stores for example devices that are used and then and in each group I put 10 to 15 devices uh to to put them in there.
Daniel
And then when I perform my my manual testing my my my my normal testing activities I from each group I pick two maximum two to three devices and I use them for manual testing and test against those requirements because then I know okay if the the software is running on those devices I have at least 80 90% of of everything covered.
Daniel
So there's not too many things that can go wrong.
Daniel
Yeah.
Daniel
Um when you worked with with automation it's a it's a different topic because sometimes it's hard you know to select the devices and put them to server or CI/CD pipeline in that case I always use um device clouds such as ploudy for example so you can select um all the different device combinations from ploudy put them into your CI/CD pipeline and then run your test automation against those devices you can also use it for manual testing but I prefer for manual testing I prefer a real device because that's uh you feel you feel the product in your hands how it feels in terms of performance of responsiveness and so forth.
Daniel
Yeah.
Daniel
So this is this is a really easy um solution to overcome the device fragmentation building groups in combination with device clouds that's perfect thing and you can just uh go ahead and work with that one.
Daniel
So now that we talked about uh device fragmentation let's jump to device sensors.
Daniel
Um as you can see there are like lots of sensors here in this example.
Daniel
So u most of the devices not all of the devices have all the sensors that are written down here but like modern devices they have a face ID so face unlock they have um ambient light sensor they have a proximity sensor location based sensor magnetic pressure fingerprint gyroscope I just reading out all of them.
Daniel
So they're packed with multiple sensors and depending on your app if your app is using those sensors you have also to test against those sensors.
Daniel
Yeah, in order to um yeah, be sure that everything works out.
Daniel
So a good example is for example the acceleration sensor which is responsible for rotating from landscape to portrait mode.
Daniel
So this is this is basically in a sensor that is packed in every mobile device and also the your app should support those events or this this sensor because it's if your mobile product is used in landscape mode and in portrait mode this is really a cool thing for the user.
Daniel
But what happens if you rotate let's say 20 40 times?
Daniel
I found a buck back then.
Daniel
Uh we had a loading spinner in our screen and uh I just was doing like this this movement rotating device from port to lens script mode and out of nowhere um the the circle loading indicator became an ellipse.
Daniel
You know it was always calculated on the on the screen rotation on the on the redraw of the of the screen.
Daniel
And so I this was a bug basically because we were like doing something wrong with the calculation based on the orientation of the phone.
Daniel
Um or for example location based sensor is a good example working with GPS.
Daniel
So if you're working in um for a product that uses the GPS you have to test in different environments.
Daniel
We come to that in a second on the testing scenarios.
Daniel
Yeah.
Daniel
Um so this is important to keep in mind.
Daniel
The sensors they have a they have a high challenge that you have to think of.
Daniel
Also maybe it's important to note down what kind of product software product features you have implemented and what are the the sensors being used on your mobile device.
Daniel
So what is the hardware that we're using in order to um create the product.
Daniel
So it's important and also based on that you can you can drive testing activities and also different mobile devices.
Daniel
Again um so that's what I just mentioned is like would know which sensors are used by your product.
Daniel
Create a strategy how and where you will test against the different sensors because if we just go back I mean not all of the devices they have a humidity sensor maybe this is a a sensor that you find in outdoor devices that you can use while I don't know going on an expedition for example I bet not not too many apps are using this sensor but it's important to know hey which sensors are we using and to create a strategy around that yeah if you don't have the sensor in the in the app or it's not being used and you don't build against those sensors you don't have to test them.
Daniel
Yeah.
Daniel
Um this is also important then to keep the device groups in mind and verify against those devices.
Daniel
So having the list of devices and then also the sensors is important to to have it in the in the device group and then of course test the app in the real environment before each release because the sensors they usually interact with the surrounding environment.
Daniel
So um as I think I come to that in a second in an example is um the GPS topic.
Daniel
If you go in a city center with high building with lots of metal and frame and concrete, the the connection is usually not that good, right?
Daniel
So that's why it's important to test in different environments, being outside in the countryside, being on top of a mountain, being in a valley, what is going to happen with your mobile device and how is your mobile app reacting to that, right?
Daniel
Is your um app is showing the correct error message, for example, or is it crashing or what what's going to happen?
Daniel
Yeah, you never know.
Daniel
That's something you should keep in mind and test for.
Daniel
Um okay and last but not least the challenge I would like to talk about is automation.
Daniel
Um whenever I talk to to teams and also to clients and customers like they they usually put up the frame like hey let's automate everything that but this is not possible.
Daniel
Yeah, this is absolutely possible and there is also no silver bullet.
Daniel
That's al always something that I tell them because sometimes they tend to to select the most hyped tool that is available in the market.
Daniel
Hey, let's go for I don't know Epium, let's go for May, let's go for whatever is out there.
Daniel
But this might not be the right tool for you.
Daniel
Yeah.
Daniel
So that's that's why I'm putting the topic here of there is no silver pallet.
Daniel
Every tool has its pros and cons.
Daniel
Um so it's it's important to start simple with automation.
Daniel
Yeah.
Daniel
So to really to to think about like what are the things that we need to automate, what are the critical parts, the most um important parts for our business, what is bringing the revenue and so forth and so forth.
Daniel
A risk assessment here is always helpful to actually start the the conversation.
Daniel
Yeah.
Daniel
Um then what also important is automation should support your testing activities.
Daniel
It should never replace testing.
Daniel
That's important to keep in mind.
Daniel
Yeah.
Daniel
Whenever I use uh mobile testing or testing in general, test automation in general is it should help me as a software tester to have more time to think about the tough challenges on the product.
Daniel
Yeah.
Daniel
To see um what are the things especially when you have transitions from one product to another on the API side for example or what are like let's say non-functional requirements like security or accessibility that's usually something that you can't you can automate but to some extent only and using test automation will help me in order to have more time to do the real hard things uh in in our product development cycle yeah um also one important thing is is you need to invest time to find the right test automation tool that fits your needs and requirements.
Daniel
Yeah, that's also important that that's what I said meant also before with never just pick the hype tool.
Daniel
Yeah, maybe the first thing that you should do is you should make um a list of the technology used in your product.
Daniel
So what is your text stack?
Daniel
What is the backend system?
Daniel
What's the API?
Daniel
What is the front-end system look like?
Daniel
What technologies which programming languages are we using?
Daniel
And based on that information, you should um create a selection criteria catalog for example.
Daniel
So define some questions or some some yeah some questions that you would like that you would like to ask the tool.
Daniel
Hey, can you can you handle this?
Daniel
Can you handle that?
Daniel
And then make a list bullet point list and checklist saying okay the tool has to fulfill at least the top five of my checks here before it fits into our category.
Daniel
Yeah.
Daniel
And if you do that, if you invest this time up front, you will save a lot of time later on because then you can once you have decided the right tool for your environment, you can start writing and automating against those things.
Daniel
And then of course invest time into your CI/CD pipeline and the testing infrastructure.
Daniel
Yeah, this also see what I've seen in the past is yeah, we picked a tool.
Daniel
It's great.
Daniel
Let's use it.
Daniel
We it's it's running on my system, it's running on my machine, but once you would like to integrate it into a C CI/CD pipeline or you want to integrate it in a in a more like sophisticated testing infrastructure, it's failing and then you have to start all over again.
Daniel
That's important that you have to keep in mind.
Daniel
And last but not least, you should also of course get the support and the buy in from the developers.
Daniel
Because I think that it's really tough for you as a as a lonely software tester if you're working alone in a team to compete with the with the development power uh in terms of traditional manual testing, test automation, test data generation and so forth and so forth.
Daniel
So that's why important to get the support from the developers also involve them already in the in the selection process of the tool um because then they will also help you in writing the automated scripts.
Daniel
Yeah, so that's important.
Daniel
Okay, that's so far for the uh automation challenge for this uh webinar.
Daniel
Now I would like to talk about the mobile testing scenarios.
Daniel
Yeah.
Daniel
And also what I mentioned before that for example the environment has a huge impact on your testing.
Daniel
Yeah.
Daniel
Where you testing app has this huge impact on the testing result.
Daniel
We I I brought three examples on the next slide.
Daniel
So it's important to define your testing activities and to find the right location where do you want to test them?
Daniel
Uh because I mean the office is is cozy and nice and maybe home office or office depending where you're working from.
Daniel
But this is always mo in most cases for mobile it's the wrong environment because you always have a strong internet connection.
Daniel
You have um the same surrounding surrounding area elements that have an direct inference to the product and that's why it's that you have to leave the office and to test the app outside in the real environment where your customers will use it in the long run.
Daniel
Yeah.
Daniel
So that's why the app use cases and purpose should guide you to find the right testing spots.
Daniel
Yeah.
Daniel
That's bring us brings us back again to the you need to know who is your customer.
Daniel
What are the mobile users?
Daniel
Where are they using your product and if you know that you can also plan your testing activities around this.
Daniel
When I was once in in a mobile team working on an app we were we were building an app that was with the app you were able to book a a bus to travel.
Daniel
Of course, I had to ride the bus and to test it, right?
Daniel
I mean, because there was like a planned route that the bus has has taken every day.
Daniel
And while doing this, while testing on the bus, I found so many issues because of uh no internet connection, slow internet connection or I don't know what whatever I found there.
Daniel
It was it was amazing to see what can happen in the real life world uh rather than sitting in a in a nice and warm office with a strong internet connection.
Daniel
So that's why it's important the test environment to keep in mind.
Daniel
Um that's what I said already depending on the app use case and location um it differs from app to app and the text tech also influences the testing scenarios.
Daniel
Yeah.
Daniel
And here are three examples that I um usually talk about is the first one is this slope like being in in a winter she resort area where you can go skiing or snowboarding.
Daniel
Um on top of a mountain you might have a really strong internet connection but down in the valley you might have no.
Daniel
So what's what's going to happen with your app or how is your app handling the the code the cold winter the cold or the using with a close can you interact with elements.
Daniel
So these are all things that should guide you in your testing um strategy in order to to map out and outline the the perfect scenarios for you and for testing activities.
Daniel
Another extreme is the the example with on on the beach.
Daniel
Yeah, this should be like you have strong sunlight so you can really hardly see stuff on the screen.
Daniel
So this might be something for for designers to think about.
Daniel
Maybe you have to enlarge the control elements or use different colors in order to to compensate for this scenario.
Daniel
And the last one I I already spoke about spoke about is the the city environment like what's going to happen in the city if you ride a train underground trains for example what's going to happen with with your product is it crashing is it uh showing the data correctly?
Daniel
How is it handling slow internet connection and so forth and so forth?
Daniel
Yeah.
Daniel
So the environment is an extreme um um has an extreme impact on your testing scenarios.
Daniel
Yeah.
Daniel
So what else?
Daniel
What else can you do when you would like to talk about uh test against mobile?
Daniel
So I brought some of the scenarios here as well is interrupt testing.
Daniel
Something that you can perform.
Daniel
You can check for permissions.
Daniel
You can check the device standby.
Daniel
How is the device handling of standby mode?
Daniel
So putting the device in foreground background the app and see how it reacts.
Daniel
Sensors.
Daniel
We already spoke about accessibility testing is becoming a huge topic in the next few years.
Daniel
Security is always important or third party apps.
Daniel
How are third parties um interacting or influencing your product?
Daniel
We once had an issue with uh a third party app and we got really bad reviews actually in the app stores.
Daniel
It's like what's going on there?
Daniel
I tested it.
Daniel
It's working out fine.
Daniel
And then we reached out to that customer and found out that that person has had installed the um a third-party keyboard app and this keyboard app was just higher than the the the default keyboard app that was running on the on the operating system and our app was just like stupid or was not handling this this situation.
Daniel
So the keyboard app was blocking a really important control UI element.
Daniel
So the user wasn't able to use it.
Daniel
Yeah.
Daniel
So that's why it's important.
Daniel
It was for me it was an aha moment like okay I need to test also against third party apps at least to keep them in mind.
Daniel
Um gestures is important to keep in mind on right do you have multiple fingers that you can use multitasking.
Daniel
Um another example I usually talk about is the battery to to not talk about all of these now is battery consumption.
Daniel
So is your app using too much battery or eating too much battery?
Daniel
This is something users hate.
Daniel
They will immediately go away, delete the app, and leave a bad review.
Daniel
Um, you should also keep in mind that some of the the devices or manufacturers when you reach a certain battery level, let's say 10% for example, they cut out or like they turn off hardware features such as vibration mode for example or TPS.
Daniel
So in case you reach that battery level, how is your app handling this situation?
Daniel
Yeah.
Daniel
So something you should keep in mind when testing.
Daniel
On the other side, what happens uh when we talk about local storage uh what happens if the mobile device has no capacity left and you would like to operate uh on on big images on big files uh on on the app.
Daniel
Is the app handling that situation?
Daniel
Is it showing a proper message to the user?
Daniel
Is it guiding the user to maybe go to the storage system and to delete some apps?
Daniel
These are scenarios you should keep in mind when testing against mobile.
Daniel
If of course your app is using um this this this capacity of a phone and because of that is the different scenarios I usually say okay we need to invest lots of time in manual testing on mobile that's why I also created this cheat sheet that you can find on my blog um um later on or you can also go to my blog and search for mobile testing cheat sheet it's free for you to to use I brought so many all these scenarios you can't read here myself included um but it's something that you should keep in mind that mobile testing requires lots lot of manual testing still.
Daniel
Of course, you can do lots of automation and use for example PC cloudy as a cloud provider to to like um decrease the complexity of fragmentation but the end you have to test the app in the environment your customers will use it right because your customers they they don't use your app in in always in a strong internet connection.
Daniel
Yeah, that's why it's important to test in a real environment.
Daniel
That's why it's also important maybe to establish a beta testing community to get early feedback um for your apps.
Daniel
You can do internal testing with colleagues.
Daniel
Also something that I've done in the past in the company I was working for is we were blocking the app in the app store saying okay you're not allowed to download this app and you have to go to our internal to to download the alpha versions to give us feedback.
Daniel
Yeah that's important.
Daniel
Um automate the easy part.
Daniel
I mentioned it already and then of course get help and support from experts in case you don't know where to start and how to start with uh with mobile testing.
Daniel
Okay, so far for the uh testing scenarios.
Daniel
So now let's get into the uh releasing of a mobile product and I brought for you uh some slides.
Daniel
So that's why I would like to talk about why is it important to release mobile products frequently.
Daniel
Um users expect of course a bug free app free.
Daniel
We all know there is no such thing as a bug-free software but users expect it.
Daniel
They have high expectations as we have seen in the beginning of the webinar they tend to delete to remove the app really quickly.
Daniel
So that's why you have to be really careful with the quality and the testing.
Daniel
Um, in order to release more frequently, um, what I would usually suggest is you have to have planned code free releases for app releases to help, uh, your organization, your company, your team, um, to, uh, to ship products frequently and to give teams guidance for teams.
Daniel
This is especially the case when we talk about in a second on the scaling topic.
Daniel
Um, defined code freezes help teams to organize the activities around those dates and we come to that in a second in an example.
Daniel
Um it's helpful to have for example regular releases for example every two weeks.
Daniel
So every two weeks once you have done your agile methodologies your scrum your canon approach depending what you're doing um every two weeks you do a public release.
Daniel
This this tend to be helpful at least when where in the teams that I was working with.
Daniel
Um when working with multiple teams in the blue color here working with release chain trains can help and um I will show you also an example release 10 in a second how you can use that one.
Daniel
Um every team then should of course catch the train if they would like to release uh and would be part of the release.
Daniel
And last but not least you should freeze the code.
Daniel
So the planned code free that you do should be done automatically.
Daniel
Yeah.
Daniel
To avoid late passengers.
Daniel
With late passengers, what I meant is if you have uh no code freeze automatic in place.
Daniel
Then maybe 1 minute before the code freeze or 1 minute after the code freeze, people come, you know, late passengers running on a track and they would like to catch the train.
Daniel
And this is usually not the best thing because this code tend to be not tested.
Daniel
Yeah.
Daniel
So that's something you should keep in mind when introducing some processes in um releasing mobile products more frequently.
Daniel
So I already mentioned the mobile release train also I wrote a blog post on that thing um but what is a mobile release train?
Daniel
So mobile release train is a planned code freeze um that teams can blend activities around.
Daniel
It has planned and fixed release dates and it defined the clear process on how to get into that release train.
Daniel
That's important especially if you're scaling your mobile activities across any let's say across 10 15 or more teams.
Daniel
You have to have clear processes how to be part of that mobile release because once you scale across your organization you in most cases you have one central team focusing on the infrastructure on building the app and releasing the app and this train helps the team in order to organize everything.
Daniel
Um the train should always be on time.
Daniel
There should be no excuse and missing the train means you have no feature life in the next upcoming release.
Daniel
Yeah, that's that's important.
Daniel
It's it's a tough challenge to introduce such processes.
Daniel
I have I faced it myself.
Daniel
Um but it's worth it, you know, to to introduce so such a such a process in order for scaling and to have a a high quality product out there.
Daniel
Yeah.
Daniel
Because if you have imagine you have like 10 15 teams working on a mobile product and only one team is failing it completely crashes the app maybe and then all the other teams might suffer as well because the user not using the product anymore or they can't use it.
Daniel
So that's why it's important to have this clear process in place.
Daniel
Yeah.
Daniel
And never accept late pass.
Daniel
That's important.
Daniel
Okay.
Daniel
Here's an example uh release train for you.
Daniel
So in this example we have a 10 days of coding.
Daniel
So after the 10 days we have an automatic release saying we have the master branch we take everything from master create a release branch test on that release branch everything automated do some last manual checks there and then we are good to go.
Daniel
So once the 10 days and then maybe the next day we do the testing activities, we can already upload to Google and Apple.
Daniel
Yeah, because on Apple side it takes a few more t days in order for the review process and once we're waiting for Apple to review this process, we can already have a beta testing in place.
Daniel
So once you have a beta testing for example established, you can push that app already to this customers already to get some early on feedback.
Daniel
Yeah.
Daniel
Once you have accepted the um or you got reviewed from from the from the play store from the app store and the play store you then you can decide okay let's go for 20% of our users.
Daniel
So we use a stage rollout system then we roll out to 20% of users for two days just to see it's like like a traditional smoke test see is there some smoke coming out somewhere is the app crashing so we do monitoring and so forth and so forth and then we roll out to 50 and 100%.
Daniel
And after the code freeze um so after this phase the teams already start over with coding and with that you have rolling releases that you have that you have to go on and follow up on and that's helpful.
Daniel
So what is happening?
Daniel
Um yeah uh once you release the app of course you should monitor the app release, check social media, check the crash logs, uh check the the KPI dashboards that you have in place to see if the app um fulfill your KPIs, your your defined goals in order to see that everything is running out right.
Daniel
And this is also something that you have to that you have to do some some task somebody has to take over this role.
Daniel
Yeah.
Daniel
And in case you have to uh you see a critical back bug or a critical issue, you have to react faster because otherwise you lose your uh your customers.
Daniel
Yeah.
Daniel
So that's important.
Daniel
Okay.
Daniel
And now last but not least, we're coming to the scaling mobile testing across your organization topic.
Daniel
Um so how do you like to scale?
Daniel
And basically scaling depends on three topics.
Daniel
The first one is people.
Daniel
Mobile knowledge in all disciplines is important for scaling.
Daniel
So you have to train your people.
Daniel
You have to invest in time in trainings in education to get the the mobile skills to your people.
Daniel
Yeah.
Daniel
And to also get rid of the web thinking especially in the beginning 2010 2011 when people came from from web development into mobile development they were still thinking like a a web developer or web engineer or a web user and this has to be changed.
Daniel
Yeah.
Daniel
So finding the right people with mobile development skills isn't easy.
Daniel
That's why you need to invest a lot of time in in that position to scale because once you have this uh mobile mindset and quality minds in the company, it's much easier for scaling.
Daniel
Uh the second topic is the tech stack.
Daniel
Yeah, it's I mentioned already a couple of times is invest time to analyze the mobile tech stack.
Daniel
This is something you all have to know.
Daniel
Yeah.
Daniel
Is is it the same in all teams is a question you should ask because if it's not the same in all teams, it might be a potential risk in terms of quality for releasing and yeah for sustainable growth for your product.
Daniel
So streamline the text uh text tech across the whole company the standards standard tools standard um pipelining um processes and so forth and so forth and every team should use the same tools because only then you can use you can go in the same direction and to scale across multiple teams add more teams to it add more people and so forth of course educate the teams in the different tools also um a big topic coming back to the people topic a bit and because then it's much easier to to scale and to and to become faster.
Daniel
And last but not least, of course, you also need to provide guidance in using, for example, CI/CD or cloud devices or the latest testing frameworks and so forth and so forth.
Daniel
So that's why I I usually recommend uh customers to actually um embed a platform team, use a central platform team that is taking over this complete analyze of the text and also supporting the the the the tool selection process.
Daniel
Yeah.
Daniel
And last but not least, um what's important for scaling is communication.
Daniel
I mean this is sounds maybe boring and you have heard it like three times already in in other in other directions, but communication is is still one of the most important things um to scale across company uh across an organization because you have lots of stakeholders you have to talk.
Daniel
Yeah, you have not only the release testing and release process to establish these processes with other developers with other product designers.
Daniel
You have to streamline everything but you also have the customers on the other side.
Daniel
You have the stakeholders on this side and communication is key.
Daniel
So you have to balance out everything and this is um important for testers as well because we need to talk to developers product design and so forth.
Daniel
So that's why it's important to have strong communication skills and something that you should always um also try out to to to filter in the hiring process.
Daniel
Yeah.
Daniel
To see how this person can communicate.
Daniel
And it is the the last point I already mentioned before is establish a central platform team to handle releases, your tooling and infrastructure because this helps you in the long run to be successful and yeah to ship a great product and yeah with that we come to the takeaways for for today's webinar and these are as you have seen mobile technology they have changed our lives.
Daniel
Yeah the mobile market is still growing still something to keep in mind.
Daniel
So whenever you start now with mobile, it's not too late.
Daniel
You can still grow.
Daniel
You can still reach millions of customers, billions of customers actually, and do to have a good solid product with high revenues.
Daniel
Um, keep in mind that mobile users have a high expectation to your product and services.
Daniel
So they don't like to see app crashes, slow internet connections, and so forth.
Daniel
So that's important to get to know your customers and interact with them.
Daniel
When I was working in one company, we were inviting every four weeks, we're inviting real customers to our department and we're asking them real questions in front of us, having a copy coffee with them, showing them prototypes and this is really helpful to interact and to get to know them.
Daniel
Define your test scenarios based on your app and text.
Daniel
It's important.
Daniel
We have seen it in some examples.
Daniel
Identify your personal challenges.
Daniel
Not personal in terms of your personal as as a human being, but the personal one within your team, within your company.
Daniel
Start simple in every in every section being it mono testing, being at uh test automation, being at pipelines and also from time to time reconsider your approach because the mobile market is changing, the tooling market is changing and always have an eye an ear you know on the and and listen to what's going to happen out there.
Daniel
Get help from experts to educate your people in in case you don't have them.
Daniel
Um scaling requires processes and more communication.
Daniel
I mean this is something that people usually hate when you start introducing your more processes but um especially for mobile it's important to have these processes in place otherwise you will lose in the long run.
Daniel
Yeah.
Daniel
And then of course last but not least take small steps when scaling across organization.
Daniel
Don't do too many things at the same time because this is also something people don't like.
Daniel
So start easy maybe with one team with two teams.
Daniel
See what approach is working and then um grow bigger and and and start accelerating your business basically.
Daniel
And with that um I would say thank you very much um for attending the webinar.
Daniel
Uh let me know your questions.
Daniel
I've seen already two um not not sure if there are more questions.
Daniel
Looking forward to them.
Daniel
Should I directly go into the the questions?
Daniel
Okay, I'll go direct into them.
Daniel
Uh Puja is asking how to come up with a test strategy when app releases are frequent.
Daniel
Um how to overcome the uh when when app releases are frequent.
Daniel
Yeah, when they are frequent of course.
Daniel
Then uh when I was working in the mobile team, we had app releases every two weeks and um I was also working not only in in one mobile team on products but we had also 30 teams developing or shipping every two weeks a product on mobile.
Daniel
And we use these processes actually to first of all to to guide the the shipment or like the the product releases and then we were always like uh talking in the discovery phases and refinement phases of the next product cycle um what is the product all about and on which level we would like to test.
Daniel
So I was always including the developers saying okay what are the parts you would like to automate?
Daniel
What are the parts that I should automate?
Daniel
What are the parts that we need to test on?
Daniel
Yeah.
Daniel
So this was something that we would we're doing in an agile way every two weeks and of course before we we usually do like a big kickoff with let's say we were going for a new milestone in the app we sit together and had a at a kickoff one day kickoff and we were doing um we were outlining basically the development strategy and the testing strategy and we were noting down on my or on any other tool that is available there and we were outlining what we would like to do and then we were making this transparent not within our team not only within our team but within the whole company and this helped a lot actually to yeah to have a solid test strategy and to adapt and to let to get participants in there.
Daniel
We we were doing test sessions bug bashes from time to time you know to to eliminate um the different problems that we have seen helped a lot but yeah you need some time for doing that I hope it answers the question um there's a second one is there any certification to become a software tester there are plenty of them I mean there's like uh just use your favorite web browser search engine and search for software testing certificates um there are like plenty of them out there even for mobile.
Daniel
Yeah.
Daniel
So, depending on what you're looking for, there are some that you can that you can do and have multiple choice exams.
Daniel
There are some that you can do in in to like like a study that you can work with multiple testers and have an exam a written exam later on.
Daniel
So, there are multiple ones like just just search them.
Daniel
Yeah, you will find them easy.
Daniel
Um, next one also again from Can we use cloud services like Pcloudy to test apps in low network?
Daniel
Yes, I think so.
Daniel
You can do it.
Daniel
Of course, you can usually um um I'm missing the word now.
Daniel
You can throttle that was the word I was missing.
Daniel
You can throttle the bandwidth of the of the connection of the device.
Daniel
You can say okay I would like to emulate uh the uh slow internet connection or no internet connection.
Daniel
This is something you can do.
Daniel
Yeah.
Daniel
Next one.
Daniel
How to test for battery usage related cases?
Daniel
Should it be real time uh or is there some cloud service available?
Daniel
Um not sure about cloud services available.
Daniel
Um maybe Jolina, you know, I'm not sure if you if you guys support this on ploudy.
Daniel
Um but I can tell you that what I have done is that um you can use for example the IDE um or Android Studio or um Xcode for example.
Daniel
You can use some profiling tools there to see what the battery usage is all about to see if you have like um long running process processes or threads that are consuming too much battery.
Daniel
And what I was also doing sometimes from time to time I was just taking two two devices with the same um hardware software combination.
Daniel
I was using the release product on one device and the new release candidate on the second device.
Daniel
Both phones were charged 100%.
Daniel
And then I was using the product uh simultaneously um manually on both devices and then I was cons checking is the battery consumption different.
Daniel
This is just some some gut feeling battery test but this is already some it gives you some indication already um if this is something you would like to do.
Daniel
Yeah.
Daniel
Okay.
Daniel
Which software is used to test mobile app?
Daniel
Uh what do you mean by software?
Daniel
I mean software in terms of test automation scrum for building test automation.
Daniel
Yeah, you can use appium myestro you can use espresso xy test xui test um gray color selenium.
Daniel
So there there are multiple tools that you can use actually in order to automate against mobile apps.
Daniel
Um but these are tools for writing test automation scripts.
Daniel
But you can also use tools such as a proxy tool for example to see to to check the traffic between the the app and the back end.
Daniel
You can use a tool like um Postman for example to the API.
Daniel
You can use um ADB which is a built-in Android debugging bridge on Android to do some really quick and easy tests on a mobile device.
Daniel
So like there's lots of devices and not a lot of devices a lot of tools out there for mobile that you can use actually.
Daniel
Uh there are more questions.
Daniel
What are the tools for performance testing for mobile apps?
Daniel
Performance testing is difficult um because you have to keep in mind that the mobile app uh has basically three layers or three layers that it depends on.
Daniel
So the first one is the app itself.
Daniel
The second one is the network that is sent like handling the data transmission and the third one is the back end.
Daniel
So usually an app relies on a backend service.
Daniel
So you need to to do performance test on at least the app and the back end because the the the network is sometimes hard to performance test because you rely on mobile data networks.
Daniel
So I suggest usually to use a backend tool or like a tool for testing your performance on on the backend systems like I don't know there's Jet or other tools that you can use out there for for doing performance test on on on mobile apps.
Daniel
You can use also similar tools.
Daniel
I don't have them in in mind right now but there also performance testing tools that you can use for mobile apps and then you can see where you have the bottlenecks.
Daniel
Yeah.
Daniel
Um this tool is paid or free.
Daniel
Um the tools I mentioned some of them are free some of them are paid.
Daniel
Yeah.
Daniel
So it depends just just search out um also I think I did some YouTube videos on on mobile testing tools.
Daniel
You can also follow up there to see um what tools you can use and what they're used for and good for.
Daniel
Yeah.
Daniel
Okay.
Daniel
Are there any more questions?
Daniel
I don't think so.
Daniel
If you have more questions, you can also find me online on my uh LinkedIn or on Twitter.
Daniel
Uh search for my name and I bet you will find uh you will find me and uh you can ask me questions, send me messages, happy to help out in entire in terms you have questions.
Jeroline
Thank you Daniel for answering those questions.
Jeroline
It's quite an inter interactive session and for the great presentation as well.
Jeroline
Um so it was a pleasure having you with us today.
Jeroline
Um and I'm sure our audience gained a lot of expertise and insights on mobile app testing from your talk.
Jeroline
So uh that's all for today I guess.
Jeroline
Uh thank you all for attending.
Jeroline
So we hope you found the webinar to be valuable and informative.
Jeroline
Uh remember to keep breaking free and pushing the boundaries of what's possible in the QA industry.
Jeroline
So see you at the next break free webinar.
Jeroline
Have a great day.
Jeroline
Bye.
Jeroline
Thank you.
Jeroline
Bye-bye.