Testing Section
SSAS
 Stewart Scott
Table of Contents
Concessions..........................................................................................................................................3
Overall Test Strategy............................................................................................................................4
   Minimal Test Data............................................................................................................................4
   Expected Results..............................................................................................................................4
   Validation Checking.........................................................................................................................4
   Hard Copies of Outputs...................................................................................................................4
Minimal Test Data................................................................................................................................5
   Sales Table.......................................................................................................................................5
   Customer Table................................................................................................................................5
   Company Table................................................................................................................................5
   Sites Table........................................................................................................................................6
   Forecasts Table.................................................................................................................................6
Expected Results..................................................................................................................................7
   Tests.................................................................................................................................................7
Erroneous Data...................................................................................................................................28
   Presence checks.............................................................................................................................28
   Range Checks................................................................................................................................28
   Format Check.................................................................................................................................28
   Input Masks....................................................................................................................................28
   Lookups.........................................................................................................................................28
Extreme Data......................................................................................................................................29
Hard Copies of Outputs......................................................................................................................29
Concessions
 ●   Normally, the data-files would be encrypted, but for the sake of simplicity, the encryption
     algorithm will be tested separately, so that we can be sure that the correct data is entered into
     the files, and so that the entire table can be viewed in MS-notepad.
 ●   All password field concealment characters have been removed, so that we can ensure that
     the correct, or incorrect password was input.
Overall Test Strategy
Minimal Test Data
  ●   10 Sales team records (not including Admin)
  ●   10 Customer records
  ●   10 Site records
  ●   5 Company records
  ●   15 forecasts (of varying stages)
Expected Results
  ●   That the form resizes appropriately for varying positions of controls during different
      procedures.
  ●   That all tables will contain the data entered by the form plus separator characters ('#')
  ●   That all text boxes for phone numbers, and for postcodes, will use the appropriate input
      masks.
  ●   That the header image will revert the form back to its previous level in the menu hierarchy
  ●   That the Id number for each table is calculated correctly
  ●   That all statistics returned by the program are mathematically correct
  ●   That all menu buttons fire the appropriate events when clicked
  ●   That all combo boxes used for lookups, lookup the correct data field from the correct table
  ●   That the encryption/decryption algorithm functions (will be tested outside of the program,
      and away from the data)
Validation Checking
  ●   Check that phone numbers are validated
  ●   Check that Id number is presence checked
  ●   Check that postcodes are validated
  ●   Check that lookups assign the correct values in place of the one selected by the user
Hard Copies of Outputs
  ●   Check that contact viewing requests are processed and output correctly.
  ●   Check that statistical outputs are printed correctly.
Minimal Test Data
Sales Table
I decided to input 10 records, as that is the number of salespeople on the sales team. Not including
'Admin' as that account does not represent a person as such. Ten records should be more than
enough to allow representative testing of the system. Please see screen shot below:
Customer Table
I decided to input 10 records, as it mirrors the amount of salespeople, and having a vast net of
customer records would serve little purpose for testing purposes, as the principals of the program,
and the procedures will operate with equal functionality, irrespective of how many customers are in
the table (so long as the number is below 32,000) Please see the screen shot below.
Company Table
I decided to input 5 records, as there will be fewer companies than customers, and fewer companies
than sites. Please see the screen shot below:
Sites Table
I decided to put 10 records in the sites table, as one company will have more than one site, and the
number, having to be more than 5, might as well mirror the others, and be 10.
Forecasts Table
I decided to put 15 records in the forecast table, as it is the table that will have more records than
any other, please see screen shot below:
Expected Results
Tests
Test Number        Description       Expected Result        Reference    Success/failure
0             Login Menu Loads       Buttons are         #1-#2          Success
                                     deployed
1             Lockout after 5        Program closes,     #3-#4          Success
              incorrect login        preventing brute-
              attempts               forcing
2             Sales operations are Button is disabled #5-#6             Success
              only usable by Admin
3             Sales operation        Sales operation     #7-#12         Success
              buttons are loaded     buttons deploy
              correctly
4             Customer operation     Customer            #7-#12         Success
              buttons are loaded     operation buttons
              correctly              deploy
5             Site operation buttons Site operation      #7-#12         Success
              are loaded correctly   buttons deploy
6             Company operation      Company             #7-#12         Success
              buttons are loaded     operation buttons
              correctly              deploy
7             Forecast operation     Forecast operation #7-#12          Success
              buttons are loaded     buttons deploy
              correctly
8             All Sales operations   Form adds the       #13-#15        Success
              load correctly         appropriate
                                     controls, using its
                                     control deploy
                                     methods
9             All Customer           Form adds the       #16-#18        Success
              operations load        appropriate
              correctly              controls, using its
                                     control deploy
                                     methods
10            All Site operations    Form adds the       #19-#21        Success
              load correctly         appropriate
                                     controls, using its
                                     control deploy
                                     methods
11            All Company            Form adds the       #22-#25        Success
              operations load        appropriate
              correctly              controls, using its
                                     control deploy
                                     methods
12               All Forecast            Form adds the       #26   Failed – finishing
                 operations load         appropriate               touches to
                 correctly               controls, using its       functionality
                                         control deploy            needed.
                                         methods
13               Image header acts as    Should skip up a n/a      Success
                 an effective 'back'     level on the menu
                 button.                 hierarchy.
14               All report operations   All report         n/a    Complete failure.
                 load                    operations load           Event delegate
                                                                   problem
Screen shot 1:
Screen shot 2:
Screen shot 3:
Screen shot 4:
                 (To save paper, this was the code line used:
                 MessageBox.Show(string.Concat("Sorry, your username or password were
                 incorrect, you have ", Invalidateda.ToString()," attempts remaining
                 before lockout"));
Screen shot 5:
Screen shot 6:
Screen shot 7: (same as 6, but now logged in as Admin)
Screen shot 8:
Screen shot 9:
Screen shot 10:
Screen shot 11:
screen shot 12:
Screen shot 13:
screen shot 14:
screen shot 15:
Screen shot 16:
Screen shot 17:
Screen shot 18
Screen shot 19
Screen shot 20
Screen shot 21
Screen shot 22
Text not appearing on button. To be rectified before demonstration.
Screen shot 23
Having operated using the same search method as all my other searching functions, and can display
records selected by either list box, and alters the amout of controls, as see on the next page.
Screen shot 24
Screen shot 25
Again, the same search function was used, I see no reason to repeat what is programmatically the
same.
Screen shot 26
Erroneous Data
Presence checks
The only required fields are the ID numbers, and they are automatically evaluated by my
BushidoData.GenerateID function. The control displaying them is always disabled to ensure data
integrity. There is no way a user can, short of editing the files themselves (which would be hidden),
corrupt the data.
Range Checks
There are no range checks in this database, except for the 'stage' field of the 'forecasts' table, and
that operates as a lookup, based on a hard coded value list, making it impossible to corrupt.
Format Check
All dates are format checked, and the text field cannot lose focus until the user has entered the
correct number of /'s, as opposed to having an annoying error dialogue box. Alt tabbing still allows
the user to not be locked to one task.
Input Masks
Phone numbers, and Postcodes both have input masks, only allowing ASCII values befitting either
an alphabetic or numeric calculator in the appropriate place.
Lookups
Anything that could possibly be a lookup, has been make one, for the sake of both data integrity, as
well as speed of use. Everything from company affiliations through to salespeople. It is impossible
to enter non conforming data into the database, unless the wrong item in a combo box is clicked.
Extreme Data
This is not possible to test, as the system has no range checks in it, nor does it need them.
Hard Copies of Outputs
Due to problems with the System.Windows.Graphics event delegates, the reports cannot be printed
at this time, but will be ready by the date set for the practical demonstration.