MOBILE APP session 1
List a variety of Mobile Devices that you know
Handheld PC, Palm-Size PC, Pocket PC, Pocket Computer, PDA (personal dig. assistant) Electronic Organizer, Mobile Phone, Feature Phone, Smart Phone, Phablet PMP (Portable Media Player), DAP (digital audio player), E-reader, Handheld Game Console, Portable/Mobile Data Terminal
Assume APP was released in a Market place. Where would you start testing?
If it's a first time app is being released in APP Store and Google Play Market place , then check if you can find app using Search Engine keywords from different Browsers
List most common Glossary Terms for Android.
Root - Rooting means you have root access to your device A ROM is a modified version of Android. A kernel is the component of your operating system that manages communications between your software and hardware. Radios are part of your phone's firmware that controls your cellular data, GPS, Wi-Fi, and other things like that. Flashing essentially means installing something on your device, whether it be a ROM, a Kernel, or a Recovery BOOTLOADER - Lowest level of software on a device, running all the code that's necessary to start OS RECOVERY - Software on a device that allow user to make backups, flash ROMs, and perform other system-level tasks NANDROID - From most third-party recovery modules, user can make device backups called nandroid backups. ADB stands for Android Debug Bridge BRICK - Breaking device during flashing or other acts.
What is the latest Android OS name, version number and API Level?
google OS 9 Pie API 28
How to Clear App Cache /App Data and Storage : ANDROID ?
Open the Settings of your phone. Tap the Storage heading to open its settings page. (if your phone runs Android Oreo or earlier, you'll want to open the App Manager settings page.) Tap the Other Apps heading to see a list of your installed apps. Find the application you want to clear the cache of and tap its listing. Tap the Clear cache button.
What is the difference in Testing Approaches between Desktop Website and Mobile Web APP?
Supported platforms and devices mean you have more combinations to test. Desktop apps were usually targeted for specific platforms and it was relatively easy to access those platforms. Web based applications made it a bit more challenging by adding another dimension: browsers. Mobile applications take complexity of supported platforms to the next level by adding devices. Ensuring that mobile apps are working on all type of devices (smartphone, tablets, and phablets) supplied by major brands (various models from Samsung, Sony, Nokia, HTC, Apple, etc.) and on all the platforms (iOS, Android, Windows, BlackBerry, etc.) is challenging. On top of that, new devices are hitting market so often that it becomes impossible to cover all the major devices. In the mobile world, it is important to create something on the lines of graded browser support used by Yahoo to ensure that major platforms are covered. Adaptability and limited space mean screen size is changing constantly. Pretty much all the major players are changing screen sizes of their phones, tablets, and phablets to figure out what works or in response to the competition. How applications adapts themselves for various screen sizes, layout, and configuration is a challenging task. Apart from adaptability to different screen sizes, mobile applications have to deal with the limited screen size. Limited screen size means that user can not be given 30 different options on a single screen - usability, similar experience, on-screen help, inability to use search or other applications easily, etc. - poses different challenges and as a tester we need to think beyond what is developed and always think of who will use it and in what circumstances. Complex user interaction means more than one way to do everything. User interaction in desktop and browser based applications was pretty much limited to mouse and keyboard. Mobile applications on the other hand are trying to make user interaction as fluid as possible. We had touch screen and with new phones from Samsung, you can just wave your hand to give commands. Siri is becoming more and more advanced and gives us a glimpse of future that voice commands may become part of every application in future. Devices are smart enough to understand complex gestures, eye movement, direction, tilt, movement, acceleration, GPS coordinates, surroundings, sound, and so on. As a tester, we need to ensure that application works as expected when user interacts with the app in different ways. Application type - HTML5, Native or Hybrid - means applications are merging. In the desktop and browser world, applications were straightforward. They were either desktop or web applications. However, with the adoption and support of HTML5, the applications are merging. On all the mobile devices, it is not difficult to find HTML5 applications, native applications and hybrid applications. Testing for hybrid applications would be different from testing native applications and it is important to understand that difference. Dependency on emulators and simulators means true representation is lacking. For the desktop and browsers, developers always had access to the platform or browsers they were targeting with their applications. Also, virtualization has become more or less commonplace and can be trusted for desktop and browsers. Mobile devices on the other hand relies on emulator and simulators. However, they are still not true representation of the devices. It is also not possible to replicate advanced user interaction on these simulators. As a tester, we have to be aware of the capabilities and limitations of these emulators and simulators and figure out what can be tested (reliability) on them and what cannot. Security and privacy concerns mean a greater emphasis on misuse of data. Though most mobile applications live in their own sandbox but many platform features are accessible to them. For example, applications such as phone book, pictures, and videos are accessible to many other applications. These are all personal user data, and any defect around the (unintentional) misuse of this data can jeopardize trust of the application. In mobile world, it is important to ensure that applications are secure from the intruders, and it is equally important to ensure that applications are not intruding or accessing data unintentionally. Dependency on networks and carriers means more variations in testing. In desktop and web world, most users were either on LAN or Wireless. These network were not predictable, but compared to mobile networks, they were very predictable. Many connected mobile applications rely on the network - how application responds to 3G, 4G, weak signals, no signals, powerful signals, switching from cellular to wireless and vice-versa or when user is moving at different speeds, etc. - can affect how the application will behave. It is often not possible to come up with or simulate real life situations for mobile applications. Apart from the variation in signal strength and type, mobile apps can respond differently to different carriers. As a tester, it is important to understand if there are any difference or not and whether application works for all the major carriers or not. Rapid installations, removals, and updates mean staying on top of the latest apps. Mobile apps are installed, removed, or updated more frequently than desktop applications. Also, underlying OS and platform is updated more frequently as well. As an app developer and tester in the mobile world, you have to be on top of what changes are coming in the next revision of OS / Platform and how it might affect the application. Usually for most of the applications, user data is stored on the servers and not on the devices. It makes installation a bit tricky. What if the user has multiple devices? What if multiple devices have different version of applications? Things like backward compatibility, simultaneous support for multiple versions, data preservation, restoring state and data, the ability to install / upgrade multiple times are all part of important checks for mobile application testing. Session management and interruptions mean ensuring that the app behaves properly. Handling interruptions are the way of life for mobile applications. Apps and users are constantly interrupted by calls, SMS, push notifications, and so on. How applications handle these interruptions and how they maintain their state are important, but it is also important to see how many interruptions the application is generating and what triggers those interruptions. As a tester, it is important to ensure that application behaves properly when it is interrupted and it is also important to ensure that the application does not interrupt unnecessarily and works according to the boundary defined by the platform or the users. Mobile-specific non-functional testing means there are many more dimensions to testing. Mobile applications add many more dimensions to the non-functional testing. Old school performance of the application is the obvious one, but there are many other factors as well which should be considered. How much data your application is consuming? How much it would cost the user (data usage) to use this application? How much battery is consumed by applications? Does it behave differently in high battery and low battery conditions? How much space is it occupying? How much trail is it leaving? How is it clearing the trails / logs, etc. are important non-functional factors which should be considered as part of mobile testing strategy.
What is Unlocking? What device this term applies to?
Unlocking a phone allows you to use it with a different SIM card — either to use a different carrier while travelling or to take your current phone with you while switching to a new service provider. You will generally need an unlock code to unlock the phone. Many carriers will unlock phones once your contract is up, while phones bought outright without a contract may not be locked to a carrier at all. There are ways to unlock phones without a carrier's permission, too. Many UNLOCKING solutions only work with certain iOS models Factory IMEI UNLOCKS is a popular solution that works with all iPhone models.
How would you test a newly released APP that you never tested before? List all that apply
1. If it's a first time app is being released in APP Store and Google Play Market place , then check if you can find app using Search Engine keywords from different Browsers 2. Check version # 3. Take a screen shot of your environment 4. Download app and check version # again 5. Check an icon on your Home Screen and APP hoTray 6. List all app permissions 7. Create a list of APP permissions and Native Resources your APP will be using 8. Check GUI and Company LOGO 9. Identify Main Functionality (- ties) 10. Create a list of Primary and Secondary components 11. Create a list of Tests that should be performed 12. Check APP in Portrait and Landscape Mode 13. Zoom in/Zoom out 14. Interruption Tests 15. Load APP on as many different devices as possible 16. Load APP on as many Oss as possible 17. Try to Load APP on devices that are not supported 18. Uninstall/Upgrade/Update APP 19. Check Battery Consumption after 15 min. 20. How many devices do you have and if you use Emulator/Simulator for particular tests
What is a difference between FeaturePhone and SmartPhone
A feature phone is a type of mobile phone that has more features than a standard cellphone but is not equivalent to a smartphone. Feature phones can make and receive calls, send text messages and provide some of the advanced features found on a smartphone. Feature phones were primarily designed for consumers who want a multifunctional mobile phone but aren't willing to pay the higher prices associated with true smartphones. Typically, a feature phone has the basic characteristics of a mobile phone and has capabilities such as a portable media player, digital camera, personal organizer and Internet access. Although there is no predefined difference between a feature phone and a smartphone, a feature phone doesn't usually support add-on applications. It may also have limited processing and storage capacity and lack advanced multimedia and Internet connectivity options.
How would you prepare Device for Testing?
Charge battery to 100% Clean cache and storage Make sure there is enough memory, RAM, storage to load and run app Turn on Developers Option and enable USB Debugging Box In Developer Options set USB Configuration to MTP ( Media Transfer Protocol ) Allow installation from unknown sources in Settings Update OS ( if automatic updates set to OFF) Update Native Resources APPs ( such as camera, mic ,contacts, etc if necessary) Turn off APP Permissions ( optional)
What is the difference in Testing Approaches between Mobile Web APP and Mobile Native APP?
If web apps are practically like websites, and have already been tested for regular browsers, why do they need to be tested separately on mobile devices? The reason is that there are major differences between regular computers and mobile devices, such as: Mobile devices' screens are significantly smaller. Mobile devices have less memory and less storage space. Mobile devices use cellular network connection and WiFi, while regular computers use WiFi/ethernet connected to broadband. Mobile devices have limited battery life and are supposed to be used unplugged most of the time. The amount mobile device users pay for cellular data depends on the amount of data used. web app tests should include the following: UI testing: verifying that all UI elements are fully visible and well aligned for mobile device screens. Run this test for different screen sizes and resolutions. Amount of cellular data used by the app: Web apps rely heavily on transferring data from a server. If the amount of data is excessive, it might exhaust the user's data plan and make the app unusable or crash it. App performance: The amount of memory and storage space might differ significantly between mobile devices and regular computers, and even between different mobile devices. This and the fact that mobile devices use cellular connection might cause significant differences in performance. Connectivity issues: Test an app's behavior when switching between cellular and WiFi connection Extensive use of ads' networks might cause bottlenecks. Battery usage: Extensive use of JavaScript might cause fast battery consumption. Native and hybrid apps use different underlying technologies, but they are similar in terms of the functionality they provide—Hence, the testing approach will be the same for both types of apps: Functional testing: Test that all of the app's features work as expected. These tests include: Testing the app's use of built-in device resources: location, camera, address book, etc. Monitoring battery consumption and memory usage while performing functional tests Testing the app's behavior if it faces interruptions like phone calls, SMS and messages, push notifications, etc. Install/uninstall testing Screen orientation testing Gesture testing Compatibility testing: Test the app's functionality on different devices. Connectivity testing: Test with different types of connection Switch between different connection types Test without network connection (if the app is designed to work offline) Performance testing
What is Tethering?
In the context of mobile technology, connecting a mobile phone to a laptop using a USB cable is called tethering. Tethering can be done using different media such as Wi-Fi, Bluetooth or USB. Tethering usually allows sharing of internet connection of one device to another.
What is Jailbreaking? What device this term applies to?
Jailbreaking is the process of modifying iOS system kernels to allow file system read and write access (removing the limitations put in place by a device's manufacturer). Jailbreaking is generally performed on Apple iOS devices, such as the iPhone or iPad. Jailbreaking removes the restrictions Apple puts in place, allowing you to install third-party software from outside the app store. Some people may have the perception that jailbreaking is only used for piracy, but this isn not the case — jailbreaking allows you to do things like change your iPhone's default browser and mail client. Essentially, jailbreaking allows you to use software that Apple doesn't approve.
How would you prepare Test Environment before downloading an APP
Make sure that your: Your Computer/Laptop Device Manager showing your Real Device in Device Manager ( no conflicts) Developers Options are ON on Real Device USB Debugging Box enabled in Developers Options Android Studio latest updates installed Android Studio / or SDK with Platform Tools installed Android Studio Terminal path is set to SDK/Platform-tools directory (adb.exe) Android Studio / AVD Manager make sure your PC/Laptop is supporting VT-X and HAXM Android Studio/AVD Manager able to create emulators with different Oss Android Studio/ adb type adb devices command line
What is the difference in Testing Approaches between Desktop and Mobile Testing in general?
Mobile devices are much smaller. Aligning images and text becomes a real challenge in features like portrait and landscape orientation More variation - even when dealing with the same manufacturer Responsive design is relatively easy to code for desktop and laptop browsers - most of which come with predefined ratios Limited storage and processing power of today's mobile devices. Even high capacity phones can quickly fill up as users download apps and multimedia. Mob apps may or may not need online access; web-based software always requires internet connection (except off-line browser app like gmail) Hardware limitation specific to devices manufactured by nokia, etc, sony, samsung, apple; new mob devices hit market all the time; emulators/simulators; web browsers follow the same basic logic (chrome vs firefox) and tester always have access to the platforms tested Device fragmentations Input interface: mob - touch screens, usb connections, voice recognition; web - keyboard and mouse (except touch screen laptops)
List all that applies to Interruption Tests .
Phone call; sms/mms; notifications; charger in/out; lock screen; alarm; airplane mode; network connectivity switch (3g, 4g, 4g lte), portrait/landscape mode; max/min-ing apps; blue tooth; gps; os updates/upgrages; app updates/upgrades; window in window; zoom in/out
What is Rooting? What device this term applies to?
Rooting is the Android equivalent of jailbreaking, a means of unlocking the operating system you can install unapproved apps, deleted unwanted bloatware, update the OS, replace the firmware or customize anything Rooting is the process of gaining "root access" to a device. This is generally performed on Android devices, but rooting can also occur on other devices based on Linux, such as Nokia's now-retired Symbian operating system. On Linux and other UNIX-like operating systems, the root user is essentially the same as the Administrator user on Windows. After rooting, you can grant specific applications access to root permissions, allowing them to do almost anything they want to the operating system. For example, an application with root permissions could uninstall system applications, install low-level system binaries, revoke permissions installed apps require, and do other crazy things. Almost anything you can do on a proper Linux system, you can do with root access on your phone. Rooting gets around Android's security architecture and could potentially cause problems if users don't know what they're doing, so Android doesn't come rooted. On some devices, rooting may need to be accomplished via a security exploit. Just like jailbreaking, manufacturers generally don't want you rooting. On some devices, such as Nexus devices (which are also intended for developers), rooting does not require a security vulnerability.
What is the difference in Testing Approaches between Desktop Native APP and Mobile Native APP?
Types of Mobile App Testing: To address all the above technical aspects, the following types of testing are performed on Mobile applications. Usability testing- To make sure that the mobile app is easy to use and provides a satisfactory user experience to the customers Compatibility testing- Testing of the application in different mobiles devices, browsers, screen sizes and OS versions according to the requirements. Interface testing- Testing of menu options, buttons, bookmarks, history, settings, and navigation flow of the application. Services testing- Testing the services of the application online and offline. Low-level resource testing: Testing of memory usage, auto-deletion of temporary files, local database growing issues known as low-level resource testing. Performance testing- Testing the performance of the application by changing the connection from 2G, 3G to WIFI, sharing the documents, battery consumption, etc. Operational testing- Testing of backups and recovery plan if a battery goes down, or data loss while upgrading the application from a store. Installation tests- Validation of the application by installing /uninstalling it on the devices. Security Testing- Testing an application to validate if the information system protects data or not.
How to Clear App Cache /App Data and Storage: iOS ?
We will start to clean out the cache of your Safari browser. This can easily be done from the stock Settings app. Go to Settings > Safari Scroll to the bottom of the page and choose Clear History and Website Data Confirm that you want to do this by tapping on Clear History and Data of Safari There is no option on iPhone or iPad to clean a specific app's cache unless you uninstall it entirely from your device, or unless a developer specifically included the feature into his/her app. When you uninstall an app from your iPhone, everything you have in that application, including cache and preferences will be deleted. The best way to clean your iOS applications cache and junk files is to use a third-party app from the App Store called Battery Doctor (free). The first thing you need to do is head over to your App Store and install Battery Doctor app. Once the app is installed on your home screen, briefly go through its introduction and get right to business. From the main screen of Battery Doctor: Head over to the folder that contain your application's cache using the Junk tab on the bottom menu Simply tap on the Clean Up Cache button Read the caution message carefully and proceed by choosing Clean Junk cleaning feature will remove some of your temporary files from applications, which may include game progress and cache data. for jailbreakers with access to Cydia on their iOS device, there is an easier way to clear your application cache without having to use Battery Doctor or desktop clients. A well-known developer named Ryan Petrich has released a free package on his beta repo called CacheCleaner that allows you to quickly clear cache of a specific app. What you want to do right now is go to Cydia and add this Cydia repo: http://rpetri.ch/repo Once that's taken care of, search for CacheCleaner and install it. You will not be able to find a standalone app or settings for this tweak. Navigate to Settings > General > Usage > Manage Storage Pick an App and tap on Clear App's Cache button
List all active Google Android OSs
jelly bean; kitkat; lollipop; marshmallow; nougat; oreo; pie