Types of Mobile applications :
- Native apps:
- Native applications are developed for a specific platform and installed on the device
- Hybrid Applications :
- Hybrid application (hybrid app) is one that combines elements of both native and Web applications
- Web Based Applications:
- Web based applications are accessible through device browser or third party browsers installed on the device
Key Challenges:
- OS & Device fragmentation
- Fulfill user expectation
- Data usage, Installation, Usability
- Environment
- Network types (wi-fi, 2G, 3G, 4G, GPRS), GPS, Localization
- Mobile web / Native apps / Hybrid apps
- Performance
- Service oriented - Depends on the software code
- Efficiency oriented - Infrastructure support
- Security
- Root device not available
- Development Methodology
- Different development process for multiple device OS’s - Phone gap, Native coding
Best Practices:
- Functional Testing
- Start testing early. Use emulators / simulators
- Test the app as a “black box” and try to break it
- Open every screen of the mobile app and change the position from portrait to landscape mode and back again as most errors are discovered this way.
- Don’t forget to test device-specific functions, like sensors and communication interfaces.
- Choose a test automation tool that fits into the company strategy and infrastructure
- Non-functional Testing
- Usability Tests
- Check how the app reacts to incoming calls, SMS, MMS, or tweets
- Testing the app’s memory usage
- The ease with which the app is Installed and deleted
- Testing mobile apps for version upgrades
- Use the app on different carriers and network connections like GPRS, 3G, WiFi, or LTE
- Compatibility testing:
- This kind of testing assesses the application/web using a wide variety of browsers, operating systems, device types, device sizes, variations in connection speeds ,multiple standards and protocols
- Security testing:
- This includes encryption/decryption techniques used for sensitive data communication, checks for multi-user support without interfering with the data between them, check for access to files saved in the app by any unintended users, detect areas in tested application so that they do not receive any malicious content
- Performance:
- Will define response time as per the functionality
- Compare performance levels between the released and the new version of the app (for upgrades)
- Address device fragmentation. Build a “Mobile Test Priority Matrix”
- Use internal beta testing for early feedback - Staging env
- Know the customer base
- Ensure to include respective “app store” standards review as part of the test strategy
- Be active in communities
Test Coverage – What to test :
- Installation:
- Install App via App Store/Google play
- Over Wi-Fi
- Over data network
- Install Ad Hoc build after tailoring it for device
- Move of data between internal and external memory.
- First time launch behavior
- Un-installation and device cleanup
- GUI & Usability
- Connectivity (Wifi, Data, Airplane)
- Portrait and Landscape
- Interface
- Pop-ups
- Overlay - Layout and alignment
- Interactions
- Touchscreen support gestures (Multi-touch, tap, double-tap, touch and hold, drag, shake, pinch, flick, swipe)
- Real world usage
- Environment
- Functional & L10N
- Emulators and Devices
- Data validation for forms
- Device Behavior
- Battery drain
- Memory Usage
- Localization Testing
- Native language first
- Layout
- Text alignment
- Image & text captions
- Text-on-buttons
- Text Encoding
- Interrupt Testing
- Phone calls
- SMS/MMS
- Calendar alerts
- Notifications
- Volume
- Ringer
- Screenshot
- Sleep
- Headphones
- Low battery
- Compatibility
- Devices and networks
- OS versions
- Backward compatibility
- Beta firmware
- Device screens
- Resolution
- Size and dpi
- Scaling of images/text
- Device features
- Camera
- Battery Usage
- Default or 3rd party browser
- Link navigation
- Open/close pop-ups
- Non-functional
- Performance Testing
- Security Testing
- Network carrier testing
Mobile application test automation tools:
- iOS
- KIF - Keep it Functional
- Calabash
- Fonemonkey
- UIAutomation
- Frank
- QTP (Paid)
- Android
- Robotium
- Android Instrumentation
- MonkeyTalk
- NativeDriver
- QTP (paid)
- EggPlant (paid)
================================================================
