Non-functional Testing

Before a new or upgraded system can be introduced into a live environment, it is critical that it is fully tested to ensure readiness and robustness. Non functional testing, conducted by our software experts, includes evaluating a system’s performance under load, testing its security, and verifying the disaster recovery procedures and infrastructure which will be in place when it goes live.

Performance Testing

The purpose of performance testing is to validate that the application performs well enough to meet business needs. For interactive systems, where load is generated by users, it typically includes measuring response times, throughput and system metrics such as CPU and memory utilisation with a view to ensuring that the system can handle the current user population and is scalable to likely future user populations. For batch processing, performance testing typically involves timing the relevant batch processes as they process realistic loads while monitoring system metrics. As part of a test plan, performance testing is an important, sometimes indispensable, part of ensuring that a system is fit to go live.

Failure to identify performance issues early in the project cycle can often lead to poor response times in production and potentially production failures at higher loads. Performance testing helps to identify such problems early and forms an important part of quality assurance.

We have completed performance testing of websites, CRM systems, billing systems, SAP systems, Citrix systems, and a range of other mission-critical systems. We use the best performance test tools from HP, IBM, Microsoft, Micro Focus, TestPlant and Neotys. In addition, we are familiar with a wide range of open source tools including: JMeter, LoadUI, and The Grinder.

These tools are used to simulate multiple users accessing a system simultaneously. The types of test commonly carried out include performance tests at peak load; stress tests, in which the load is increased until the system fails; and stability (or soak) tests,
which test an application’s stability over an extended period of time, perhaps several days.

Our highly experienced personnel have performance tested a wide range of different application technologies, including HTTP (web protocol), databases and Java protocols. Considerable experience has also been acquired of performance testing applications delivered via Citrix (XenApp and XenDesktop) and we have developed a Citrix Function Library for use with HP LoadRunner that speeds up the process of creating Citrix test scripts. We also developed a specific test harness for MQ Series load testing and specialise in the testing of telco systems.

Resilience Testing

This type of testing ensures that a system is resilient to system failures, is recoverable and behaves consistently in a manner acceptable to users. Most mission-critical applications are designed to failover to a back-up system if there is a failure on the normal production system. Once the normal production system comes back online, the application should revert to using it. We are experts at resilience testing to ensure that failover and recovery procedures conform to target specifications and service level agreements.

Disaster Recovery Testing

A disaster can be described as an event that prevents an organisation providing critical business functions for some predetermined period of time. We can help define and test the disaster recovery plan. This non functional testing will also identify information assets, such as data and source documents required for production database restoration, documentation required for restoring systems and data, and data that must be preserved to satisfy legal requirements and reduce business loss.

Operational Acceptance Testing (OAT)

An important part of non functional testing is to test that a system has solid operational procedures. These procedures ensure that a system can be operated effectively in normal use by the staff assigned to the task. While in normal use the system must meet business requirements and customer service level agreements. The procedures also ensure that, with the designated staff, the system can be installed, switched on and off and that all regular maintenance tasks can be carried out. They should also help with the rapid diagnosis and resolution of problems. Our operational acceptance testing (OAT) service tests these procedures and ensures they meet the above requirements. Our in-depth understanding of IT system infrastructures enables us to test technical operational procedures such as:

  • Start-up, shut-down procedures
  • Backup/restore procedures
  • Software distribution and deployment
  • Archiving
  • Batch processing and scheduling
  • System housekeeping
  • System monitors and alerts

Our OAT ensures that operating procedures are comprehensive, clearly documented and can be performed by non-familiar operators.

Security Testing

Security testing is a type of performance testing that measures the resistance of an application and its data to attempts at unauthorised use. Security testing can determine the quality of security measures, such as the policies, standards, guidelines, procedures, monitoring, and escalation processes to protect the system. These tests will examine roles and responsibilities of system users. They will also examine the existing network topology and identify security risks and vulnerabilities. Our experts help safeguard corporate assets to ensure that the security focus fits the business needs.