Wednesday, 8 October 2014

Testing Interview Questions


1.    What is the difference between Mobile Testing and Application Testing?
Mobile Testing: Testing the Mobile handsets/devices, It is testing the core functionalities of the devices like Sim Call Connectivity, Video Calling, network, battery etc (testing the OS)
Application Testing: Testing the applications in the devices (ex: Facebook, Twitter)

2.    What is the difference between Native and the Hybrid apps in the mobile?
Native: Built using the native programming language for the platform.
Hybrid: Built using web technology and then used for the specific platform. A Hynbrid app is developed using the combination with HTML5 and native technology

3.    What kind of testing is performed on your current mobile app testing?
Installation testing, un-Installation testing, Functional testing, Interrupt testing, performance testing, acceptance testing, compatibility testing.

4.    What is your approach while testing mobile application?
Based on the domain you can explain the strategy of the testing.

5.    What are the things specific to mobile application would be concentrated while writing test plan for mobile application?
A part from the regular test plan we will consider OS, os version, Screen size, Device type.

6.    How do you test different screen size/device?
Using Emulator

7.    What is the difference between Emulator and Simulator?
Emulator: Emulates the device based on hardware.
Simulator: Emulates the device based on software.

8.    What is Regression Testing?
Regression testing is the process of testing changes to computer programs to make sure that the older programming still works with the new changes.
The intent of regression testing is to ensure that changes such done have not introduced new faults. One of the main reasons for regression testing is to determine whether a change in one part of the software affects other parts of the software.

9.    Types of Regression testing?
 There are two types of regression testing
Final Regression testing:  A "final regression testing" is done to validate the gold master builds,
Regression testing: A "Regression testing" is done to validate the product and failed test cases between system test cycles.

10. What is Sanity testing?
When there are some minor issues with software and a new build is obtained after fixing the issues then instead of doing complete regression testing sanity is performed on that build. You can say that sanity testing is a subset of regression testing. Sanity testing is done after thorough regression testing is over, it is done to make sure that any defect fixes or changes after regression testing does not break the core functionality of the product. It is done towards the end of the product release phase.
11. What are the common challenges in mobile testing?
Lack of Physical devices
Varity of mobile devices
Different OS
Different network operators
Different screen Size.

12. What is a webservice?
It is a software component to perform a task, interface between one program and the
Other

13. Example for web serveice?
Weather forecast for a new website

14. What is ADB command?
Android Debug Bridge

15. What is command to install app in Emulator
adb install <path of the apk>

16. Regression testing should be performed
 After the software has changed or when the environment has changed.

17. How to install SDcard in Emulator?
MKSDcard –i mysdcard  1024M mysdcardFile.img

18. What is AAPT in Android?
Android Asset Packing Tool to get the packing name and details

19. How you create log file?
Using Logcat (Command: adb logcat)

20. How to take snapshots in Android?
Based on the mobile device it varies. In general we can use DDMS tool to take the snap shots

21. List few automation testing tools?
See Test
Device anywhere
Perfecto Mobile
Robitium
Monkeytalk

22.  Can QTP support Automation testing
Yes, with Perfecto/see test addin  

23. What is Video Graphics Array?
Video Graphics Array denotes a resolution to the device 
QQVGA: Resolution of 120X160 pixels
HQVQA: Resolution of 240X160 pixels
QVGA: Resolution of 320X240 pixels
HVQA: Resolution of 480X320 pixels

24. Disadvantages of Emulator?
No support for placing or receiving for actual phone calls
No support for USB Connections
No support for Camera/video capture
No support for determine battery charge level or AC charging state
No support for Bluetooth

25. Which one is good for test execution? Emulator or Physical device?
Physical Device

26. What is QWERTY/AZERTY keyboard?
Layout for letter keys and text on the keyboard

27. How to do forward compatibility testing?
      Test the mobile application with the newer versions.

Wednesday, 30 July 2014

SOFTWARE DEVELOPMENT LIFE CYCLE

Software Development Life Cycle, or Software Development Process, defines the steps/stages/phases in the building of software.
Definition: A software development process, also known as a software development life-cycle, is a structure imposed on the development of a software product.


There are various kinds of software development models like:

  • Waterfall model
  • Spiral model
  • Iterative and incremental development (like ‘Unified Process’ and ‘Rational Unified Process’)
  • Agile development (like ‘Extreme Programming’ and ‘Scrum’)

SDLC IN SUMMARY
  • Project Planning
  • Requirements Development [Business Requirements and Software/Product Requirements]
  • Design [ High Level Design and Detail Design]
  • Development/Coding
  • System Testing
  • Acceptance Testing
  • Production Build/Deployment
  • Release / Acceptance
  • Maintenance

Tuesday, 29 July 2014

Why iOS app gets Rejected!!!

If you are an Android developer, app submission to the Playstore is fairly easy ;) . For android developers, upside is that, regardless of the app performance or content app gets approved in Playstore. On the other hand, apple has completely different approach for accepting the iOS apps. iOS app goes through reviews and testing by Apple. Thats why iOS apps get rejected sometimes.

Following are the few reasons because of which Apple could reject iOS app.
  • Don't copy existing app : Never copy the functionality of an existing app. May be  it's ok to take an idea and improve upon it.
  • App is relevant to broad population : App should not be targeted to a very limited audience. It should be relevant to relatively broad population.
  • In-app payments : Use Apple's In-App purchasing api for in-app payments.
  • Downloading data : As most of the users will be on limited cellular data plan, people won't appreciate you downloading more than 5 MB data every time. However, there is no specific guidelines by Apple regarding downloading. But it is better to keep downloads to minimum to be on safer side.
  • Icons and Images : Don't use Apple's icon and images. Apple will reject the app if icons that are not meant to be re-used are used in your app.
  • Beta or Demo version : Never upload beta or demo versions of the app. Apple rejects your app if these kind of titles are present in your app description.
  • Load Time : Apple won't entertain the apps that take more than 10 seconds to initially load.
  • File system access : Apple doesn't allow apps to save data to the device that normally gets backed up by iCloud without the user's permission. Instead, save this data to the device's cache.
  • Human Interface guidelines: Don't violate Human Interface guidelines. Apple has very specific guidelines on the size and locations of buttons/icons etc.
  • External Scripts : Don't download external scripts within your app during runtime.
  • App size : Keep the app size (.ipa file size) as low as possible. Preferably within 50MB.
  • Relying on network : App probably gets rejected if your app crashes or doesn't function because it doesn't have a network connection.

Friday, 25 July 2014

Things to remeber while testing iOS apps !!!

Anyone can test the app but it takes smart testers to get smart product. When testing an iOS app, do remember the following things and be a smart tester ;)

 

Critical:

  • OTA install --- The Application must install OTA(On the Air) to the device.
  • Uninstall App --- The Application must uninstall from the device and all the related resources should be deleted.
  • Extra Code Download --- The Application must not download extra code.
  • File System-Memory during run --- Ensure that the Application correctly handles out of memory exceptions during Application execution (This case is applicable only to the application that writes to file system).
  • Multiple Launch --- Suspend and re-launch of the application is handled correctly.
  • Idle ---The application recovers from an idle state correctly.
  • Cancel Lengthy Operation --The application allows the user to cancel any lengthy operations.
  • Network connectivity-Network delays and the loss of connection --- When the Application uses network capabilities, it must be able to handle network delays and any loss of connection.
  • Network connectivity-Airplane mode ---When the Application uses network capabilities, it must be able to handle the device being in Airplane mode.
  • Telephone call – incoming while application in use --- If the user accepts an incoming phone call while the Application is running, it should be possible to resume from the same point in the Application at the end of the call, or a logical re-starting point.
  • Suspend / resume from main menu --- Ensure that the Application suspends when at the Application main menu.
  • Resume --- Ensure that the Application resumes correctly.
  • Background Running Task --- When switched to run in the background, the application must not impact any system features or other applications unless designed to do so.
  • Suspend while executing --- Check for Suspend in the middle of Application execution --Application should suspend and resume correctly, and resume at a point that does not impair the user experience.
  • Scrolling in menus --- Contents should be scrollable.
  • Simultaneous key presses or multiple touch --- Ensure that the Application copes with simultaneous key presses or multiple touch.
  • Device Keys --- Ensure that native device keys function as expected.
  • Stability – Application stability --- The Application must not crash or freeze at any time while running on the device.
  • Stability– Application behaviour after forcible close by System --- Application must preserve sufficient state information to cope with forcible close by the system.
  • Save game state --- Ensure that the Application can save its game state/high score table information into persistent memory.
  • Data deletion --- The Application must indicate whether data will be permanently deleted or offer easy reversal of the deletion.
  • Modify Record --- Ensure that the Application can modify its game state/high score table information into persistent memory.
  • Encryption --- When connections are used encryption is used for sending / receiving sensitive data.
  • Passwords --- Passwords and sensitive data are not stored in the device and not echoed when entered into the App, sensitive data is always protected by password
  • App Metadata --- Ensure that the Application metadata complies with the platform requirements.
  • Privacy Policy --- The app must state and comply with a Privacy Policy and Privacy best practice.
  • Location Permissions --- The app must ask for permission to use location data.

Warnings:

  • Interruptions --- Check that the application continues to function through interruptions.
  • Readability --- Ensure that the application content is readable.
  • UI – Read time --- Comfortable time for content reading.
  • UI – Screen repainting --- Correct screen repainting. For example after dismissing an alert or popovers.
  • UI-Consistency -- The Application UI should be consistent and understandable throughout.
  • UI-Application speed --- The Application works in the device it was targeted for,and it is usable on the device: the speed of the Application is acceptable to the purpose of the Application and must not alter the user experience by being uncontrollable
  • UI–Error messages --- Any error messages in the Application must be clearly understandable.  Error messages must clearly explain to a user the nature of the problem, and indicate what action needs to be taken (where appropriate),it should not display technical terms and should be understandable by general public.
  • UI–Function progress ---Visual indication of the function execution progress. (Any function selected in the Application should start within 5 seconds. There must be some visual indication that the function is being performed).
  • UI-Multiple Display Format Handling --- Where the device and Application can display in multiple formats (e.g. portrait / landscape, internal / external display), the elements of the application should be correctly formatted in all display environments.
  • UI–Differing screen sizes ---Where the application is designed to work on multiple devices it must be able to display correctly on differing screen sizes.
  • UI-Spelling errors --- The Application must be free of spelling errors.
  • UI-Technical text errors ---  The text in the Application must be clear and readable. The Application must be free of technical text display issues such as: Text cut off / Text overlapping.
  • Language–Correct operation --- Ensure that the Application works correctly with all appropriate languages.
  • Language–Supported formats --- Ensure that the Application supports all date/time/numeric/currency features for supported languages.
  • Restore Device settings on exit --- Check that app does not permanently change any settings on the device.
  • Saving settings ---Ensure that the Application saves all settings on exit.
  • Help & About items ---The Application should contain Help & About.
  • Network Performance --- The app must not use excessive network resources.
  • Battery Performance --- The app must not drain the battery unduly.
  • In-app Purchase --- The app must comply with store rules for in - app purchase.
  • In-app Adverts --- The app must comply with advertising usage practice.
  • In-app subscription and rental ---The app must comply with store rules on subscription and rental models.

Thursday, 24 July 2014

What is Android Logging System and where the logs are saved in Android

Overview of Android Logging System:

What is Android Logging System?
  • Provide a mechanism for collecting and viewing system debug output.
  •  Logs from various applications and portions of the system are collected in a series of circular buffers, which then can be viewed and filtered by the logcat command.
Android Logging System
Introduction: 

The logging system consists of a kernel driver and kernel buffers for storing log messages:
  • HoneycombMR2Src/kernel/drivers/staging/android/logger.c
  • Create “/dev/log” folder in handle_device_event() of AndroidSrc/system/core/init/devices.c 
C/C++/Java APIs and classes: 
  • For making log messages
  • For accessing the log messages
logcat, the command for viewing log messages  AndroidSrc/system/core/logcat/
Ability to view and filter the log messages from the host machine (via Eclipse-ADT or DDMS)

Log device files
4 channels, each have a Ring/Circular Buffer:
  • /dev/log/radio – radio&phone-related messages (64KB)
  • /dev/log/events – system/hardware events (256KB)
  • /dev/log/system –framwork or low-level system messages (64KB)
  • /dev/log/main – everything else (64KB)
The maximum log message size of each channel is specified in kernel driver(logger.c)
File permission of each(radio/events/system/main) is 0662 (rw-rw-w)