Tuesday, February 3, 2009

ICUR, the Infrastructure CRUD


Every Software Tester is familiar with CRUD (Create, Read, Update and Delete). A standard test covering the whole lifecycle of any type of object. It helps detect a lot of basic defects, such as invalid settings, incorrect access rights and wrong dependencies.

In Infrastructure Testing a similar test can be used, that I call ICUR (Install, Configure, Update and Remove). This test covers the Lifecycle of most Infrastructure Components, be it Hard- or Software. The idea behind ICUR is that you put the Lifecycle in fast-forward.

Let's take the example of a new Mail Environment. First install the Mail Server Software. Then configure you first Mail Domain and all the settings. After that update with another Mail Domain+settings. Finally remove the Mail Domains and their settings. This is not very complicated if you concentrate just on the Mail Server.

My idea with ICUR is that also the usage is fast-forwarded. So when you update with another Mail Domain, you will also use that Mail Domain. How is this new Mail Domain used in your Organisation?, who is allowed to sent/receive Mail?, etc. When you remove the Mail Domain, how to archive the received mail?, what to do with bounced messages?, how to inform that the Mail Domain is not used any more?

The same strategy is applicable for an upgrade to a new version of the Mail Server Software, merging with another company or outsourcing the storage to a SAN provider. The moment you have an idea what changes might happen in the future, Fast Forwarding with ICUR gives you the benefit of bringing the future a bit closer so you can use ICUR to determine the impact.

2 comments:

Jeroen said...

Hello Brian,
Nice Eye-opener about ICUR. I certainly will remember this one.
I'm just curious about the Remove part: looking at most software they will leave some pieces on the PC/Server. Will this be a defect? Will this be blocking?

regards,
Jeroen

Infratester said...

Refering to you blog
(http://testconsultant.blogspot.com/2009/02/classification-of-unknown-unknowns.html)

If it is a known-known not, in other cases yes.