Day 7/30 of the Mobile Testing Challenge

Going back to our normal counting and we haaaaave day 7! Today’s task is:

Share your favourite mobile testing tool.

The only mobile testing tools used are the ones from the challenge, Charlie and the Android SDK, but they’re really new on my list. The tools that I’ve used for mobile testing for such a long time are:

hand

and

brain

For the second, I had to look up online because scalping is not something I want right now. My brain surely looks like the one from the picture, nonetheless.

The tools that I would like to use for mobile testing is Appium and Selendroid, both used for testing the UI of native and hybrid apps on mobiles. Also, it would be cool to use a performance mobile testing tool, but I don’t know any. Yet. All in due time.

Test on,

A. Testophiliac

Advertisements

Day 5/30 of the Mobile Testing Challenge

Today is the task from day 5 (I swapped it with day 6, remember?), which reminds me of a really cool song. Oh, don’t click that! You did, didn’t you? I guess I spoiled the surprise yet again, huh?..

Some say that if you give an infinite number of monkeys a typewriter, they will write Shakespeare. I say that if you give me a typewriter, I will write the infinite for monkeys. Which is ∞. Plus a spoiler! But this is just monkey business, along with today’s task which is:

Use the Android monkey provided in the Android SDK to send random commands to your Android app and describe your findings.

So, what do I need first? Android Studio. Kind of difficult, because last time I used it, it wouldn’t see my device. But let’s try this once again. On the laptop this time, so I might be successful.

But, first, what is monkey testing? As said in the task itself, it’s a program that runs a series of commands in a random order on the phone at a high speed. Its use is to see if the phone can take all of these actions one after another. It would be difficult to have that speed as a normal user (although some do type fast), so this automated process gives much clearer results. For more information, check out this page here.

I downloaded Android Studio, launched cmd, went to the folder with the adb file and wrote in the command line to launch the monkey and add the output into a logs text, exactly the steps shown here. But I didn’t know what the package name of the app was as the app that I wanted to test on (Facebook) was already installed. So, I didn’t and just ran the command without that part to see what happens. Of course, the program didn’t detect my device and the log text file was empty. The thing is that I don’t run on an emulator, but on a physical phone, so I had to make this configuration work. I checked out this page and followed the steps that were there. But I got stuck where I had to update the driver software because it wouldn’t see my device at all. So, I started digging some more. I did this workaround where I got stuck again at the troubleshooting part. I checked out this link here and that didn’t work, either. You could say that I’m really stuck now, I have no idea how to make my device appear in the manager.

I guess I failed today’s task… And I could have gotten away with it, if it weren’t for that pesky Android Studio! It’s not over between me and it, though, not even the slightest! If you guys have any other idea or solution to the problem I was having, I’d love to hear it. It’s pretty late and I think I’m not seeing the solution properly, so I’d appreciate the help!

Test on and thanks,

A. Testophiliac

monkey-typewriter

Day 6/30 of the Mobile Testing Challenge

Yes, you read that correctly, “day 6”. I wanted to do this one instead of day 5 because of some technical difficulties (it’s become impossible for me to install things on my computer, and the laptop that is at work right now is out of my reach – literally). So, I swapped them because I didn’t want to lose a day and I’ll finish day 5 tomorrow when I’ll be part of civilization once more.

So, for day 6 (which is tomorrow), we have:

If you are an Android guy, test something on iOS and vice versa.

(I think we can all see the “guy” part, but let’s pretend we haven’t) I am definitely an Android “guy”. It’s not only about finances, but also about customization. I find it really awesome that I can change the way my phone looks, the way my apps look, the way my apps are displayed, *what* apps are displayed and all that.

As I said in my post of the first day, I also have an iPhone (phew!) on which I test different stuff. And the thing that I want to test is how fast Google Maps works on the iPhone 5 with iOS 9.3.5 in comparison to the Android phone, HTC One M8 with Android 6.0.

First step: Starting the app -> iPhone started in 3s, while Android in 5s.

Second step: Moving around the map -> Android seems to have a tiny lag, BUT the iPhone shows me the location of my parents’ home, not the one I am at right now. I can also say that I have never used Google Maps with the iPhone because I didn’t need to, especially that I don’t have a SIM card dedicated for it. iPhone acts strange, Android takes an advantage!

Third step: Choosing a destination and scrolling through the ways of reaching it -> Here the phones show me different things. The iPhone says that the trip takes 29 minutes by walking, the Android says 26 minutes. By transport, the iPhone shows me that public transport directions are not available in this area (!!!) and the Android shows me 3 different buses I can take, each for 25 minutes. If I want to do this by car, the Android is telling me that it lasts 5 minutes, but the iPhone has an extreme strange behaviour. It goes from this:

before-drive-button

To this after clicking on the “Drive” button:

after-drive-button

Look at that small man walking, shouldn’t he be driving? Extremely strange. I tried re-entering the destination and this time it worked fine after clicking on the Drive button.

In conclusion, I can say that Google Maps started much faster on the iPhone than on the Android and also didn’t lag when moving around in the map, but the reason behind this might be because the iPhone has fewer apps than the Android does. Just a thought. Also, the location saved on the iPhone was a weird thing to see, especially that it surely propagated the issue with the Drive button. Plus, iPhone said that I can’t travel back home by bus or any other means of transportation. Whew, what a night!

Test on,

A. Testophiliac

apple-vs-android

Day 4/30 of the Mobile Testing Challenge

This is day 4 of the challenge and my 2nd of being late. Not cool, Testophiliac, not cool… But I’ll get through this, though, one way or the other, so please bear with me!

The task for today would be to:

Share a mobile testing blog with a mobile developer or designer.

A thing which I totally did. I shared a testing blog with Kid Kiwi, a talented mobile developer who’s had two games published by now and one on the way (I wrote about one of his games here for July’s testing challenge). More precisely, I shared this blogpost. Which is about a me sharing a blogpost to a mobile dev who is being shared a mobile testing blogpost that is forwarded to him.

Classy as always!

Test on,

A. Testophiliac

landscape-mountains-nature-lake

Day 3/30 of the Mobile Testing Challenge

Day 3 is up and I am so late because of the moving out and all. But I managed to read a bit about mobile security testing last night from Daniel’s book, so I came in prepared. Whoops, did I already said what was on for today? I guess I did. Check this out, for today you have to:

Perform a mobile security test.

Just like yesterday, this is a task I have never done before, so I’m going with baby steps on this one again.

Read about mobile security testing. Check. Have some background knowledge beforehand about OWASP. Semi-check. Not knowing where to begin with this. Check. Having a list of checks. Double check. But do you know what the funniest thing is? It just hit me: didn’t yesterday end up as security testing? The fact that WordPress was giving me saving failures while my phone announced me that there might be some man-in-the-middle doing horrible stuff to my apps as the certificate from Charlie did not seem to be installed? It sure did!

Test on,

A. Testophiliac

mobile_security_business_risk

Day 2/30 of the Mobile Testing Challenge

Day 2 is here! Man, I remember when last challenge I kept running out of ideas of what to write at the beginning of each article. It’s already happening now… and it’s only the 2nd day! Should I feel worried? I am a bit.

The text for day 2 is a long one because you have to:

Use a proxy tool, for example Charles Proxy, to intercept the traffic between the app and the backend, for example, check the calls for encryption and describe your findings.

Hmm, weird sentence. But I understood some stuff about this Charlie dude. I even looked him up (consider yourself lucky, Charlie!). It is a tool that checks your HTTP(S) requests between the machine you’re working on and the interwebs. Confused about what is a HTTP request? Well, you can check more details here or you could read an article I did in the last challenge here (read the first, it’s more eloquent).

So, I downloaded it, I wanted to install it, I didn’t have any space left, I removed some files, installed it again and it worked! But I tested it on the laptop in the end. I had no idea how to use the program, so I did incredible baby steps to try to test *something*. I set up a proxy from my phone to the Charles server so that every request made by my phone would be visible on Charlie. I stopped the current recording, cleared the session and restart the recording to have a clean slate, so to say. I opened up Facebook, looked at a notification, closed it. Looked in Charlie, there were a few requests visible in the program, some were from apps that I haven’t checked in some time. Then I thought “What if I clear the session again, start recording and restart my phone? What would happen then?” I’ll tell you: Charlie would say that it’s been running for more than 30 minutes and that it has to stop. Just great… But I did get a chance to see all the requests made after restart and I noticed that WordPress did something even before the phone was fully restarted, which seems fishy. So, I did that again. But then I saw that I had to configure Charlie to display the requests made through SSL, task at which I totally failed. I understood what was asked and wanted, but I couldn’t find any answer online. My phone just wouldn’t accept Charlie’s certificate. Oh, Charlie, why hath you abandoned me? But then I noticed that some requests started to get responses and that was definitely weirder.

If seeing the response of my WordPress API worked now, I restarted Android again and looking for the requests. Strange, the API kept telling me “Socket: Software cause connection abort: recv failed”. I thought that maybe this happened because I have just restarted the phone. So, I accessed the app myself and got a 200 HTTP status code, which was perfect. After waiting for some time, the socket problem started happening again and again, so this was something stranger. The strangest thing? The WordPress page that I am writing in right this instant keeps telling me that “Saving of draft failed”. I think WordPress thinks that some man-in-the-middle is currently writing my blogposts around here!

I really AM curious: is that what WordPress is doing? Leave a comment below if you know the answer or if you’re as curious as me, I really don’t know what to make of this.

Test on,

A. Testophiliac

P.S.: When I tried deleting Charles from my laptop, I still had the session turned on, but nobody told me to quit the program so that it could be deleted. I think this is just a huge conspiracy.

P.P.S: After deleting Charles, I could save my post. S-T-R-A-N-G-E.

charles-proxy