The Guide to Practical and Pragmatic IT Architecture Design

How to Test IT Architecture

Now we have designed and built the IT architecture and platform, we need to ensure it works according to the specifications and requirements. As we have seen earlier, there are functional and technical requirements that in the test phase need to be validated. 

Test Architecture

Technical testing typically has second priority in projects due to project timeline and budget pressure, but is as or even more important as the functional testing. Technical testing typically focuses on 4 areas:

Stress & Performance testing: 

Can the solution handle the expected and future volumes of users and transactions and is there space to grow, i.e. scalable?

Disaster recovery testing: 

Can the solution recover within specified timeframes its data and can it continue to operate without or with little intervention? This includes testing cluster and datacenter failover and backup and restore for instance.

Operability testing:

Is the application operable, do monitoring, error handling, logging and audit trails work? 

Security Testing:

Is the application open to vulnerabilities and hacking attempts, not only at firewall level, but also through the application?

These are the technical test phases for large applications, typically Core with large number of users and high business criticality. For smaller applications and solutions, not all these test phases need to be done as scope depends its usage and technical requirements. 

For each of the test phases, there are 5 basic steps:
1. Plan the Test and define test cases:
This plan needs already be established during the design and build phase and includes the strategy what tests will be performed and defines first the high-level test areas and then identify the test cases.

2. Create Test Scripts
For each of the test cases, test script needs to be identified. The test script includes the steps to perform and the conditions under which the case needs to the tested (what data, volumes, parallel load etc.). And it also needs to document the expected result. 
3. Create performance lab
As part of preparation of the technical test phase, the performance lab needs to build. The performance environment is the environment where the test phases will be carried out. Dependent on the test scope, this environment needs to mimic the production environment as realistic as possible. For instance, for performance testing, its needs to have the same number of servers, memory, network configuration as production will have.  For disaster recovery testing, clusters and secondary location need to be set up etc. In this environment, tooling also needs to be selected, such as testing, simulation and data population tools.

4. Execute the test cases
With the conditions predefined, the test cases need to be executed while the conditions are put in scenario as realistic as possible. Test results need to be documented. 

5. Process results and prepare reports
Once the results are obtained, they need to be compared to the expected results and see if the deviation is acceptable. If not acceptable, the application needs to be tuned and tests need to be re-executed to see if the deviation has been resolved. 

In the next sections we will go in depth in each of the technical test areas:

No comments: