Practical testing
Appropriate testing is governed by the type of spreadsheet to a certain extent, some or all of the following may or may not be useful. Clear all input data - results should be in an expected state (often zero), do the same with the reference data.
Populate every possible input and reference data cell with a 1 (one) - check they all flow through as expected
Populate the model with a known valid data set and confirm results agree
Populate the model with invalid data (input and reference) and check the impact, test data should be weighted towards realistic values, but should incorporate boundary values and invalid values. Input validation logic should be thoroughly exercised to ensure the validations fire whenever they should and never when they should not.
Consider carefully any possible missing inputs reference data or logic.
Vary the input data by a known proportion (say 20%) check the results move by the appropriate proportion (if the relationship is linear).
Use monte carlo simulation and tornado charts to check input/result relationships act as expected.
Use visualisation software to watch the relative values of cells as various inputs are changed.
Map the types of cells (formula, value or text) to look for unexpected types.
Review a list of unique formulas for possible issues like embedded constants
All the stuff from this powerpoint
Rip the model into a flat data table and point pivot tables at it, confirm results to formula based version
Trace formulas through all dependents/precedents for logical consistency
Ensure formula consistency where appropriate by re-copying and pasting formulas over whole blocks.
Add cross check totals wherever possible
Search for error results and deal with them (use select special and tab)
If you have used data validation (and you probably should) then be sure to click circle invalid and confirm there is no invalid data that is not part of the testing.
Use alternative approaches to confirm values, either different formulas or data filtering and/or pivot tables. For example break down a SUMIF to highlight those values that meet the criteria, then SUM them manually to confirm. It is useful to keep as much of the test structure as possible with the spreadsheet as this means it can be rechecked in production easily. The down side is the test elements can complicate a model, this can be minimised by using a dedicated test sheet and hiding it when not required.
If you are not using commercial quality spreadsheet testing and quality assurance products then you are probably wasting an awful lot of time and effort, and you will certainly be missing errors the tools find easily. |