Level 12. Testing Desktop Applications

Level 12

Testing Desktop Applications

After this battle, Endor will be ours!

Desktop Application

Desktop applications are programs whose operation requires an operator, that contain the complete functionality within themselves, and that can run on their own on any computer, isolated from other applications. Microsoft Word, Excel, Notepad, the game Mario – these are all examples of desktop applications.

Testing Specifics

The era of computer technology began with desktop applications. Long before powerful web servers appeared that could take on the main computational load, desktop applications ruled the IT world unchallenged. A lot of water has flowed under the bridge since then, and now more and more development goes into web and mobile applications. Still, desktop applications are quite relevant to this day, and over my career I've had to test them more than once.

It's worth pointing out that functional testing of desktop applications is no different from other kinds and, on the contrary, is the most classic. So you may wonder why we only cover it at level 13. The blame lies with the tricky nuances of configuration testing. Desktop programs are strongly dependent on the operating system. As a result, you need to be able to create many virtual systems for testing and to have the skills to administer Windows, macOS, and Linux workstations. We'll go through this and more in a detailed checklist for desktop software.

Installation Testing

Undoubtedly the biggest difference in desktop testing is installation testing. You will need to check that the program installs, updates, and uninstalls correctly. About the only similar thing you'll find is in mobile testing. It's quite a complex area, because a large number of factors can affect installation. For example, whether the user is an administrator or not.

Smoke testing

If the application launches on all the declared work-environment configurations and can perform a few core functions, smoke testing can be considered passed

UI Testing

A graphical interface demands heavy use of computer resources and, often, multithreading from the application, which makes checking for memory leaks and deadlocks mandatory (for example, moments when one thread of the program cannot get access to resources locked by another thread, which in turn is stuck in an infinite loop)

Stages of Desktop Application Testing

Before you go through this checklist, let me reassure you: you don't have to do all of it in practice or hunt down every device and system it calls for. It's enough to simply know what desktop programs are all about and what to be ready for. What's more, you'll hardly manage to remember all of it, but you'll always be ready to wake up in the middle of the night and start testing your application!

1. Desktop Application Installation

1.1 Language

  • Check all the installer languages
  • Selecting various keyboard layouts

Expected result: the system works with the selected language

1.2 Disk Preparation

  • Delete all partitions and create partitions automatically
  • Use unallocated space
  • Prepare partitions manually
  • Installation on RAID (a virtual disk volume)
  • Whether the program launches after installation
  • Setting the program's location in the file system: the default one and the one chosen by the user
  • Whether shortcuts are added to the desktop and an entry to the Windows Start menu

Expected result: the system must start up

1.3 Network Setup

  • Set the network parameters (internet, local network, network not connected, no network adapter)

Expected result: after installation, when logging into the system, the network should work without any additional setup

Graphics System Setup

  • Installation with a video driver / without drivers
  • Choosing the monitor resolution
  • Checking the resolution

Expected result: successful operation with the driver, handling of the no-driver case, correct operation at all resolutions

System User

  • When working as a restricted user
  • When working as an administrator
  • Installation for all OS users
  • Checking the system registry entries after installation

Expected result: the functionality works and is available only to the selected user

2. Program Settings

Updating an Installed Program (preserving settings and user data)

Check:

  • Launching the application for the update
  • Checking for updates
  • Updating the application
  • Update sources

Expected result: information about the update is displayed, the program is updated

Authentication

Check authentication via:

  • A password on the local system
  • An SMS password
  • Active Directory
  • A hardware key
  • A fingerprint

Check the complexity requirements for the password and login

Expected result: logging in to the program works with each of the methods

Keyboard

Check the keyboard settings:

  • Keyboard layouts
  • Switching between layouts
  • Choosing the keyboard model

Expected result: the keyboard layouts can be used in the system and in applications

Testing the Application's Network Access

Check the network setup and operation with various connection types:

(Only if the program goes online)

  • General parameters: change the hostname, DNS
  • Ethernet connection (cable)
  • WiFi
  • GPRS
  • Dial-up – (a modem connection over a telephone line)
  • PPTP
  • PPPoE
  • VPN
  • Network Over Bluetooth
  • Proxy server
  • Additional network parameters (DNS, encryption, etc.)

Expected result: the network connection works, and after a reboot it connects without additional setup

Testing Interaction with External Devices

Check the connection and the driver search for additional devices:

  • Printers Local Network via IP Network via SMB
  • Scanners
  • Modems
  • Bluetooth mice and keyboards
  • External headsets

Expected result: the additional devices work in the program,

Appearance (GUI)

Check the settings for:

  • Style
  • Colors
  • Icons
  • Fonts
  • Windows
  • Splash screen at startup
  • The icon in the task manager, the Start menu, and alt-tab

Expected result: the configurable parameters work, and the default settings can be restored

Autostart

Check launching the program after adding it to “Autostart”

Expected result: the program launches correctly while KDE is loading

System Notifications

Check the system notification settings:

  • System notifications and errors – correct and manageable error handling
  • System sound alerts

Expected result: all notifications work, the notification settings work correctly, and the sound alerts set by the user work correctly

Personal Data

Check the personal data settings, changing the password, and changing user data:

  • User profile
  • Paths to system data

Expected result: the settings work for each user separately

Keyboard and Mouse

Check the input devices (keyboard, mouse, joystick) and the standard and global keyboard shortcuts:

  • Keyboard
  • Mouse (general settings, cursor theme, additional parameters, controlling the mouse cursor from the keyboard)
  • Joystick
  • Standard keyboard shortcuts
  • Global keyboard shortcuts

Expected result: the configured parameters work, a connected joystick is detected and works fully, and keyboard shortcuts are handled correctly

Working with Storage Devices

Check how the program works with data storage devices:

  • Partitions on the same disk
  • External hard drives
  • Flash drives
  • External USB drives. The ability to work fully with USB drives formatted as ntfs right away, without additional manual mounting (ntfs-3g used by default)
  • CD
  • DVD
  • Cameras
  • Camcorders
  • SD cards
  • MMC cards
  • CompactFlash cards
  • MemoryStick cards

Expected result: working with partitions on a disk, working with additional disks and data storage devices (flash drives, USB drives, CD/DVD discs, memory cards), and automatic detection of additional devices after connection without any additional setup.

You must go through the additional checklists for in-depth testing of desktop applications. And don't you dare cut corners, this is your future!

These Aren't Silly Questions
Virtualization Tools

If you are tasked with testing a desktop application, first of all you'll need to install it on several computers with different configurations. Buying

several machines is not the best solution in this case; it's easier to create several virtual systems, for example with VirtualBox.

  • Create several machines with configurations that are now considered low-end,
  • Several standard configurations.
  • Use different versions of operating systems with different sets of updates, patches, and service packs.
  • For Linux/Unix systems, use different kernel versions.

The assignment for this level has two parts: testing skills and administration skills. Through the link you can download a Java program that you will need to test. To do that, you must set up the Java JDK, the system that runs Java applications. In addition, after you send in the bugs you found, you will be sent a new version of the program with the bugs fixed. It also needs to be checked, but this time on the Linux operating system. To do that, you'll need to download and install the VirtualBox virtual machine program, install Linux on it, install the program there, and only then test it. Sounds fun, right? The robots will give you all the links you need, and help.

Link to the application to test

https://drive.google.com/file/d/0B04XE92Y7D6UZUJUSnB2MmZmYms/view

Download Java for PC

https://www.java.com/ru/download/

Download the Virtual Machine

https://www.virtualbox.org/wiki/Downloads

Download a Linux distribution

http://www.linuxmint.com/edition.php?id=171

How to install Java on Linux

http://compizomania.blogspot.com/2015/01/java-8-ubuntu-1410linux-mint-171.html

To find out whether Java is installed on your machine and which version it is, type java -version in the console

How to use virtual machines
Practice

Today we're going to play bug fix. Did you think the forces of evil get easy assignments?! Being evil takes training, too!

The assignment is simple: test the calculator application and send the list of bugs in a Google Doc.

After that, I'll send you the application with the bugs fixed, and you'll check the bug fixes, but this time in Linux.

There will be 3 grades in total:

1) Application testing

2) Regression testing and verification of the fixes

3) Launching a virtual machine. To get the grade, just send a screenshot of the calculator running in Linux.

Application to Test

Answer Form

Level Test