Tuesday, August 2, 2011

Getting Started with Mobile Apps Testing - By Anurag Khode

  1. Basics of Software Testing:-

Whether you are an experienced or a fresher in this field, knowledge of Software Testing basics is essential in any kind of testing you perform. Even if you are starting your carrier as a Mobile Apps Tester, you need to know all the software testing principles, Software Testing Techniques, Types of Software Testing, Objective of Testing and other basics in Software Testing. There are many sites and resources available on internet, which can guide you about the same. If you are just starting your carrier in this field, don’t bother to accumulate all the complicated theories of software testing in your mind at once. Go step-by-step. It is strongly recommended to undergo some good training program in software testing which can give you some practical experience of testing. Please avoid mugging complicated testing theories.

2. Basics of Telecom:-

As you have decided to work in Mobile Domain, knowing the Telecom basics will always give you an added advantage. Mobile Apps Testing is not just about testing of mobile product or application. You will surely get an advantage if you are aware of other things in this domain which revolves around Mobile products testing. 2G, 3G, CDMA, GPRS, GSM, HSCSD, SIM, SMS, WAP are some basic things of telecom that you should be aware of. You can check out some more details about the same here .

3. Awareness about Mobile OS/Platforms:-

There are many Mobile OS/Platforms present in the market. Android, iOS( iPhone), Blackberry OS(RIM), J2ME, Symbian, Palm, Windows phone, Samsung Bada , Nokia Meego and so on. It is very important to have knowledge about these Mobile OS/Platforms as a Mobile Apps Tester. Awareness about the capabilities and limitations of these platforms give you confidence to differentiate application bug with platform/OS limitations. You may find some more details about Mobile Operating Systems here .

4. Get familiar with your own Mobile Phone:-

I am sure many of you must not even be completely aware of which Mobile Handset model you are using, what is the OS in it and what is the software version your phone is having. If you are a beginner, just start exploring your own cell phone. Just open up and try using internet on your Smartphone. Use Wi-Fi, GPRS. Check out how you can format or perform Factory reset on your device (Be careful).Check what is the IMEI number of your phone. Try to upgrade OS version of your Android device. Experiment with different settings and user permissions on your phone. In short, be familiar with all the features and functions of your mobile handset and it will surely help you to dig out more scenarios while testing any mobile app or any mobile Handset you are given to test .

5. Get aware of Testing in Mobile Domain:-

When we talk about testing in Mobile domain, it is not only confined to Mobile Apps, but also includes mobile handset and mobile website testing.

  • Downloadable Mobile Application Testing: – Some applications come pre-installed in mobile handset while some mobile applications are downloadable from different mobile application stores(Apple App store, Android Market, Getjar, Nokia Ovi Store, Blackberry App world etc.). Apart from conventional Functional and UI testing, you may need to test your application against the submission criteria and guidelines provided by these Application stores. As said earlier, tester’s role here should not be only functional testing of mobile app, but also to make sure your application adheres to the guidelines provided by these mobile app stores.
  • Mobile Handset Testing:-Similar to Organizations that develop third party downloadable mobile applications, there are many companies that develop complete mobile handset. A mobile QA here may need to test native applications or features that are available in the phone. SMS, MMS, Voice Call, MMS, Phonebook, Calculator, Bluetooth and other mobile features. It also includes Multimedia (Camera, Video, Media player, ringtones) and Mobile Protocol stack testing.
  • Mobile Website Testing (WAP Sites):-Unlike downloadable mobile applications, mobile websites can be accessed via browser. No download involved. Testing of Mobile WAP sites has its own challenges. Proper navigation, good user interfaces (design), security, performance and mobile browser compatibility are important areas.

6. Get Aware of Types of Mobile Apps Testing:-

Similar to general Software Testing, Mobile Software Testing also includes:-

  • User Interface Testing (Color scheme, Menu styles, Consistency of UI over various Devices)
  • Functional Testing (Testing core functionality of Mobile App as per specification)
  • Performance & Stress Testing [Behavior of Mobile Application in Low resources(Memory/Space), Behavior of mobile website when many mobile user simultaneously access mobile website)]
  • Usability Testing (Testing of usability aspects of Mobile Apps)

Apart from above mentioned testing types, some key testing types may include the following.

  • Testing for Compatibility:-Testing the compatibility of your application with native device features (i.e. To make sure your application is not hampering native device functionality)
  • Certification Compliance Testing:-For downloadable mobile applications, there are various Third party Mobile Quality Certification program for various platforms. True Brew Testing(for BREW Apps), Java Verified program (for J2ME apps), Symbian Signed Test Criteria (for Symbian Apps) are some examples. Apart from regular functional testing, you may need to test your application against the test cases/Testing criteria provided by these certification processes. However, it depends on your client, whether they want to certify their application or not.
  • Submission Guidelines Compliance Testing: – The application needs to adhere to the specified submission guidelines to publish it in any mobile application store. Failure to meet these guidelines may result in rejection of your app on mobile application stores. For example failure to comply with application Submission guidelines for Apple App Store may result in rejection of your app in Apple app store.
  • Interruption Testing (Voice Calls, SMS, Charger, Low memory Notification) while application is running.
  • Monkey Testing: – Continual key pad entries via tools to test application stability with various key press events.
  • Low Network/No Network case Testing: – Application behavior when there is no network coverage or Low network strength.

7 . Go through the Sample Test Cases for Mobile Application:-

For newbie in Mobile Testing, it is always advisable to go through some sample test cases for Mobile Apps. Going through the test cases for any mobile application, gives a complete insight of the kind of testing conducted for Mobile Application. You may ask your seniors to provide you some Test Suites for any mobile project your organization completed earlier. However, you can still go through some general Test Cases for Mobile application here.

8. Explore the Capabilities of Simulator:-

Simulators always play big role when there are no mobile devices available for testing. Though Device testing is always preferred as it represents more likely end user scenarios, the importance of simulators cannot be ignored. In order to have effective testing over Simulator, It is recommended to explore all the capabilities of Simulator.

9 . Take Help from Remote Device Access Service-

Due to a large number of devices available in the market, it is not feasible to buy a new device every time. At the same time Simulators are not completely reliable enough to launch a mobile app based on testing conducted only on simulators. RDA (Remote device services) can be a good solution to deal with these challenges. The remote device access services enable access to a live device over the Internet. As a Mobile Apps Tester, you should be aware of such services and should suggest your managers about the capabilities of such Services.

Some Available RDA Services are:

Advantages of RDA:

  • You don’t need to purchase actual device.
  • User can select different Carriers e.g. Verizon, T-Mobile, AT & T.
  • RDAs are more reliable than simulators as they are real devices.
  • Some RDA Service like Device Anywhere also has automation capabilities.

Disadvantages of RDA:

  • Since you access devices remotely it takes time for any action or key event.
  • Sometimes the needed device is not available due to prior reservations.
  • Higher Service Cost

10 . Explore Tools and Utilities:-

There are many software tools and utilities available in the market which may help you in testing of your Mobile Application effectively. Some of these tools are available in SDKs itself. However you may still dig out the internet for such tools on various platforms.

  • Tools to check Battery Consumption while your app is running. E.g. Nokia Energy Profiler.
  • Tools/Software to capture screenshot: – There are many tools available for various mobile platforms to capture screenshot from device itself. E.g Screenshot tool for Symbian S60 Devices.
  • Tools to Generate dummy files to test behavior of mobile app at Low EFS. e.g. Maxfilecnt utility from QUALCOMM for BREW mobile apps,Fill Device Memory Lite for Android apps.
  • Tools to Generate Random key events. e.g. Monkey tool(Android), BREW Grinder(BREW), Hopper Test Tool (Windows Mobile)
  • Tools to Capture Logs. E.g. Apphance for Android.

11. Explore Automation Tools for Mobile:-

Along with Manual Mobile Testing, be ready to explore your potential in Mobile Automation Testing as well. Mobile Testing is a new field and many automation tools are coming in to market gradually. If you get any opportunity to work on any mobile automation tool, it is well and good. But if you don’t get such opportunity, it is better to explore on your own. Don’t wait for the time when you will get an opportunity to work on Mobile Automation Tool. Believe me, sooner or later you will definitely face a question from your Interviewer- “Have you worked on any Mobile automation tool ? ”

Here are some automation tools available for Mobile Apps Testing:-

  • TestComplete
  • M-Eux
  • TestQuest Countdown
  • Test Quest Pro
  • Robotium
  • VNC
  • Sikuli
  • Deviceanywhere
  • FoneMonkey (iPhone)
  • Eggplant (iPhone)
  • TestiPhone( For iPhone Mobile Web)
  • IBM® Rational® Performance Tester (RPT)
  • 3P Mobile
  • Expertest
  • MITE (A Mobile content testing and validation tool for Mobile Web app)

12 . Explore Communities, Forums, Blogs :-

Even if you work for 24 hours a day in exploring various aspects in this arena, I guarantee even 24x 7×365 will not be enough. The reason is very simple. You cannot get opportunities to work in each and every area of this domain and by that time you manage to do that, you will find that there are many more things left to learn. Finally Technology is changing everyday and in Mobile Domain, even at faster pace :)

Hence the solution is to join Communities & forums to learn from each other’s knowledge and experiences. Initiate the discussions and you will find there are many QAs sharing their experiences.

Tuesday, July 26, 2011

26th July 2011

So i got up at 8:20 am, with a trippy mind. The weed last night was hardcore. I was ready by 9 am and my mom tells me that the taxi guy won't come today so I gotta manage on my own. I was like Holy Shit!! Now what? I hate travelling by Train and Bus. I just cannot. Period!!

Anyway, i got out of the house by 9:10 am and 8 rickshaw guys rejected me. I was pissed by now, thinking the next guy says no, then "somebody gonna get a hurt real bad" i don't know who but SOMEBODY!! I got a taxi in 15 mins, by 9:30 i was inside the cab staring outside the window and letting the trip pull off so I can go clean to work with a good mind. So to relax; what all men do is take out their iPod and get jiggy with it. Same with me man. It felt good listening to Koop, Norah Jones, Buddha Bar while going to work. I was in a relaxed state or mind & these acid jazz, lounge, smooth jazz music helped me forget my frustration about the rickshaw rejection and it gave me a good trip travelling to work. I reached office by 10:15. Got me logged in and got busy with my day. Actually i was thinking too much about my new job. I don't wanna leave this place but I think i'm doing the right thing by say a FO to Mauj. I will miss my people a lot. There are so many good people i know here. These guys have no grudges and negativity, but just to be in the zone, look cool and behave heavy, we tend to argue and flip flop shit around :D

I contacted a lot of people today to get some apps up on Mobango. I got through couple of them, that too after sending them some reminder mails and all the crap I had to take personally. It's a pain convincing these assholes man. These fucking developers think they are Jesus and Buddha. They are nothing!! How can people not feel proud about their work and feel snobbish? Go man FUCK YOU THEN!! It was lunch time which means party time. I have my friends with whom I eat everyday and talk about a lot of good things and rip on people and sometimes behave like wannabee adults and end up messing ourselves up for the whole day and in the night come home and either drink or smoke up!! This doesn't happen all the time but sometimes - I say. Our X-factor and the cream is our desserts or the omelette. I had got a fried egg with chauli ki sabji and roti. So my friend tripped on my egg and finished almost 3/4 of it. It was a treat to watch him eat the egg. I feel good, real good when my friends eat from my plate. I like to share my food, NOW!! Till the age of 18 I was a selfish eater. Maybe that's why i'm the Shaq of Nagaland!! My friend is a Maarwadi, but he eats non veg only from the hotel or anywhere outside. NOT AT HOME I SAY!! and he gets the best MAALPUVA. Home made crazy tasty full of ghee and chachni. Oh God!! His mom makes awesome maarwadi dishes. Awesomeness is an understatement for that maalpuva. Lunch got over, we had a good time talking, eating, cribbing etc. I came back to my desk, put on my playlist in winamp and was working like a dog till 7 p.m Then Sharad called me and told me that we can go together. I was like yeah, nice shit. It was raining heavily and the roads were beautiful. When we hit the Bandra Worli sea link we were playing Jamiroquai. Real cool acid jazz funk stuff. Then we plugged some Drum n Bass and were trippin on the amen breaks and the dub bass. The rains were awesome and it blessed our journey & the songs. Sharad dropped me home and I was like, dude your the man....your god. Thanks for dropping me in this shitty heavy rains. I had a big smile on my face which meant "the day was good and thank god it went awesome and healthy"

I came home and mom told me that she had made some killer biryani. I flipped. I was like finally some Mutton Biryani flowing in da house. Beautiful dum aloo Mutton Biryani, & chilled Dahi Raita to go with it. I went on the terrace quickly and smoked some good green shit and was buzzed. Again we were discussing about Amit's wedding and as usual Sanket was the man of the night. That guy gives me a cool trip. I love him. If I ever become a gay in the future, I will make out with Sanket and get ass fucked my Manish :D Although Manish might be straight. Yes, i said might be because he never looked straight to me. Well, the session ended, we split and I came home. Had the awesome Mutton Biryani and was chatting with my friends over the net and browsing Facebook and all. My day ended real nice. Before goin to sleep i had 4 pegs or rum and slept listening to Danger Mouse & some Koop.