Posted in exploratory testing, mobile testing, production bug, tools

(Live) slow connection mobile testing

(s)lowconnection (2)

Holidays are these times when we go outside, fly abroad, spend a lot of time on wasting it and basically doing nothing. What is a common feature of such places?
Slow internet connection – no matter if it is within your network or WiFi.
I, an addicted smartphone user, find it as a one of the most annoying things EVER!

As I probably wrote at least once, I use my smartphone (Android) as a mother ship 😀
(It would really be a pain if I lost it).
Anyways, I use my phone for shopping purposes as well. What is more, taking into account a ‘typical woman‘ stereotype – I do a lot of shopping. 90% of which I do online. The conclusion is simple – the more time I have to waste – the more I buy 🙂 Having said that, imagine my frustration during online shops explorations, when I do experience slow internet connection.
In addition, I am not talking about websites only, but about well-known native apps, which , as it turned out, are not supposed to handle limited network range.

Today, I would like to present you a true wall of glory, basing on my holidays explorations. I’ve called it – the SlowCo Art Gallery of inspiring issues.
Don’t get me wrong, I don’t want it to be pure hate only, but maybe an inspiring feature to test for all of you working with any kind of mobile application or websites.

How to handle such testing (to avoid irritating me in the future)? Short introduction down below or in one of my old posts here.

Shall we begin?

Pic.1. Where is my CSS? – Example from douglas.pl

Screenshot_2017-08-12-14-24-30

Pic.2. A journey through classes? – Example from H&M Android app

Screenshot_2017-08-16-09-15-07

Pic.3. We don’t know what the hell just happened, so we’ll provide you with a random message – Example from native Twitter app
(
Translation from Polish: An important service, without which this application is not able to run, is currently not available. Try later.)

Screenshot_2017-08-15-21-02-44

Pic.4. We are creative in producing 404 pages – Example from jednosc.com.pl website

Screenshot_2017-08-11-11-00-31

Pic.5. At least one of those messages is valid. Hopefully. – Example from Google Play app

screenshot_2016-08-12-23-11-04

As you can see – the range of failure possibilities is really vast BUT the issue is the same in each example. In the end, all those bugs may seem funny 🙂

On the other hand, we are able to protect our applications and websites against SHAME by performing sets of basic network connection test cases.

How to stress the app, pretending slow connection?
My favorite option is to open Chrome, click F12 on your computer and go to Chrome Developer Tools.
Navigate to Network -> Throttling and select a connection version that you are interested in. Slow your connection down, and see the magic 🙂
You can also connect your mobile app with Chrome Dev Tools and stress it.

throttling

It may sometimes seem as an edge case, but imagine all the people, who live most of their lives in the area of slow internet connection. How frustrating might it be for them?
Hey mobile testers – Let’s make apps great again! 🙂

Like!, Share, Hate, Comment on Facebook
Stalk me on Twitter
or comment down below 🙂

Cheers!

Advertisements
Posted in tools

How does the Internet work? #Balsamiq

hope-you-have-an1

Two at once blog post.

#1 Balsamiq

Balsamiq is an amazing tool for UI prototyping. Any of you could take advantage of it. It helps not only in UI prototyping, but also may be used in any sort of your visual communication with customers, stakeholders or developers. It is simple, free to try for 30 days and easy to use. Balsamiq provides various options for web and mobile prototyping.

What I wanted to visualize today is an interesting question:

#2 How does the internet work

Let me rephrase that question: what happens when you type http://www.something.com into your web browser. My Balsamiq-made info graphics – hopefully – would be an answer.

client-server

What the browser is going to do?

Step 1:

It will try to translate your URL into IP address. In order to do that – the browser checks cache (a place where system saves last translation results). If the cache is empty – browser will send a request to DNS server. The DNS server provides the browser with URL translated into IP address. Finally our browser would know the address (a default HTTP port = 80) which is responsible for GET our request.

Step 2:

Server transforms the request and if everything is OK response with the HTML website and at the same time 200 OK status.

Generally, in order to understand how does the internet work, we would have to know the answer to a question – what the HTTP protocol is.

HTTP stands for “Hypertext Transfer Protocol”. The entire World Wide Web uses this protocol. Almost everything you see in your browser is transmitted to your computer over HTTP. For example, when you opened this article page, your browser probably have sent over 40 HTTP requests and received HTTP responses for each.

HTTP headers are the core part of these HTTP requests and responses, and they carry information about the client browser, the requested page, the server and more.

To make my above graphics simpler – we could present it this way – using Balsamiq again:

http

Hope my short post encouraged you to try Balsamiq and use it within your testing tasks.
In case of any comments –  stalk me on Twitter 🙂

Posted in tools

Vysor – tiny tool for mobile testing

talking-tools

This time – not precisely about catching bugs – rather about improving your work as a mobile tester / developer. I know that there are people (still), who never heard of Vysor. This short blog post is for them 🙂

Vysor is a Chrome extension that allows you to share the screen of a mobile phone on your computer desktop. They advertise it as “A window to your Android” and it really works this way.

It becomes extremely useful when it comes to demo for your customer. It is also useful on daily basis. You are able to connect smartphone to the computer and perform clicks or inputs using your mouse an keyboard. Sometimes it’s really time-saving.

Here is a link to some tutorials – but the tool is pretty straightforward.

And remember – to make all work – plug your mobile phone to the computer using a cable and enable developer options. Enjoy!

Posted in tools

Chrome DevTools – mobile testing

talking-tools1

Moving on – Chrome DevTools could be used in web and mobile testing. Any tester should take advantage of it, because those tools are free and easily accessible. Let me introduce the most useful ideas for testing purposes, maybe you’ll come up with some new ones?

I hope that my super-fantastic screenshots enable you to find all the options and play around.

#1 Resizing and Rotating

As I said some time on my presentation, it is very important to check UI of your website on mobile browsers. Different ones. When we proceed manual tests (or don’t test our websites at all) it may happen that they are useless on mobile devices. And I am not talking about web applications, but also about any website accessible via web browser on your smartphone.

I am able to enumerate number of such examples – the most spicy you could find on my Twitter. If you find your ugly page here or on my Twitter – it’s nothing personal. i just want the web-world to be a better place 🙂

So… to avoid this:

screenshot_2016-05-01-15-48-42

this..

screenshot_2016-08-10-17-50-22

or that…

screenshot_2016-10-22-17-45-45

Use the “Responsive” option in Chrome DevTools in order to make sure that majority of different screen resolutions is covered.

Remember – over 50% of google searches come from mobile browsers nowadays!

responsive

We can select a number of different mobile devices from the drop down menu in order to test with the different screen sizes. Chrome also tells us the screen dimensions of the device in the top menu as well, what is more, you are also able to rotate the screen. Screen rotation is also a common cause of mobile bugs, as the mobile website layout changes when the screen is rotated and page elements may need to reload.

It won’t pretend the real device, but give you lot of hints what other tests should be performed on your application.

#2 Console – debug

Either a developer or a tester is able to debug a website on mobile device (I wrote here how to connect your smartphone with Chrome DevTools).

In your JavaScript Console – you are able to find all range of errors appearing within the application.

As the complexity of JavaScript applications increase, developers need powerful debugging tools to help quickly discover the cause of an issue and fix it efficiently. The Chrome DevTools include a number of useful tools to help make debugging JavaScript less painful.

debug

#3 Network and Throttling

The Network option allows you to observe the order and time of loading elements. You are provided with insights into resources that are requested and downloaded over the network in real time. It very important in mobile testing as users expect that mobile apps would work smooth and fast.

  1. Open DevTools (F12)
  2. Click the ‘Network’ tab
  3. Click Throttling in s row below
  4. Select which type of connection you want to imitate
  5. Reload the page to see assets downloading at that connection speed

network

The Network tab in Chrome DevTools has an option to faux throttle your network, so you can experience what your users might see visiting your website on 3G, 2G and EDGE connections. Throttling option is also useful for visualizing how fonts load.

throttling.png

What kind of errors are likely to avoid with such testing? Let me show you a few examples:

screenshot_2016-08-10-16-50-47

screenshot_2016-08-12-23-11-04

#4 Audit

The Audit panel can analyze a page as it loads. Then provides suggestions and optimizations for decreasing page load time and increase perceived (and real) responsiveness.

#5 Elements

The Elements panel allows you to see everything in one DOM tree, and helps inspection and on-the-fly editing of DOM elements. It is very useful option for those, who automate their testing.

But you’ve been probably heard about this one:)

#6 Location

And this is a great functionality! How to test the app that must work in different locations and presents a map for you – teleport wasn’t invented yet! There is an option in DevTools that allows you to mimic location. The option is a bit hidden:

  1. Open Dev Tools
  2. Click action bar on the bottom right of the screen
  3. Select More Tools
  4. Click Sensors

location

loc

Now you are able to provide a website/application with your desired geo-coordinates and pretend you are there. Remember about reloading the page with every coordinate change.

There is more – all you need is to explore the options.

Have fun with DevTools. In case of any questions – stalk me on Twitter.

 

Posted in tools

Chrome developer tools – introduction

talking-tools1

What is it?

This is what they say on Chrome DevTool’s website:
The Chrome Developer Tools (DevTools for short), are a set of web authoring and debugging tools built into Google Chrome. The DevTools provide web developers deep access into the internals of the browser and their web application.

Nice, isn’t it? I’d say – it is the most underestimated tool for manual testing.

Why don’t you give it a try in testing web?

I’ve prepared this awesome and unique word cloud to present an overview of areas in which you may use them in testing. And there are multiple functions, not only limited to:

  • resizing (change user agents)
  • screen rotation
  • using Console: Debug JS – CSS, Logs
  • network manipulation: Throttling, Performance
  • security testing
  • location change
  • looking for elements (id)
  • taking screenshots
  • clearing cache
  • test recording
  • database checking

picture1

How to enter?

  • Ctrl + Shift + I
  • F12
  • Mac Chrome: View ->Developer->Developer Tools

and here we have:

dol

Is it only for Chrome browser?

ChromeDev-like tools are available at other browsers as well. There is a Firebug for Firefox and Safari Web Inspector in Web Development Tools on Mac.

Is it useful for testing mobile?

Sure it is! As a tester I feel the need to explain how to  start, so:

  1. Install Chrome browser.
  2. Get yourself an Android smartphone
  3. Find a USB cable to connect them together.
  4. Plug your device in.
  5. Type chrome://inspect in chrome browser.

On mobile devices you are able to use Chrome Developer Tools in a very similar way to web testing. You are able to perform throttling, look for elements or check the network connection, what is more, you are also able to check things in database through Stetho.

Nah, it doesn’t work on my mobile…

Yes – it does. All you need to do is enable developer options!

  1. Open settings
  2. Go to System> About phone>Version number
  3. Tap on it 7 times (really)

And now this 🙂

  1.  Open developer options
  2.  Turn them on ( 🙂 )
  3. Allow USB debugging

From now on your device should be visible in chrome/inspect.

How to take advantage of Chrome Developer Tools in details.