Functional Testing

Functional tests

Functional testing is simply looking for bugs and fixing them right?

Yes and no. Generally the aim of functional testing is to find bugs in the application under test (AUT) and correct these bugs. However, in a Citrix environment, the idea of looking for bugs in an application isn't important when the application is merely being moved from a desktop environment such as Windows XP to a thin client environment such as Citrix. This is because the application should have undergone bug checking when it was moved to the desktop environment in the first place.

The only time it's important to check for bugs in applications destined for thin client environments is when the application is being written specifically for the thin client environment. In such a case the criticality of application bugs is severe as they could cause many problems.

If you're environment involves using custom developed applications for a Citrix environment, I strongly suggest using the services of a professional functional tester to ensure that the number of bugs in the application is minimised. It's also wise to test any custom applications on a desktop environment first as this will help distinguish any issues as being Citrix based or actually application based.

In a Citrix environment, therefore our main functional concerns are compatibility and co-existence.

Compatibility and Co-existence

Citrix compatibility is concerned with assessing whether the application is suitable for a Citrix environment. Suitability includes whether the application is:

 • licensed by the application manufacturer to be used in a Citrix environment,

 • supported by the application manufacturer in a Citrix environment and

 • works in a Citrix environment.

Co-existence testing takes compatibility testing a step further by assessing whether the application can work alongside other applications.

In a typical Citrix environment, a number of users will be using applications from the same server, potentially using different applications at the same time. Therefore if one application cannot work when another application is running, the applications cannot co-exist with each other.

By checking to see whether applications are compatible and can co-exist within a Citrix environment, a process of rationalisation occurs. Those applications that fail this rationalisation process are deemed unacceptable for a Citrix environment.

Application Rationalisation

It is vital that a process of rationalisation is introduced to weed out applications that may cause issues. By doing so, these applications can be moved out of the frame, making the job easier. It would be foolhardy to assume that any application can be successfully deployed in a Citrix environment.

The most important part of migrating applications to a Citrix environment is to appreciate that not all applications will be successfully migrated.

"We will migrate all 300 of our applications to Citrix!"

Believing in a 100% application migration will only lead to disappointment and will be an additional burden on time and costs.

"There's not going to be any issues as moving to Citrix is just a platform change"

Assuming that migrating an application from the desktop (thick client) to Citrix (thin client) is the same as migrating the application from one version of the desktop to another can also cause problems.

Whilst it's fair to assume that migrating an application from Windows 2000 Professional to Windows XP Professional is definitely a platform change. Moving from Windows 2000 Professional to Citrix is definitely NOT a platform change. It's a complete environment change which affects the likelihood of the application working or not under Citrix.

It is critical therefore before undertaking any form of application testing on a Citrix environment that a process of rationalisation is introduced. Assuming that all applications can be successfully migrated to a Citrix environment is not practically possible. The first part of the rationalisation process is compatibility followed by co-existence.

Citrix Compatibilty Testing

Citrix Compatibility Testing is an essential first step in the process of Citrix functional testing, allowing you to develop a baseline of applications acceptable for use.

Citrix Coexistence Testing

Citrix Co-existence Testing is the next step after the compatibility testing has been completed, allowing for the testing of multiple applications to work together on the same server.