Client Server And Web Applications, Essential Tools For your personal Desktop testing
Almost every tester works in one of the categories like desktop application, client server application or web application testing. Each app is different and has its own advantages and disadvantages.
WWW was developed on top of the existent client server architecture and it replaced the FTP and email as a mechanism of sharing files and data.
A program that can provide service to client programs is called a server. Client and server are connected with the help of message passing over the network using the protocol to encode the client's requests and the response of server. There might be a few distributed servers.
Web application is entirely run on a web browser. It is independent because only a web browser is required. As they are run inside the browser it means that the application which is run in Chrome will work either on Windows or OS X. They have finite access to system resources (e.g. memory, CPU, file system).
What is the difference between client server and web application?
Client server app is always set up on the client's computer but web application can run on the browser directly as it does not require any setting.
Two-tier architecture is used by a client server application when multi-tier architecture is used by web application. This multi-tier architecture consists of user client, middle tier and application server.
A web app uses a single-user system unlike a client server application which uses two users: client and server.
A browser controlled environment hosts a web app.It also can be programmed in a language that the browser maintains. A server machine is a host for client server application (as it runs single or multiple-server programs sharing their resources with clients).A client always requests from a server information or content without sharing any of its resources.
A client server model is always overloaded because the amount of contemporary client requests increase.Only web browser is required for web application. Such web apps are Google Apps, Gmail, Yahoo mail.
A client/server application might lack robustness in case the server fails. As a result the requests cannot be completed. But web application holds up robustness.
As client server is characteristic within a company's firewall, errors related to security are not as important as in Web apps.
For client server application testing must be 2 various components in order to test them. An application is loaded on server machine meanwhile the application exe on each client machine.
You should broadly test in such categories as GUI on both sides, Load, functionality, backend, client-server interaction while client server testing. You are informed about number of servers and locations and clients in the test scenario.
Some people prefer desktop apps, but others prefer web applications. So lots of companies (like Apple iWork, Microsoft Office or Intuit TurboTax) offer both desktop and web versions of the most popular programs.
How is a web app different from a desktop application?
Deployment and upgradation for web apps require the deployment on single set of server machines. On the other hand, deployment and any upgradation/patch is accomplished on individual client machines apart.
Web apps have no location constraint.As desktop is confined to a stand-alone machine they can be only accessed from the machine they are deployed in.
Desktop apps have better authorization and administrators have better control. As a result they are more secure. But all the web apps are at higher security risks because they are designed to increase accessibility.
Web apps require the internet connectivity for their operation. Desktop app does not require internet for its operation. Nevertheless, desktop apps need internet connectivity when they are updated.
Web application development and its maintenance involve higher costs and mostly recurring in nature. Desktop applications are purchased one time and there are no continually occurring charges. However, in certain cases, maintenance fees may be charged.
Now, let us consider what desktop testing is.
Desktop app testing means concentrating on a particular environment (personal computers, machines and systems). The app is tested in such categories as GUI, functionality, backend i.e. DB and Load. This type of testing requires knowledge of operating system and database as one focuses on definite environment.It means testing the application entirely in features like graphical user interface, functionality, backend, database and load. The user also needs to ascertain the ways to check memory leaks and unhandled exceptions.
Testing checklist for desktop applications may include the following:
Graphical User Interface Testing
Check for broken links
Resolution change effect on the application
Installation Testing (Upgrade/Downgrade)
Testing with multiple user accounts
Testing the application on different operating systems
Long period of continuous use
Generate "Power Efficiency Diagnostics Report" by running the command powercfg /energy
Following tools may be useful for desktop testing.
AutoIt v3 is a freeware BASIC-like scripting language that is designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way that is not possible or reliable with other languages (e.g. VBScript and SendKeys). It can interact with all conventional windows controls and support COM. But it is stand-alone with no external.dll files,.NET or VB.
You can download it here
It is open-source custom scripting language for Microsoft Windows. The AutoHotkey installation includes its own extensive help file with always updated web-based version. AutoHotkey scripts are used to launch programs, open documents, send keystrokes and mouse clicks and movements. They can assign, retrieve, and manipulate variables, run loops and manipulate windows files, and folders as well. One is able to remap or disable the keyboard keys.
It may be download here https://autohotkey.com/download/
It is a GUI test automation framework for testing desktop, web-based and mobile applications. Ranorex hasn't its own scripting language. It uses standard programming language like C# and VB.NET as a base. This tool supports such types of testing as acceptance test, black box test and unit test. You can test next desktop client applications: .NET, WinForms, Win32, Java, Qt, Delphi,VB6, PowerBuilder, WPF, Microsoft Dynamics CRM etc.
This one might be downloading from here http://www.ranorex.com/free-trial.html
Bear in mind that even if the difference exists in these three environments, the basic quality assurance and testing principles remains the same and applies to all.