Thursday, May 8, 2008

ICM Testing – Part 2: Test Phases and Traps

ICM systems, as every other software system, should be tested in phases. Here are the major test phases (there can be more or less depending on the complexity and size of the project)

Unit Test: Performed by the developer to ensure a specific component performs as per the requirements. Unit tests should be performed as the system is being built.

System Test (ST): While unit testing was performed with only a single rule, system testing tests entire plans. It ensures the entire system performs as expected and as defined.

System Integration Test (SIT): An ICM system often relies on receiving data from other existing systems. For example, it may expect a file received via FTP, from an ETL process or fetch data directly from a CRM system such as SAP or Peoplesoft. SIT will ensure the systems interact the way they should.

User Acceptance Testing (UAT): Once the ICM system is fully tested by the implementers, UAT is when the business user or owner of the system test and review the results of the system. UAT should be performed on the production system, with production-like data.

Other very important tests which should be performed during ST, SIT and UAT include:

Performance Testing: This test confirms if the processing of commissions can be performed within the required window.

Stress Testing: This test verifies how the system behaves if the data load is higher than expected. For example, the compensation data may increase year over year, or may be higher during quarter end, year end.

Regression Testing: Every time a system is altered, there is a risk for a defect to be introduced. Relevant tests should be performed again to ensure the system still works as expected.

Each of those test phases are usually done in parellel to major development life cycle activities - the "V-model" above illustrates this. I will have to keep the development phases discussion for the future but yes, the left part of the "V" is also necessary.

When working with an implementation partner or vendor, the client is usually mostly responsible for the User Acceptance Testing which I will discuss in more details later.

What I must stress as being extremely important is that it cannot be taken for granted that the implementer will necessarily have a rigorous testing methodology and ethics. To avoid having big surprises when reaching UAT, the client should keep an eye on other testing activities and ask for regular status updates.

Another common trap is that getting regular status updates may not be enough. It is important for the project team to design and agree on the test cases and test plan early on. In larger implementations this is often a step which should get a sign-off. This will ensure the implementers know what the expected results should be, which is very different than the implementers assuming they know what these results should be.

No comments:

Blog Search

Blog Directories

Sales Blogs - BlogCatalog Blog Directory

Enter your email address:

Delivered by FeedBurner

Add to Technorati Favorites

Companies Linking to Me


About Me

My photo
Ottawa, Ontario, Canada
Julien Dionne is a well-rounded consultant with global business management experience and outstanding technical, business and leadership skills. He earned a Bachelor of Applied Science in Software Engineering from the University of Ottawa, Canada, and he is a member of the Canadian Professional Sales Association. The views posted within this blog do not reflect the views of Julien’s current or previous employers and clients. Julien can be reached at