Welcome to EMC Consulting Blogs Sign in | Join | Help

BI Tester

Testing all things BI

  • The Importance of Being Documented

    I cannot stress how crucial it is for a Tester to have an understanding of the architectures and underlying cohesiveness of the system and this can  be understood from Project Documentation.

    Test Strategy and Scripts have a very strong dependency on Project Documentation, so when this is poorly executed you could have poor testing.  

    As you may have guessed it’s important to be able to assess document quality and demand for better quality where needed.

    One way to assess this quality is to use the 5Ws (Rudyard Kipling)

    I keep six honest serving-men
    (They taught me all I knew);
    Their names are What and Why and When
    And How and Where and Who.

     

    So far I have come across some documents that say what they do but not why they do it.

    “Why” is important than just the “what” you do,  as it makes the what relevant and in context and provides connectivity.

     

    I have built an application and this is what I did to make it work.... why?  To do calculations

     

    Applying where (location) and when (time) constraints highlights any important issues that might get overlooked. 

    The next thing is How. How is essential for actions to be taken by the reader/circulation list

    How do you implement this?  What are the prerequisites needed to do this.

    Create separate paragraphs for the How defining usage of what was created and why it was created

    Mixing what’s and how’s together without separating and you may lose emphasis on "hot soup" areas.

    Using the 5Ws helps define, contextualise, highlight and activate you into action ensuring Test Strategy and Scripts serve their purpose and dont gather dust.

  • The Requirements Track

    Requirements costs money - it describes what the client needs, and determines how much they are willing to spend, we as the Project team need to work out how we fulfil this need - if we get it wrong - we fall into the trap of a vicious cycle of delivery where we deliver with both client and team feeling it’s a lose-lose situation and no repeat business.

    Several easy steps to take are

    1. To make a requirements list (or user stories).
    2. Agree with the client what the priorities are (MoScoW approach will help).
    3. Ensure your team trace requirement from inception to delivery tracing all requirements through the system.
    4.  Present to the client your deliverable with full understanding of what requirements were delivered.

    This is a nice and easy flow very idealistic not likely to be as straight forward in reality.

    The realistic part of writing a Requirements list is this - it helps to manage change - change is inevitable and the client has to be coached about the (changes) and the impact of change and how we (client and team) manage this within certain boundaries

    Boundaries

    Project process

    Allow the client to add, update or descope requirements within certain boundaries, one of them being disruption of the project process. These boundaries coach the client not upset team productivity, and it gives the team a steady stream to row over, till the next change.

    Business process

    New requirements should be analysed from its own business impact and check what the ROI before hotfooting it to the team, knowing what the cost benefit, helps you see whether this upheaval is worth it, to your business and giving that information to your team helps them see how important and more importantly create test cases for your ROI so see if its testable, and able to show the true value when delivered.

    Note that requirements are everyone’s responsibility (client and team)

    Do an informal gap & impact of change for each change the client requires

    No impact - can be done during current process no impact on project (no impact on timescales)

    Minimal impact - can be done during current process but with some impact on project    (time scales affected)

    Major impact - can’t be done during current process major impact on project delivery and timescales   - change request

    Critical impact - affects the whole delivery - an abrupt stop (as in scrum) or terminate

    In each scenario coaching or carrying your client along is important - an honest update about the costs to them and to the team.

     

     

  • Request - Response - Testing with BPM in mind

     My experience with certain large and well known organisations that handle finance has piqued my interest in Business Process Management, I am no expert, but I certainly wish to get involved in this.

    First strike

    My angst was this - for one organisation I sent regular charity donations and they in turn sent regular cds and newsletters each month, as some stage this exchange had a hiccup when I renewed this for another year and the cds & newsletters stopped.

    What when wrong? I went online to try and retrieve my account which I had previously accessed to see the history of donations - the website had changed and I wasn’t able to access the account. I send an email from the site - no response.

    I called and spent hours to try and alert the organisation about the situation where funds were leaving and no acknowledgement of received funds, the account couldn’t be traced.

     

    Second strike

    I had set up my ISA a couple of years back and as I signed the declaration for the next year, a letter was sent stating that I hadn’t signed the declaration; I signed the declaration form and sent it.

    This happened 3 times - I went to the bank and physically handed this in, 2- 3 months later, they write back saying we haven’t received your declaration. Exasperated I call and explain - its déjà vu; their response - go through the process again.

    This time - I decide to write a strongly worded letter and send this by registered delivery and guess what- still no response.

    Consumer power

    With the charitable organisation, I decide to take a drastic action. I spoke with my card company who gave me a few solutions to alert the organisation by sending a notice about the funds being taken - this doesn’t work. Eventually my card was declared “fraudulently” used –my old card is cancelled - so now they get nothing.

    With my ISA I decided to transfer to another bank that would provide clear responses to requests and an easy renewal process.

    How do you solve the problem that’s...?

    These are large organisations - with global reach and are in no way small players with very little resources.

    What happened in both cases is this; having a period of renewal and suddenly we were out of sync.

    Each of these organisations had a synchronised

    1. Registration

    2. Payment / response

    3. Year end closure

    What they didn’t have was how to close the loop with the renewal process

    In the first case the old account was completely lost.

    In the second case it was the paper trail that didn’t interact with the software trail.

    Common Solutions 

    How does this relate to Testing? Its simple don’t   assume all your business scenarios are all set up and the loop closed.

    1. First solution is documenting current processes; this means the client and team know the processes that the client has.
    2. Next check that all your processes are joined up and have clear terminus OR join with current mainstream (happy) process.

    Testing the business scenarios now become important to ensure that a paper trail intersecting a software system should be thoroughly checked  to ensure this works, an example of where manual systems’ interacting with software systems is Terminal 5 . This is a clear indication of what can go wrong with large organisations where new systems were not in sync with its own "flow".

    1. Separate manual system work flow from software system work flow; do not assume they are running at the same rate. Keep the rates to hand when testing to know where the intersections occur and compare input - output rates to avoid backlogs.
    2. Run simulations for completed systems flow to see how your system would function when live.

    Synchronised Size

    Your clients will need to think of their businesses even when large - as being flexible, agile, and sensitive - to any change even one customer can’t be ignored.

    To become personable - growth seems to make organisations behave like a Goliath – slow, insensitive to change which leads to low trust. 

    In Sound of Music - Maria and the Captain dance the Ländler - a complex folk dance.

    Apply the same techniques - be synchronised (1, 2), sensitive (4) and effective (3).

     

     

     

     

     

     

     

  • NIL-NULL Education

                                                                                                                             

    Having done a number of Business Intelligence Projects as Test Manager, I have found it very important to have some nil-null education, as I had a rude “remembrance” the other day. It’s like knowing your times tables or doing arithmetic ... it should be standard practice but it’s not.

    Null pointe or Nil pointe?

    What’s the point of Null? A lot I say it could means several things to the business, could be bad KPIs or deceptively nothing has happened or could be that it has just thrown the 'blanket' over certain values - you just dont know what to do with it. Nil we are quite familiar - you do this in elementary maths (zero, zilch, nought) - we British known it well when we get ‘Nil pointe’ at Eurovision Song contest. You are aware that zero means just what it says  zero; it doesn’t require much for others to understand what the data means.

    The danger is beguiling, we kind of think they are the same - they are so not!

    Analyse this!

    Several things to do first -

    Maths of Null   (codename – ‘the blanket’)

    5 + null = Null 

    5 - Null = Null (still the 'blanket' you would have thought different)

    5 * Null = Null

    5 / Null = Null

    Maths of Nil  (codename – ‘the realist’)

    5 + 0 = 5

    5 - 0 = 5

    5 * 0 = 0

    5 / 0 = error (div. by zero - considered as zero result)

    Okay so you have been educated! - This is by no means and exhaustive list - but you can see why null is a blanket in its behaviour - it shrouds everything making it mysterious. Nil on the other hand has a different but expected behaviour.  

    The Intelligence

    So armed with this education - what can you do to help the business understand what they are looking at? Take an example,  I noticed a weird condition with data from a food retail business  in the data warehouse - in a column had null and zero - made me to wonder ... well,  what had happened? Then I found out that

    'NULL' means we did not check the stock

    '0' means we checked it and nothing was found.

    Strange! But that’s how the business looks at their data.

    Business Rules

    Find out what the business does with nulls and nils ensure you have an exhaustive list of what they expect when data is presented to them. Keep this close to your requirements list to help you meet any Test criteria, ensuring that when you test, data integrity is maintained through all the ETL Testing. It no easy feat but it has to be done, or else everyone see twisted, stumped, elongated or fattened data similar to going through a hall of mirrors.

     Work it out

    Once you have collated the business rules when writing your SQL, certain functions are helpful to use ISNULL stops the behaviour of a blanket and makes null behave like nil

    5 + ISNULL (null, 0) = 5

    5 - ISNULL (null, 0) = 5

    5 * ISNULL (null, 0) = 0

    NULLIF stops divide by zero and gives zero as the expected result

    5 / NULLIF (null, 0) = 0 *

    * correction: ISNULL (5/NULLIF(null, 0), 0) = 0

     

    With this knowledge we can tackle the null behaviour if we don’t trust it - in my experience look at each column and check whether those nulls or zeros are ever expected, for example at the end of a sales day all bread stock (end of day stock) would register nil - as no fresh baked bread would be kept till the next day, so if you ever saw a value something has happened.

    Envisage any calculations that the variable might hit to protect the actual meaning of its value, this will provide a safeguard against inerrant behaviour and creates a certain and expected result.

    Being aware of the effects of Null and Nil and what it means for the business will help your Clients get the true value of their data.

This Blog

Syndication

News

Locations of visitors to this page
Powered by Community Server (Personal Edition), by Telligent Systems