Interface test automation tool
[SOLUTIONS] [DOWNLOAD] [ORDERING] [SUPPORT] [PRESS] [PARTNERS] [TESTIMONIALS] [ABOUT US]

Practical Approach to GUI Testing of Windows Application

GUI Testing Handbook, check other parts: GUI Testing Introduction | Testing GUI in Windows | GUI of Web Application | Automation of GUI Tests | GUI Test Automation Tips and Tricks

Testing of GUI for Windows application. Testing in general can be categorized into Windows Application Testing and Web Application testing. Windows Application Testing is subcategorized into Desktop testing and Client Server Application Testing. Though, the concept of testing and its requirements remain the same across testing in general, the elements of testing differ in each category.

For example, Windows Application Testing is simpler in nature as testers have control over the application and the maximum complexity is in testing through the intranets where the number of clients and servers are known whereas web application testing is more complicated as the tester does not have much control over the applications as different browsers, platforms run the application.  
RoutineBot is an interface testing software designed to help quality engineers with GUI testing and test automation.

Download 30-day trial, Test Samples, Script Samples, Supported Commands

 

A comparison chart between Desktop, Client Server and Web Applications

 

Desktop Application

Client Server Application

Web Application

Single tier application

2 tier application

3 tier application

Application runs in single system

Application runs in two or more systems

Application runs in two or more systems

Single user

Limited number of users

Unlimited number of users

 

Connection exists until logout

Disconnected mode (stateless) – management of cookies

 

Application is menu driven

Application is URL driven

 

Known network issues in case of intranet as number of clients and servers are known

Many issues exist like hardware compatibility, browser compatibility, version compatibility, security issues, performance issues

 

Known users

Unknown users

           

Client server testing in Windows Application Testing

This type of testing is usually done for 2 tier applications and is known as Client Server Testing. The testing covers both front-end and back-end. E.g: Applications developed in VC++, VB, C, C++, Core Java, PowerBuilder, D2K etc., with the backend for these applications as Mysql, SQL Server, Sybase, Oracle, Quadbase, MS Access, etc fall under this category. The tests performed on these types of applications would be broadly classified as White box testing, Black box testing, Integration Testing, Incremental Integration Testing, Unit testing, End to End Testing, Functional Testing, Sanity Testing, System Testing, Acceptance Testing, Regression Testing, Load Testing, Usability Testing, Performance Testing, Install/Uninstall Testing, Security Testing, Compatibility Testing, Recovery Testing, Comparison Testing, Alpha Testing and Beta Testing, Smoke Testing.

  • White box testing – Popularly known as Glass box Testing, this requires in-depth knowledge of internal code functionality. Tests are essentially based on coverage of code statements along with branches, paths, conditions.
  • Black box testing – This type of testing does not include Internal system design. Tests cover broader aspects of requirements and its functionality.
  • Integration testing – This testing cross checks integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems.
  • Incremental integration testing - This testing adopts the Bottom up approach for testing i.e repetitive testing of an application as enhancement to functionality is done. This testing is mandatory on enhancements and patch applications. Application functionality and modules should be stand-alone to test separately. This testing can be done either by programmers or can be undertaken by testers.
  • Unit testing – Unit testing deals with the testing parameters of the program as a independent functional unit.
  • Functional testing - This type of testing ignores the internal parts of an application and focuses on the output generation matching the requirement. This is a Black-box type testing improvised to cater to the functional requirements of an application.
  • Sanity testing – Testing used for determining if the application is sane enough to be considered for a Test effort. If application crashes during initial use then the system is considered unstable for further testing and build or application is assigned for Build fix or Application fix.
  • System testing – The entire functionality of the system is tested as per the system requirement documents. This is also a Black-box testing that is based on overall requirements specifications, which covers integrated parts of a system.
  • End to end testing - Similar to system testing, this involves testing of an entire application environment in a framework where a control environment is created as seen in the Freal-world use. The functionality that is tested would involve the database interaction, network communications and other interface requirements of the Application.
  • Acceptance testing - Normally this type of testing is done to verify if system meets the customer specified requirements. The End user is the entity who determines the functionality meeting their requirements.
  • Regression testing – This Testing applies to the application in totality for the modification in any part of functionality. Automation tools provide the needed support in this testing as it is difficult for the human tester to cover all aspects of regression.
RoutineBot is an interface testing software designed to help quality engineers with GUI testing and test automation.

Download 30-day trial, Test Samples, Script Samples, Supported Commands

  • Load testing - It is a type of performance testing to check the system’s behavior under load. The application is subjected to heavy loads to determine the system’s response time and the point of degradation and failure to perform the intended functionality.
  • Stress testing - System is stressed beyond its specifications to check the cause and incidence of failure. This testing is performed under heavy load by subjecting the application to huge information beyond storage capacity, performing complex database queries, Rapid and continuous input or requesting heavy retrieval of information from the database.
  • Usability testing – This is a critical part of testing concentrating on User-friendliness. The Application’s flow is tested on terms of ease of use, help documentation availability at appropriate instances. Basically system navigation is checked in this testing.
  • Performance testing – Can be subjectively called as load or stress testing depending on the application to be tested. The purpose of this test is to check whether system meets performance requirements.
  • Install/uninstall testing – The Application is tested for full along with partial, or upgrades install/uninstall procedures on different platforms under different operating systems operating under different hardware, software environment.
  • Security testing – This testing is done to check if the system can be penetrated by any hacking methods. It is the security testing process on the reaction of the system against possible unauthorized internal or external access. The Testing concentrates on the system and the database security against external attacks.
  • Compatibility testing – This Testing focuses on the software performance in a particular configuration which might include hardware, software, operating system and network environment and also on cross platform functionality.
  • Comparison testing – The product strength in terms of functionality with respect to competitor products and in case of version or release, the comparison to the existing version in terms of change request.
  • Recovery testing – This includes testing the response of a system on recovery from system crashes, hardware failures
  • Alpha testing – In this testing, an In house virtual user environment is created similar to the implementation environment. This testing is done at the end of the development cycle. Scope for slight design changes exists at this phase of testing.
  • Beta testing – This Testing is typically performed by end-users or users outside the purview of the project. This marks the final testing before releasing application for commercial purpose.
  • Smoke Testing – This testing is a generalized test of the functionality without getting into the core functionality in depth.

Here are the most common questions to address before starting the testing process. It is an analytical part of the testing where the core areas of testing are understood. This also determines which type of testing is required, whether manual or automated testing and also if automation of testing can be used effectively to achieve the purpose. Generally, automation is recommended only when repeated regression tests are needed. Automation has its own advantages and disadvantages but the fact remains that no automation can replace a good tester. The best method of testing would blend both manual and automated testing methods and is dependent on the nature of the application.

The factors to be analyzed in a real time testing are importance of  functionality of the application, high risk module of the application, most visible functionality of the Application, high security functionality of the Application, functionality of the largest financial Impact of the Application, the most import aspects of the Application, the modules of code complexity in terms of error incidents, Developers view of high risk aspects of the application, Problem areas which could cause Worst Publicity and most service complaints. Once these factors are analyzed, risks involved in releasing the application under time schedule is taken care of and it is easy to identify the kind of tests that could easily cover multiple functionalities reducing the redundancy in testing methodology adopted.

10 things to remember in Testing an Windows Application

  • Understanding the Important functionality of the Application
  • Identifying the High-risk module of the Application
  • Identifying the most visible functionality of the Application
  • Identifying the high security functionality of the Application
  • Identifying the functionality of the largest financial Impact of the Application
  • Identifying the most import aspects of the Application
  • Identifying the modules of code complexity in terms of error incidents
  • Collecting Developers view of high risk aspects of the application
  • Listing out Problem areas which could cause Worst Publicity
  • Identifying Problem areas which could cause most customer service complaints
RoutineBot is an interface testing software designed to help quality engineers with GUI testing and test automation.

Download 30-day trial, Test Samples, Script Samples, Supported Commands

Glossary

  • Server. A server is a machine with a specific set of programs that offer different types of service, which other machines (then called clients) request to do certain tasks

  • Client. A client is the requesting program or user in a client/server relationship.

  • 2-tier. The server holds both the application and the data. The application resides on the server rather than the client, probably because the server will have more processing power and disk space than the PC.

  • 3-tier. The data and applications are split onto separate servers, with the server-side distributed between a database server and an application server. The client is a front end, simply requesting and displaying data. Reason being that each server will be dedicated to processing either data or application requests, hence a more manageable system and less contention for resources will occur.

  • Hardware. The ability of the application to work with different hardware.
    Compatibility

  • Browser. The ability of the application to work with different browsers
    Compatibility

Made in Devoler

Copyright © 2000-2012 AKS-Labs. All rights reserved.