Testing a desktop app differs from testing a web app most apparently by how and where test data is injected. That is, by the kind of test bed (test driver, test framework) you use.
For desktop apps you probably inject test data into the app
(a) in the desktop event loop. For web apps you can either drive the browser by
(b) manipulating the external HTTP/S protocol it uses to communicated to the server, or you can
(c) inject events into the app directly from a browser.
Desktop application runs on personal computers and work stations, so when you test the desktop application you are focusing on a specific environment. You will test complete application broadly in categories like GUI, functionality, Load, and backend i.e DB. In client server application you have two different components to test. Application is loaded on server machine while the application exe on every client machine. You will test broadly in categories like, GUI on both sides, functionality, Load, client-server interaction, backend. This environment is mostly used in Intranet networks. You are aware of number of clients and servers and their locations in the test scenario. Web applications are supposed to be tested on different browsers and OS platforms so broadly Web application is tested mainly for browser compatibility and operating system compatibility, error handling, static pages, backend testing and load testing.
In case of Desktop application for user interaction & activity , the application itself maintains a state. Desktop application is a software package, installed and used as standalone or client server basis. It has to be installed in both server and nodes and only used within the network.