Monthly Archives: October 2011

Are mobiles/tablets loaded with android similar to PCs loaded with microsoft software?

Standard

I was reading this article Android Orphans: Visualizing a Sad History of Support.

Earlier Microsoft PCS used to have this challenge. The machine good for Windows 95 would not suit Win 2000 and Windows XP and the what suits XP would not suit windows 7 and so on. I could not upgrade my HP laptop loaded with Win XP Home either to Windows Vista Home or Windows 7 Home. I could install ubuntu. As it was more than 7 years, I cursed myself and bought the laptop I am typing this blog. Though I have developed software on microsoft paltform for years, as users i was not happy with the forced upgrade of my laptop. I am really happy when some large customers continue to use XP or IE 6 as it makes sure that companies provide the customer support( but it sucks developers who have to support applications on multiple unrelated versions of same software).

I am yet to buy android device at home. What do current users of android think?
I have started to develope applications for android. what should be my strategy? Seems that i have to repeat my old Microsoft story with android?

One thing i am happy with apple products is that I can use my ipod i bought 5 years back still and latest itunes support the same. Effectively i feel taken care by Apple.

Mobile app test scenarios

Standard

I have been helping my QA team to write test cases for testing the mobile application. I see that there are generic test cases to be tested for any native application.some of the scenarios are captured here.

1. Install of the application
2. Un-install of the application: Are all the files created by the application deleted?
3. Network Issues: In our office, we have places where the network connectivity is best on the mobile and area where the connectivity is worse. Though we cannot help this, what happens when a data download is initiated and the user moves from the best connectivity area to the worst and vice-versa? I find my tester get frustrated with this testing and i am afraid that this can lead errors to slip.
4. Voice Call Handling: What happens to the timer when there is a sudden call and user decides to take the call? This is very important when one is testing audio application. Can the user resume the audio from where the audio was interrupted due to the call? if there is data download operation, running in the background, will it be affected by the voice call. Some of the above scenarios also apply for receiving SMS in the mobile.
5. Verify that application logo comes properly. some times i find developers using the same image for different applications and if user installs it is not good for the user to select the application. i also ask for the version of the application to be mentioned to validate the same during testing.
6. Which server is the application connected? The application connects to server on the cloud, and the challenge is to determine at runtime where the mobile application connects to local development server or staging server on cloud or the production server. Though it is easier to display on the mobile, does it make sense for the end user and can it be displayed? Sometimes. i am going to build a debug and release config file to determine what gets displayed.
7. Application Start/ Restart: i would expect the application must not take more than 25s to start.
8. Exit application: Though we all think running application is challenge, some times exiting application is night mare. The commands in display are not displayed and the user enters a zombie state. Effectively the user should be able to exit the application in every form or activity and from any point or work flow of the application.
9. Low memory: We find that our application needs more runtime memory than available in the device and the application stops at the launch step. Though i am not happy that my app could not run on user’s mobile, i am happy that my application did not hang or interrupt the mobile operations. Same is the need for applications to check whether there is sufficient memory before the application initiates download of files.
10.Data Download: How to make sure that the data is downloaded in its full extent to be used by the application? Some times due to network issues, the complete file might not be downloaded and the application needs to handle this gracefully.
11. Mobile Storage: if your application is J2ME based and if you make use of record store, then you need to test the stability of application by removing the battery.I found scenario where RMS(record store) of the application was totally corrupted when application restarted after reinserting the battery. Can your application still go forward? May be the application needs to detect the corruption and ask the user to reinstall the application?

Mobile testing is fun

Standard

I have been working last month on testing our mobile application and trying to deliver the same. We have native mobile application, which makes use of SMS and GPRS to interact with central server on the cloud.

1. Lack of physical devices: We are building for j2me and android applications. How do i make sure that the application works on different permutations of android and j2me phones in the market? In India, we take the help of mobile stores that sell second hand mobiles to test on variety of physical devices. We also engage our friends, ex colleagues and family to perform testing. But we always question what is quality that is good for our friends to spend their personal time free for our application testing.

2. State of connection for QA testing: When the application uses SMS, we have to really send SMS to test the end to end functionality of the application. The emulators cannot simulate SMS sending and receiving in the local developer or QA environment. it was a great relied with GPRS connection on native j2me application and native android application, as they provide their emulators a mechanism to connect to the web server running on local-host.

3. Scale testing and pilots: For a test engineer to use emulator and perform testing multiple times is not easy job. In pilots too, there is a good amount of effort spend to educate students to find where the application is available on the mobile and launch for the same. I see that this challenge reduces with android phones and high end j2me phones.

All of us remember our passwords and mobile numbers. But when we use mobile number as identifier in the application, it is difficult to remember multiple identifiers. To add with the mobile number when used as identifier is 10 digits long and is not easy to remember multiple of them during testing.

4. Time: We see that application developers choose to hit ‘fast forward button’ on their testing process, as it occurs at the end of the cycle. Small glitches, crashes and malfunctions are overlooked.In addition once developer are used to error, it never occurs that there is a better way to fix the same and they start to live with the same.

5. Reliability: we try to store all message received from the mobile on the server prior to processing the message. This helps us to make sure that message from the mobile has reached the server and also to be aware of the capability of the mobile used to add this part of our test configuration. There is a long way to go here.

6. Different Mobile Platforms/OS: There are different Platforms/OS currently present in the market. Android, iOS,J2ME phones, Windows 7, Blackberry (RIM) and so on. Diversity in mobile platforms, different OS versions and platform limitations make it a challenge for testing mobile applications. The challenge is increased as there is more inconsistency in terms of functionality across multiple devices of same platform and every platform may have some limitations.

Mobile learning: Design guidelines

Standard

While building m-learning applications, we need to think of a lot of guidelines to design the content and the technology. Summarizing the same here.

1. Do we add value to both students and teachers?. While m-learning can help students, what do we offer for teachers to move to m-learning? Does the system help teachers to build learning material? Does the system store responses given by students to enable teacher to keep track of student’s progress? How could mobile usage enable teachers to understand strengths and weakness of their students? Wi ll instant feedback enable the teacher to refine their teaching skills?
2. Does the existing PC learning content good for mobile? May or may not be. How do we educate and help teachers to build content for mobile learning? What type of learning should be delivered on mobiles? The contents for the mobile phone must be significantly reduced in conformity with the limited capacity of the device. Contents available in PC-based learning mode needs to be evaluated for use on the mobile phone.Excessive scrolling to see the entire item and options should also be avoided.
3. Should we have excess use of multi-media in mobile learning? While multi-media can improve the quality of learning systems,it always does not enhance learning and we need to be aware of the fact that having more media will make the system less responsive and may even distract users from the intended learning goals.
4. Can we use SMS? The learning materials could be sent using SMS to students and the students could interact or respond to questions via SMS. This method is tricky to organize over a long duration of time. Delivery times of SMS messages vary greatly. SMS messages can be duplicated or delivered out of sequence causing errors in scoring.
5. Delivery using mobile browser and GPRS?: Different mobiles come in-build with browsers with varying capability and this can cause confusion among the students and there are interruptions in mobile data transmissions due to network issues. Things might change with wide adoption of HTML5.
6. Deliver using native connected application:: In native application, the application has control over data transmission and can resend the data in case of errors. The application can also help to organize the sequence of display of the learning material. In addition,they can create consistent user experience across various mobiles.
7. Deliver learning on hybrid(native, connect on demand) application. Here we consider the application that connects to internet to download learning contents. Then the mobile application do not need internet connection to learn the downloaded content. The mobile application uses internet on demand and uses when there is need to download and when there is response to send to a central place.

Some facts to be aware of
1.While a teacher can try to migrate a great classroom learning to mobile, it is not a straight forward approach. For example you need to modularize and customize content so that people only take what they need. To perform this, teacher should be ready for a huge shift from traditional linear start to end approach(encourage by LMS).
2. It is dangerous assumption to assume a great LMS tool or authoring tool shall create a great m-learning experience. With good tools, you’re just getting started.
3. Making the course enjoyable is a fine idea, but is the course challenging, interesting, rewarding, authentic, worthwhile, and relevant?.
4. Lot of technologists project that “Getting the technology to work is the hard part”. This is not always true. Creating quality content and programs to run on that technology can also be a challenge. Try to balance the investment in great technology with the investment to create quality content.