This module covers technical topics intended for engineers that are tasked to perform quality assurance activities for mobile platforms, with particular focus on Android, iOS and the mobile web platform. The intention is to familiarize the attendees in the various technologies and approaches used on the mobile platforms running the applications in order to enable them to perform a deeper level of quality testing.
Concepts and terminology: Testing, unit testing, automated testing vs. manual testing, white box testing, black box testing, hanging, crashing, freezing, memory leaks, bugs, quality assurance, testing test engineering
Overview of the Android operating system / software platform: History, technical structure, programming languages used, latest advancements, future direction
Android tools as required for debugging and testing applications: The development tools / SDK; Android emulator and AVDs (Android Virtual Devices)
Android API levels / platform versions: Differences between the API levels, how to detect them and how to understand the differences
Different Android devices; how they are technically different and what should usually be tested?
The Android Debug Bridge (adb): Installing, starting and controlling applications with ADB; debug messages / logs / application output via ADB; spotting and understanding Java exceptions; using the ADB shell
Monitoring Android memory and CPU usage; detecting memory leaks and observing application performance
Simulating Android hardware features and sensors (accelerometer, GPS, temperature, proximity, etc.); testing network connections, observing and interpreting network API responses
Automated stress testing of applications using standard Android SDK tools
Automating user interface actions: With Android UI Automator and third party tools
Overview of the iOS operating system / software platform: History, technical structure, programming languages used, latest advancements, future direction
The iOS toolset as required for debugging and testing applications: The development tools / SDK (Xcode); the iOS simulator and differences between the simulator and real devices
Different versions of iOS: Major differences between the versions, how to detect them and how to understand the differences
Different generations of iOS devices, their major technical differences and what should be tested
Implications of iOS's mandatory code signing on software testing and ways to manage them
Using the Xcode development tools for debugging and tracing iOS applications on the device and inside the simulator: Using the “Instruments” tools, console output, etc.
Monitoring iOS memory and CPU usage; detecting memory leaks and observing application performance
Interacting with the iOS simulator and simulating hardware events and sensors; testing network connections, observing and interpreting network API responses
Using the iOS UIAutomation library for automatic user interface testing
Overview of the web platform, different web browsers, web standards and browser complicance; the current market condition on mobile and desktop browsers
Automated testing frameworks for web applications
Overview of other testing automation tools on the market: Appium, Selenium, Ranorex, Robotium, Bitbar.com, Calaba.sh, ..
All Emerge trainings can be conducted in different locations globally, in customer offices, shared facilities, Emerge-provided training centers, online or through other means, depending on the requirements of the training participants.