As the technological advancements take place in the modern world, most of the applications are becoming portable, 24 * 7 accessible, by web and mobile enablement. Despite that, desktop application has a commanding presence in the marketplace. Desktop applications like Office Suite, Messenger, Media Players, Anti-Virus, Accounting Software etc. are used extensively by people from all domains.

What is a Desktop Application?

Desktop Application is software that is installed on individual work stations to carry out specific tasks. In general desktop applications are menu driven, easy to use and maintain. It has fewer security threats and lesser dependency on connectivity. Types of desktop applications are:

  • Single or multiple instances

o   E.g.: Office Suites (Multiple instance); Media players (Single instance)

  • Multiple users from different machines

o   E.g.:  Sub Version

  • Communication through LAN / Internet

o   E.g. : Instant messengers

Testing a Desktop Application

The role of testing is a little different in desktop applications as compared to web based applications. Apart from validation of functionality along with look and feel of the application, one also needs to perform Installation & Uninstallation. Depending upon the type of application, one may also need to execute performance tests. For easy reference, I have classified as what different type of testing can be performed and what areas to cover during test execution to ensure a pleasant user experience.

Testing Types

  • Installation / Uninstallation
  • GUI
  • Functionality
  • Performance/Load
  • Database

Testing Areas

  • User Interface
  • Business Logic
  • Roles & Permissions
  • Reliability
  • Usability
  • Data Flow
  • Reports

The Testing types and areas falls under the umbrella of science, but the real testing is an art that uses this science to enhance the quality of the product, way above the client can visualize. To master this art, the tester needs to

  • Understand the product domain
  • How end users will work with the product, their usage patterns
  • How simple is the product to  use in spite of  adding complicated features
  •  Identify the impact areas whenever there is a change in the product
  • Use different scientific tools on test & defect artefacts to showcase the health of the product & process, test coverage, able to guide delivery schedule

Few tips to consider in Desktop Application Testing

1)      Install / Uninstall Testing

  • Perform installation of application in all supported Operating systems
  • Perform installation of application in different hardware (32 or 64 bit, desktop or server) /software environment
  • Perform installation with low disk space
  • Perform ‘Repair’ of application to recover the files by deleting few files post installation
  • Perform installation using ‘Modify’ option
  • Perform installation on Typical/Custom/Complete options
  • Perform installation by configuring in default path/custom path
  • Perform installation using silent or unattended mode
  • Perform upgrade from one version to another version
  • Perform degrade from one version to another version
  • Verify installer prompts or automatically installs the pre-requisite software when they do not exist
  • Perform installation without ADMIN privileges
  • Perform installation from different sources hard drive/network location etc.
  • Perform installation with (or) without Internet connectivity
  • Perform uninstallation of software and ensure all the files/registry entries are deleted
  • Copy the installer files to another location and uninstallation of application should not disturb these copied files

2)      Compatibility Testing

  • Backward Compatibility Testing – Verification of assets/resources created with the older version. For e.g., Documents/spreadsheets created with Office 2007 should still work when the user upgrades the application to 2010 version
  • Upgrade Testing – Apart from Backward Compatibility checks, the upgrade process from one version to next version should happen seamlessly

3)      System / Functional Testing

  • Verifying all the functionality of the application
  • Verification of accessing the main application when modal dialogs are in open state
  • Verification of application log file entries
  • Verification of short cut key commands associated with majority or all menu items along with their actions for e.g. (Ctrl + C – Copy in Windows, Command + C – Copy in MAC) associated with any menu item
  • Verification of display of Documentation on clicking Help icon

4)      GUI & Usability Testing

  • Viewing the application UI  in different resolutions
  • Maximising and Restoring the application windows/dialogs
  • Ease of Use to the end-users
  • Visibility of Controls and its associated text 

5)      Load Testing

Monitoring the usage of Memory/CPU by generating the below type of load to ensure the performance of system and application

  • Running multiple instances of the application
  • Increasing the load of the application – For e.g. In a text/document editor, creating a document with 100000 pages and 15000 bookmarks etc.

In web/client server applications, the scope of the tester might be limited. The tester has to depend on the server administrator for installing the application, viewing the application log, monitoring the performance of the application etc., whereas in desktop application testing, tester has greater privileges to test the application. Ownership, Responsibility & Accountability for a tester in a desktop is of a different kind as compared to other web or client-server applications, which can at times prove crucial to the product quality.

Latest posts by Bala Pethanan (see all)