Wednesday 13 May 2015

Testing Mobile Apps Vs Desktop Apps

For years, testing has been considered a second-class citizen when it comes to the pecking order of importance in any endeavor. Whether the endeavor is ecommerce related, or any other application, testing has been synonymous with other commodities. The words “I am a tester” might typically get a response along the lines of sympathy card from Hallmark. “Oh, sorry to hear that. Keep plugging away. You’ll make that leap up the hierarchy at some point.”
With today’s complexity found in all areas of software — not just ecommerce, but cloud — and just about anywhere that has software that in some way acts as the front end to some activity initiated by a user, testing has become a complex role that encompasses more than just an assembly line mentality of checking the box and moving onto the next item rolling down the assembly line.

Today’s testing is not your father’s Oldsmobile

Let’s look at the original Oldsmobile first: the desktop.

Desktop application testing

A desktop application test coverage model might have required you to test across two different browsers for the desktop. If you had 300 test cases, you might have had to build 600 tests. Ok, a lot, but not insurmountable from a time perspective. The time might look something like this:
300 test cases x 2 browsers = 600 test cases
600 test cases x 30 mins per test case = 300 hours
300 hours / 6 hours per day = 50 person days
50 person days / 5 people = 10 days of testing

Mobile application testing

So now let’s look at today’s mobile test coverage model. Those same tests today have to allow for more browser types and versions — as well as multiple operating systems with multiple flavors — across multiple device types AND multiple screen sizes and manufacturers. Now look at the test coverage model:
300 test cases x 26 devices = 7800 test cases
7800 test cases x 30 mins per test case = 3900 hrs
3900 hours / 6 hours per day = 650 person days
650 person-days / 65 people = 10 days of testing – 2 weeks
650 person-days / 5 people = 130 days of testing – 26 weeks
And I haven’t even touched on requirements/needs around different data sets, or even coverage analysis around critical path analysis that would be tied back to a test plan based on a firm set of functional requirements of which the application is supposed to satisfy from the original business objectives.

Monday 13 February 2012

Difference between android OS Versions


Difference between Android 2.1 (Eclair) and Android 2.2 (Froyo)

For Users:
1. Tips Widget – the new tips widget at the home screen provide support to users to configure home screen and add new widgets.
2. Exchange Calendars are now supported in the Calendar application.
3. Easy set up and sync an Exchange account, you just have to enter your user-name and password
4. In composing an email, users can now auto-complete recipient names from the directory with the global address list look up feature.
5. Onscreen buttons give easy access to UI to control camera features such as zoom, focus, flash, etc.
6. Wi-Fi hotspot and USB tethering
7. Multiple language recognition simultaneously
8. Enhance browser performance using Chrome V8 engine, which enhance faster loading of pages, more than 3, 4 times compared to Android 2.1
9. Better memory management, you can experience smooth multi tasking even on memory constrained devices.
10. New media framework supports local file playback and HTTP progressive streaming.
11. Support applications over Bluetooth such as voice dialing, share contacts with other phones, Bluetooth enabled car kits and headsets.

For Network Providers:
12. Improved security with numeric pin or alpha-numeric password options to unlock device.
13. Remote Wipe – remotely reset the device to factory defaults to secure data in case device is lost or stolen.

For Developers:
14. Applications can now request installation on the shared external storage (such as an SD card).
15. Apps can utilize Android Cloud to Device Messaging to enable mobile alert, send to phone, and two-way push sync functionality.
16. New bug reporting feature for Android Market apps enables developers to receive crash and freeze reports from their users.
17. Provides new APIs for audio focus, routing audio to SCO, and auto-scan of files to media database. Also provides APIs to let applications detect completion of sound loading and auto-pause and auto-resume audio playback.
18. Camera supports portrait orientation, zoom controls, access to exposure data, and a thumbnail utility. A new camcorder profile enables apps to determine device hardware capabilities.
19. New APIs for OpenGL ES 2.0, working with YUV image format, and ETC1 for texture compression.
20. New “car mode” and “night mode” controls and configurations allow applications to adjust their UI for these situations.
21. A scale gesture detector API provides improved definition of multi-touch events.
22. Applications can customize the bottom strip of a Tab Widget.

 Difference between Android 2.3(Ginger bread) over Android 2.2(Froyo)

1.       New user interface design with new themes (Black themes save power)
2.       Extra Large Screen Size supported
3.       SIP Communication Supported (SIP Video and Audio Calling, In an operator point of view, this is feature will decrease their voice calling revenue where as user can call each other for lower rates or even free if they have good data connection)
4.       Supports for NFC (High Frequency High Speech Data Transfer in short range)
5.       Support for WebM/VP8 video playback, and AAC audio encoding
6.       New audio effects such as reverb, equalization, headphone virtualization, and bass boost
7.       Improved Copy and Paste functionality
8.       Redesigned Multi Touch Software Keyboard
9.       Audio, graphical, and input enhancements for game developers
10.    New sensors support (i.e gyroscope)
11.    Download manager for long running HTTP downloads
12.    Enhanced support for native code
13.    Improved power management and application control
14.    Support for multiple cameras

Android 3.0 (Honeycomb)

New User Features

1. New UI – holographic UI newly designed for large screen displays with content focused interaction, the UI is backward compatible, applications designed for earlier versions can be used with new UI.
2. Refined multitasking
3. Rich notification, no more pop-ups
4. System bar at the bottom of the screen for system status, notification and it accommodates navigation buttons, as like in Google Chrome.
5. Customizable home screen (5 home screens) and dynamic widgets for 3D experience
6. Action bar for application control for all applications
7. Redesigned keyboard for larger screen, keys are reshaped and repositioned and new keys added such as Tab key. button in system bar to switch between text/voice input mode
8. Improvement to text selection, copy and paste; very close to what we do in computer.
9. Built in support for Media/Picture Transfer Protocol – you can instantly sync media files through USB cable.
10. Connect full keyboard over USB or Bluetooth
11. Improved Wi-Fi connectivity
12. New support for Bluetooth tethering – you can connect more types of devices
13. Improved browser for efficient browsing and better browsing experience using the large screen – some of the new features are:
- multiple tabbed browsing instead of windows,
- incognito mode for anonymous browsing.
- single unified view for Bookmarks and History.
- multi-touch support to JavaScript and plugins
- improved zoom and viewport model, overflow scrolling, support for fixed positioning
14. Redesigned camera application for larger screen
      - quick access to exposure, focus, flash, zoom, etc.
      - built-in support for time- lapse video recording
      - gallery application for full screen mode viewing and easy access to thumbnails
15. Redesigned contacts applications features for larger screen
      - new two-pane UI for contacts applications
      - improved formatting for international phone numbers based on home country
      - contact information view in card like format for easy reading and editing
16. Redesigned Email applications
     - two-pane UI for viewing and organizing mails
     - sync mail attachments for later viewing
     - track emails using email widgets in the home screen

New Developer Features

1. New UI Framework – to fragment and combine activities in different ways to create richer and more   interactive applications
2. Redesigned UI Widgets for larger screen and new holographic UI theme
    - developers can quickly add new types of content to relevant applications and can interact with users    in new ways
    - new types of widgets included such as 3D stack, search box, date/time picker, number picker, calendar, popup menu
3. Action Bar at the top of the screen can be customized by developers according to application
4. A new builder class to create notifications that include large and small icons, title, a priority flag, and any properties already available in previous versions
5. Developers can use multi select, clipboard and drag and drop features to offer users more enjoyable gaming experience
6. Performance improvement to 2D and 3D graphics
    - new animation framework
    - new hardware accelerated OpenGL renderer to improve the performance of 2D graphics based   applications
    - Render script 3D graphics engine for accelerated graphics operations and create high performance 3D effects in applications.
7. Support for multi-core processor architectures – support symmetric multi-processing in multi-core  environments, even an application designed for single core environment will enjoy the performance boost.
8. HTTP Live streaming – media framework supports most of the HTTP Live streaming specification.
9. Pluggable DRM framework – for applications to manage protected content, Android 3.0 offers unified  API for simplified management of protected contents.
10. Built-in support for MTP/PTP over USB
11. API support for Bluetooth A2DP and HSP profiles

For Enterprises

    Device administration applications can include new types of policies, such as policies for encrypted  storage, password expiration, password history, and requirement of complex characters for passwords.

Android 3.1 additional features and improvements to UI and  standard applications in Android 3.0
 
New Features
1. Refined UI
    - Launcher animation optimized for faster, smoother transition to/from app list
    - Adjustments in color, positioning and text
    - Audible feedback for improved accessibility
    - Customizable touch-hold interval
    - Navigation to/from five home screens made easy. Touching the home button in system bar will  return    you to most frequently used home screen.
    - Improved view of internal storage used by apps
2. Support for more varieties of input devices such as keyboards, mouse, trackballs, game controllers   and accessories such as digital cameras musical instrument, kiosks and card readers.
    - Any type of external keyboards, mouse and trackballs can be connected
    - Most of the PC joysticks, game controllers and game pads can be connected except for some
   proprietary controllers
   - More than one device can be attached simultaneously via USB and/or Bluetooth HID
   - No configuration or drivers required
   - Support for USB accessories as host to launch related applications, if application not available the   accessories can give the URL to  download the application.
    - Users can interact with application to control the accessories.
3. Recent Apps list is expandable to include larger number of apps. The list will have all the apps in use  and recently used apps.
4. Customizable Home screen
    - Re-sizable home screen widgets. widgets can be expanded in both vertically and horizontally.
    - Updated home screen widget for Email app gives quick access to emails
5. New high performance Wi-Fi lock added for uninterrupted connectivity even when the device screen  is off. This will be useful for streaming long duration music, video and voice services.
    - HTTP proxy for each individual Wi-Fi access point can be configured. This will be used by the browser when communicating with the networks. Other Apps also may use this.
   - Configuration is made easy by touch-hold of the access point in the setting
   - Backup and restore the user defined IP and proxy setting
   - Support for Preferred Network Offload (PNO), which works in the background and conserves battery  power in case where Wi-Fi connectivity needed  for longer time.

Improvements to Standard Applications

6. Improved Browser app – new features added and UI improved
   - Quick Controls UI is extended and redesigned. Users can use it to view thumbnails of open tabs, to  close the active tabs, access overflow menu for instant access to settings and many other.
   - Supports CSS 3D, animations, and CSS fixed positioning to all sites.
   - Supports embedded playback of HTML5 video content
   - Save the webpage locally for offline viewing with all styling and imaging
    - Improved auto login UI let users quickly sign in to Google sites and manage access when multiple   users sharing the same device
   - Support for plug-ins that use hardware accelerated rendering
   - Page Zoom performance improved
7. Gallery apps improved to support Picture Transfer Protocol (PTP).
   - Users can connect external cameras over USB and import pictures to Gallery with one touch
   - The imported pictures are copied to local storages and it will show the balance space available.
8. Calendar grids are made larger for better readability and accurate targeting
   - Controls in data picker are redesigned
   - Calendar list controls can be hidden to create larger viewing area for grids
9. Contacts app allows full text search making it quicker to locate contacts and the results are shown  from all the fields stored in the contact.
10. Email app improved
   - When replying or forwarding HTML message the improved Email app sends both plain text and HTML  bodies as multi-part mime message.
   - Folder prefixes for IMAP accounts are made easier to define and manage
   - Pre-fetches emails from server only when the device is connected to a Wi-Fi access point. This is done  to conserve battery power and minimize data usage
   - Improved home screen widget gives quick access to emails and users can cycle through email labels  with the touch of the Email icon at the top of the widget
11. Improved Enterprise support
   - Administrators can use the configurable HTTP proxy for each Wi-Fi access point
   - Allows encrypted storage card device policy with emulated storage cards and encrypted primary  storage




Thursday 9 February 2012

Experts comments on testing mobile apps on emulators and real devices


Expert’s comments on testing mobile apps on emulators and real devices:


“The problem with any web-based or simulated environment is that there are some tests that are difficult to impossible to do,” says Uriah McKinney, QA manager at developer Übermind. “For example: trying to stress test with multitasking; what happens if you tap two buttons; can you crash the device,” says McKinney. “That’s hard to test in a simulated environment.”

 Chuck Hriczko, application developer at Accella, which develops applications for various mobile environments, “You have to test on multiple real-world devices, since they have differences. For example, Samsung’s new Nexus S comes with Android 2.3, which no other phone has, and it has hardware that no other phone has, like a gyroscope instead of an accelerometer.”

“Using the computer as an input device is so different from using a touchscreen,” says Big Nerd Ranch’s Conway. “It’s not about how it looks; it’s about how it feels.”

But while individual devices can be inexpensive, acquiring many devices quickly stops being cheap. “We can’t test on every device,” says Lance Parker, president  of iTag.com. iTag’s mobile security app (for locating lost phones and other security activities) is currently available for Android and BlackBerry, with iPhone and Nokia versions in the works. “We have to move pretty quickly and nimbly. It’s almost impossible to test on every platform or device, and put out a release.” For their Android version, says Parker, “We have a handful of Android devices, about 8 to 10, and we may buy another few Android phones next month.”

“The general strategy I use is bounds testing,” says Übermind’s McKinney. “Know what the bottom and upper limit are, and test those. If there are specific devices or carriers you want to target, get them.”

Equally, focus on the most popular devices. For example, says Big Nerd Ranch’s Conway, in terms of Android devices, “Based on TweetDeck’s tracking of device and OS, the majority of people were sticking with 1.6 or 2.2.  So if you get the more common devices, chances are it will run pretty well on those other devices. And you have to take a leap of faith, that based on the performance and how it looks on this device, that it will look and run OK on these other devices.”