Non Functional Testing

Non Functional tests

Non functional testing has been paramount in the success of every Citrix project I've worked on. Helping me isolate problems early on and solve them at minimal cost.

Once these non functional attributes have been successfully tested, the likelihood of a Citrix system being ready for use is markedly increased.

Whilst functional testing assures whether the application is compatible and can co-exist, non-functional testing focuses on ensuring that the Citrix system can behave as expected.

Non Functional assessments

Non-functional testing is used to assess:

 • how a system behaves

 • whether the behaviour is appropriate

 • whether the behaviour is acceptable

Non Functional behaviours

Typical non-functional behaviours include the following:

 • Performance

 • Load

 • Volume

 • Stress

 • Usability

 • Reliability

 • Maintainability

 • Configuration

 • Security

 • Recovery

 • Interoperability

Operational Procedures

Generally larger organisations have a set of principles which dictate how a system must operate. These principles are in essence behaviours such as those listed above that a system must satisfy before being able to be classed as 'Fit For Production'. Failure to adhere to these principles can cause a whole host of problems.

I strongly suggest to any organisation which doesn't have any operational principles in place, to consider implementing them.

The choice is simple,

Fix it cheaply in test OR pay a fortune to fix it when it goes 'live'.

If a behavioural issue appears when the Citrix systems are in production being used by actual users, then the costs to remedy this are going to be high. This is definitely the worst time to find out about behavioural issues especially considering that the costs of rectifying them will be very costly.

However, if these issues can be isolated in the test environment then the costs of fixing them can become minimal.

Performance Testing

My nonfunctional testing approach begins by looking at Citrix Performance testing, the essential first port of call in any non functional testing.

Performance testing's goal is to find and clear out any bottlenecks thereby optimising the environment. Once this is complete, I run load and stress tests to validate capabilities. Once that's completed, the other non-functional tests of maintainability, configuration, security, recovery and interoperability can be undertaken.

The scope of Citrix Performance testing needs to be fully appreciated, as this form of Citrix non functional testing is often misunderstood.

Load Testing

Once the environment has been cleansed of any bottlenecks, the next step is to look at Citrix Load testing to determine how the Citrix servers handle multiple users. Again there are many Citrix whitepapers which detail load tests data but I would seriously to advise conducting your own tests.

Stress Testing

Citrix Stress testing provides a safety net of ensuring the systems can cope gracefully should usage exceed expectations.

Volume Testing

Citrix Volume testing is a detailed form of load testing which can be quickly used to determine any issues.