Desktop Application Testing
A desktop application is developed the same as other application that runs on personal computers and workstations, so when it comes to testing 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 Database.
Major Challenges Faced in Desktop Application Testing
Graphical User Interface Testing
The graphical user interface (GUI) is a part of user interface which lets users to interact with electronic devices through graphical icons and visual indicators such as secondary notation, instead of text-based user interfaces, typed command labels or text navigation. A GUI uses a combination of technologies and devices to provide a platform that users can interact with, for the tasks of gathering and producing information. Things to look after while testing GUI are
- GUI elements size and color are been verified.
- Assure that the GUI works according to the functionality of the app.
- To check if the error messages are displayed correctly.
- To verify whether the different sections on screen separated clearly.
- Checking the readability of the fonts used.
- Verifying the warning messages acceptability.
- Checking the alignment and quality of pictures.
- Checking the placement of GUI elements on different screen resolution.
Compatibility testing is a piece of software non-functional testing which is managed on the application to ensure the compatibility of the application with the different computing environment.
- Hardware: To check the compatibility of the software in different hardware configuration devices.
- Operating System: To check the compatibility of the software in different operating systems like Windows, Unix, Mac OS, etc.
- Software: To check software developed to be compatible with other software. For example, to check whether MS Word application is compatible with other software like MS Outlook, MS Excel, VBA, etc.
- Network: Calculating the performance of a system in a network with varying parameters such as Bandwidth, Operating speed, and Capacity. It also checks the registration in different networks with all parameters mentioned earlier.
- Browser: To check the compatibility of the website with different browsers like Firefox, Google Chrome, Internet Explorer, etc.
- Devices: To check the compatibility of the software with different devices like USB port Devices, Printers and Scanners, Other media devices and Bluetooth.
- Mobile: To check the compatibility of the software with mobile platforms like Android, iOS, etc.
- Software: Versions To check whether your software is compatible with different versions of the software. For example to check Microsoft Word to be compatible with Windows 7, Windows 7 SP1, Windows 7 SP2, Windows 7 SP3.
Functional Testing is a type of testing practiced to verify that each function, feature, and module of the application is functioning as per the given requirements by the client. Each performance of the application has to be tested by providing given set of inputs (positive, negative and edge values) in order to know the actual behavior of the application and thereafter comparing with the expected results as per the given specifications. Functional testing involves the following process
- To identify the functions that software is expected to perform.
- Based on the function’s specifications data has to be created
- Determine the output based on the function’s specifications.
- Execute the test case.
- Compare the actual and expected results.
In software quality assurance, performance testing is a method which is performed to determine how a system performs in terms of responsiveness and stability under a particular workload. Things to be taken care while testing GUI are
- Throughput : The number of many units of information that a system processes within the specified time.
- Memory: The amount of free storage space for a processor or workload.
- Response Time: The amount of time taken between a user inquire for request and the start of a system's response to that request.
- Bandwidth: The amount of data per second that can move between workloads, usually across a network.
- CPU interrupts per second: The total number of hardware interrupts a process receives per seconds.