How to test Desktop, Client-Server, and Web Application, and what are the differences

As software testers, we are familiar with a lot of technical terminologies, but occasionally some are less well understood. In this post, we will explore the methods and differences between mobile application testing, web application testing, and how to test desktop.

As software testers, we are familiar with a lot of technical terminologies, but occasionally some are less well understood. In this post, we will explore the methods and differences between mobile application testing, web application testing, and how to test desktop.

Right from the development stage, applications and software like these have been designed to perform in different environments, so here, we will discuss the differences between them to reduce confusion and to examine how we can test them.

Software Architecture

Before we delve further, let us first understand the basic architecture of the software application. Generally, there are two categories:

  1. Two Tier Architecture: These are commonly known as client-server applications. Communication is established when a client sends a request to the server. The server processes the request accordingly and sends it back to the client.
  2. Three Tier Architecture: The same as two-tier architecture except for the addition of an extra layer, which is known as the presentation layer. The presentation layer is an interface that is accessible through a web-based application or a web browser. In this category, the data is presented to the end-user in the form of content, information, and other useful data. Web applications belong in this category.

What is a Desktop Application, and How is it Tested?

Although the technological focus is mostly on mobile and web today, desktop applications still remain. These applications are stand-alone programs that run on desktop systems and do not require any client or server. Desktop application testing is complex because they have been designed to work in a specific environment and have special hardware requirements. When testing the desktop application, a tester can focus on GUI, functionality, performance, security, stability, and installation testing, remembering that it will need to be installed as an .exe file. Testing a desktop application differs from testing a web application because it needs to be tested on a range of different computers with varying configurations and environments.

Desktop Application Defect Checklist

With desktop applications, certain flows are particularly important to test

  • Check if any features have been installed without authorization
  • The function should work as expected when in the background and data should be present there
  • There should be proper error validation
  • The tester should ensure that only authorized access is granted

What is a Client-Server Application, and How is it Tested?

This category has a two-tier architecture, as mentioned earlier, which is front-end and is where reports are shown, and back-end where data is manipulated and processed. Examples such as SQL Server, and Oracle, are considered as client-server applications.

The test team’s focus should be on functionality when testing the client-server application. The whole system needs to be tested in a controlled environment to achieve the objectives, and integration testing should be performed while mitigating risk factors. These kinds of applications can be complicated to test if they have a sizable number of interfaces. In these cases, extra care should be taken to validate behavior.

What is Web Application, and How is it Tested?

Web applications belong to the three-tier architecture category. They are developed in HTML, JavaScript, etc., and are accessible from any web browser connected to the internet. They are readily available, platform-independent, and can run on any device (smartphone, tablet, and PC).

desktop client

As they are tier applications, one layer is developed in HTML, DHTML, and JavaScript, which is accessible through any web browser. Another layer is a web server which manipulates the data using programming languages or any scripting language. The final layer is a database layer that stores and retrieves the data using databases like SQL Server, MySQL, or Oracle.

When testing three-tier applications, the emphasis is on making sure that it behaves as expected for the end-user. Various validation techniques are applied to make sure the smooth working of those applications such as:

  • Functional Testing
  • UI/UX Testing
  • Browser Compatibility Testing
  • Security Testing
  • Performance Testing
Desktop Application Client-Server Application Web Application
The application runs on a single machine with a single user Menu-driven and can run on multiple machines Capable of being run on a large scale
Installation/Uninstallation testing is performed Accessed by a finite number of users for a specific purpose or environment Accessed through a valid URL
No internet required The frequency of issues is less No limit for users. Accessible globally
Frequency of issues like browser compatibility, performance, functional, is high

Conclusion

Understanding the differences and the approaches needed when testing these three significant variations helps test teams design effective test cases, which eventually result in a successful application.

Author

Ali Imam

Ali is an experienced software tester and has worked with in a variety of areas from e-commerce, healthcare and social networking.