Mobile testing

Today smartphones and tablets are “Hot”. These devices are new but already have over billion of users. Because they are popular, they must be reliable, secure, and have high quality. As their usage increases so does the need for more apps. That is why mobile app developing and testing are the “Hot” jobs in the Information technology industry.

Smart phone is basically a combination of a computer and a phone so it is a device more complex than laptops. There is a difference between testing mobile applications and testing laptops applications. Many people think “Software is software, if I can test software on laptop, I can test software on smart phone.” Although testing principles are the same but techniques are different and require more focus. Before building or testing mobile app, you need to know that there will be millions of users to use it. Releasing a phone with many bugs could be a disaster. Customers could complain and company may lose millions or billions of dollars immediately. What will happen if the phone does not work? What will happen if the data on the phone disappear? What will happen if users cannot make a call? What will happen if the text message goes to the wrong user? What will happen if the security of the phone is compromised? The mobile industry is a low profit due to intense competition so company must rely on high volume sale. Therefore brand name is important as the mobile industry is very competitive, if customers are not happy, the brand will be damaged.

In mobile applications, testing is mostly performed using emulators or remote device access services. Remote device access services allow you to connect over the internet to real devices which are provided by companies for your testing use. However, final testing should always be performed on the real phone that the customer will buy in the shops. You need to understand that there are many things happening below the application level on a phone. Even if you use emulators you should pay attention at the user interface (UI), you will find that there are many things happening at the same time. While your mobile application runs, the phone is still interact to the network, positioning your location, receiving calls, sending texts etc. There are many things that you may not see. What happens when you play games on your smart phone and receive a call, and a text message? What happens when you download a video and a text message comes in?

Mobile phone architecture consists of several layers and you must test them all. Testing consists of hardware level testing where you test the device driver layer. This layer controls the interface to the processors, screen, memory and the radios themselves. This is a highly specialized area and requires knowledge of hardware to get started in. The next layer is the protocol layer where the mobile phone has a number of different radios in it that enable it to talk to the mobile phone networks in different areas and countries, and also for Bluetooth, Wi-Fi, etc. Testing at this level is sometimes called protocol stack testing, and means testing against various specifications such as 3GPP. This requires knowledge of signal processing and radio engineering. You must calibrate where the network signal is changing, record and analyze the results, to see if the phone is able to work in all sorts of different signal environments. The next layer is applications testing where you make sure that the software in the phone works. You must understand how the operating system of the phone you are testing well so you can design the test according to the company specifications (i.e., iOS, Android, Windows 8, etc.) You also need to test for certification compliance; all phones are certified to certain standards. Without meeting these standards then it is impossible to sell a particular application to an apps store. Most mobile applications stores have certain submission criteria so you need to make sure that you meet these requirements?

Mobile phones have limited memory and limited processing capacity, so it is important to test how the devices work when it is full of capacity. It is also important to think about battery life whether the battery run down quicker with your app running and what happens when the battery runs out? Good battery life is very important to users, what happen when user needs to make a call but the battery is dead? You must test for usability. Usability means testing it on real users on how they interact with the application? How easy is it to use the application? Difficult-to-use applications are often deleted once users find it is difficult to use. You need to know how the application fit the small screen. Is the text easy to read? How does your app look on a small screen is very important. Does the app run fast? Do users feel they are waiting too long for a screen to load or response to be received? Usability is very important in the mobile devices because screen is smaller; it’s more difficult to interact with it

As you know the difference and willing to work on it, there is great reward as the need for mobile app developers and testers is increasing fast. If you deliver good app, it soon be downloaded by millions of users and you can get rich fast too. Few years ago, three developers create “Angry bird” and expect few thousands users but it was downloaded to almost a billion times and made them millionaires. However, mobile app requires high quality and it is the quality of that helps people to buy the new phone so the key job is not develop app but testing app to make sure it works well and that is why many mobile testers make over $120,000 dollars a year.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University

You may like