30 Days Of Mobile Testing, day 2: Use a proxy tool, for example Charles Proxy, to intercept the traffic between the app and the back-end. For example, check the calls for encryption and describe your findings.

So… until this day, I don’t think I ever thought about what a proxy tool actually is. I remember reading about using proxy tools for watching online television in other countries.. But that’s it. I never worked with proxy tools before, and I honestly have no idea what .

What is a proxy tool?

If you look up Charles Proxy, and read about what the program does, you’ll get the following details:

Charles is a web proxy (HTTP Proxy / HTTP Monitor) that runs on your own computer. Your web browser (or any other Internet application) is then configured to get access to the Internet through Charles, and Charles is then able to record and display for you all the data sent and received.

So far so good.

I downloaded and installed Charles Proxy on my laptop. Then I opened Charles and after a few seconds, the program started reading and displaying the traffic between my laptop and the network. In my case, the first 40 entries was from an add-on to a java application that I use to play the online browser-based game Kingdom Of Loathing:

Charles tells me that the plugin “relay_Guide.ash” sends information quite often over my network. Interesting. Since the add-on changes the GUI in my browser, it makes sense that it needs to update every time I do something in the game.

Now for the network traffic of my smart phone. I had some problems figuring this part out, but ended up finding a small guide that helped me set up the phone’s wireless connection to go through Charles. In short you need to set your phone’s wi-fi proxy setting to “manual” and enter your computer’s IP. I opened two different apps on my phone, the Pinterest and Asos apps.

Asos sends a lot more information compared to Pinterest. I couldn’t find any non-encrypted traffic, so everything that went back and forth between the apps and Charles basically looked like this:

All in all I now have an idea about what proxy tools do. I’m sure that there are apps out there that display more information than necessary in the traffic, and if that traffic is intercepted, you could obtain a lot of vulnerable data.

30 Days Of Mobile Testing, day 1: Take a photo of your mobile test lab

I don’t own a place or work anywhere with access to a fancy and up-to-date mobile test lab. But that doesn’t mean that I can’t do a lot of testing! My current lab consists of the following:

Samsung 6 smart phone (My own phone)

Samsung 4s (My partner’s phone)

iPod (that I got in a contest several years ago)

Samsung Galaxy tablet

My computer

That’s it.

Obviously this leaves a large gap for the Apple segment. Or any other segment other than Samsung and Android, really. So what do you do when your mobile test lab is not enough?

Emulate the devices

It’s possible to make a mobile test lab out of your laptop. There are countless of websites that let’s you paste in a web-address, and then displays how that website looks like on a certain device. There are also developer tools in your preferred browser that let’s you view a website in “Device Mode”.

Be aware that emulation is not a direct substitute for testing on an actual device. It can take you a long way, but it’s not the same experience. Emulation cannot mimic the way a device is used. It cannot emulate how different shapes of rain-soaked fingers taps on the screen. Or how an app is activated when rummaging around in a pocket.

Invite your friends

If the mobile test lab won’t come to me, then I must go to the mobile test lab. People in your network own many different kinds of devices. Dependent on your target group, they can be a good sample group for the devices used in the real world. Sometimes it’s even possible to let them do most of the testing. The times I’ve asked friends for help with testing, I’ve given them a small introduction to the project and their role in it, asked them to think out loud, and then sat back taking notes and observing their interaction with the devices.

Good friends gathered to enact a test scenario where they were to order items from a web shop on their own devices after having a glass of wine. Or three.

…but plan it beforehand

You can give a lot, a little or no information about the app they are testing. It depends on how biased you want your testers. Make sure to choose your words carefully when introducing the task for your testers. If you tell them that their task is to trash the app and find as many problems as possible, they will do that. And more. To such a degree that their opinions are heavily exaggerated in a negative direction. If you tell them that you and your team spent several months working on this app, they might hold back on the negative feedback because you are their friend – and they don’t want to hurt you, knowing how hard you worked the last couple of months.

When inviting people to help you out with your testing, your most important task is to make them feel like you appreciate their effort. After all, the do take several hours out of their calendar to help you out. I usually either invite people over for dinner, invite people out for dinner, or visit them in their home bringing a little something.

Look for used devices

If you must test how a certain website or app functions on a very specific device, go out there and get your hands on it. I recommend asking if anyone in your social network (LinkedIn, Facebook, Twitter.. whatever) has one lying around. You’ll be surprised at what people keep in their drawers.

You can also look for used devices on sales pages (In Denmark dba.dk and degulesider.dk are good places to go hunting).

It can be hard to explain different IT concepts to other people. How does services, servers, databases or the like look like? Within often large and complicated systems comes the possibility of being in a completely different place when discussing with your colleagues. I know I’ve had problems describing bugs to non-testers, I’ve had problems with not understanding the lingo on a new project, and I’ve had problems when discussing large and abstract systems with my team members.

One thing I want to be better at, is visualizing the systems or concepts that I want to discuss. I like drawing, but I know a lot of people who don’t, and some who are downright scared of it. So these posts are a small visual library of different IT concepts. They take their starting point in test-related concepts, but anyone involved in IT can benefit from them.

A User

I’ve saved the most difficult post for last in this run of summer-holiday-posts. The user. There are so many ways to represent a user, so the way you draw him/her depends on your context, on what you want to achieve.

Note: All the “meanings” or “moods” written under the figures are my own. You can perceive them in a different way. The perceived meaning of symbols are heavily influenced by environment and culture.

Want to explain how a user fits into a large and complicated system?

Draw a neutral representation of a human. He’s just supposed to be there, so you don’t have to worry about his posture or anything complicated. I like drawing stick-men. They are easy and fast to draw, and the simplicity of the lines of their bodies are great for exaggerating body language. And you want exaggeration. No naturalistic and pretty lines here. Why? I’ll tell you in 5 seconds.

Want to explain something in which a user takes an active role?

This is why you want to be able to make easy, exaggerated body postures.

Let’s say you have an IT solution consisting of different systems, where the user can interact with all these systems. It could be a solution for a bank. The user can use an ATM (System 1), go online to see their home banking (System 2), or go to the physical bank and have a meeting with a consultant who helps the user interact with some budget-planning system (System 3).

To symbolize a user taking an active role, draw a full-body character in a posture that resembles what the user should do while interacting with the system.

Exaggeration. Don’t be afraid to draw something that’s physically impossible in real life. Nobody cares. When I’m e.g. happy, I do not detach my arms from my body, and glue them to my ears (Stickman 4). I’m also pretty sure my arms aren’t longer than my legs. But I’m not going to invest several minutes in drawing one simple stickman.

Want to explain something that triggers an emotional response in a user?

Maybe you’ve gotten feedback on a web shop where people are thrilled about the way they place orders, but dissatisfied with the way they search for items. If you were to present these different findings for someone, you could give them a nice overview of which areas sparked which reactions in users by drawing faces representing user’s reactions.

Draw faces that are sad, happy, bored, angry etc. Exaggeration is yet again the key. You want to break down the emotion of your choice to the simplest possible way of representing it.Humans use a lot of muscles when they show emotions, but we are only interested in the basic, visible areas that are affected: The mouth.

Or you can use symbols

If you want, you can add eyebrows as well, to emphasize or specify the mood. In the below image I’ve used the leftmost face throughout the row of faces, and just added eyebrows (Or cheeks). It’s a small addition to the drawing, with a dramatic result.

It can be hard to explain different IT concepts to other people. How does services, servers, databases or the like look like? Within often large and complicated systems comes the possibility of being in a completely different place when discussing with your colleagues. I know I’ve had problems describing bugs to non-testers, I’ve had problems with not understanding the lingo on a new project, and I’ve had problems when discussing large and abstract systems with my team members.

One thing I want to be better at, is visualizing the systems or concepts that I want to discuss. I like drawing, but I know a lot of people who don’t, and some who are downright scared of it. So these posts are a small visual library of different IT concepts. They take their starting point in test-related concepts, but anyone involved in IT can benefit from them.

A server

Servers are generally depicted as either a square computer hard disc as we know them from stationary computers, or large, square boxes with smaller square discs inserted (Which also looks a lot like a stationary computer). I wish there was some cool story behind their look, but there isn’t. That’s just how they look.

Versus real-life

Draw it: The server is a longitudinal square with another longitudinal square inserted somewhere.

If you are in a hurry, just draw a 2D version of the server.

Since the 2D version can be mistaken for a piece of paper, you could benefit from making your drawing 3D.

There we go, a server. Or a stationary computer, if you prefer.

Feel free to submit your own interpretations of the concepts in the comments!

It can be hard to explain different IT concepts to other people. How does services, servers, databases or the like look like? Within often large and complicated systems comes the possibility of being in a completely different place when discussing with your colleagues. I know I’ve had problems describing bugs to non-testers, I’ve had problems with not understanding the lingo on a new project, and I’ve had problems when discussing large and abstract systems with my team members.

One thing I want to be better at, is visualizing the systems or concepts that I want to discuss. I like drawing, but I know a lot of people who don’t, and some who are downright scared of it. So these posts are a small visual library of different IT concepts. They take their starting point in test-related concepts, but anyone involved in IT can benefit from them.

Wireless network

There are two well established icons or symbols that are used when we’re talking wireless networks. There is a difference between the two. One is the transmitter of a wireless network, the other is a hot-spot of a wireless network.

The first (the wireless transmitter) brings associations with large structures, industrial buildings and a certain robustness. This is a wireless signal transmitter that does not move.

Drawing a wireless network

Draw it: Make a bottomless triangle, and add two straight lines across. This is your transmitter pole. Now add the signal by drawing three circles starting from the top of the pole, that grows bigger.

The second (the wi-fi hotspot) is a smaller wireless network, used in cafés, airports and through people’s smartphones. It moves around with its user. It’s not a very “robust” symbol, but it’s something everyone can relate to.

Drawing a wi-fi hotspot

Draw it: Make a dot or a circle (exaggerated here, you can make it smaller if you want). Add three half-circle beams that increases in size, starting from the dot in the centre.

Use whichever of these two that suits your purpose!

Fun observation: In both examples, for the wireless signal (or the “waves”), you could’ve just drawn two (half)circles. However, that just wouldn’t look right. When you draw more than two circles, the viewer knows that the lines are not just a repetition, or a pair of lines. It’s something that goes on and on. You could draw four, but that would be a waste of your time. The viewer gets it at three.

Feel free to submit your own interpretations of the concepts in the comments!