listi.net

Listi.net

             


Testwind.docM (M)


Application Tools needed to make development easier

Codechek - Assists with identifying what line number a program blows up on, adds error handling and trace logic to your code.  Reduces the debugging time and problem solving time.  Can also help with statndards enforcement and automated code reviews for detection of poor

Error Handling techniques, in conjunction with

Program Shells

Code Reviews

Testing Tools

Problem management.  

Estimating

Scheduling

Time Tracking

Function List

Prototyping

Design Issues

Debbuging
Recording of known errors and how they were solved will be very useful in solving user's problems

Enhancing rules

Production Support

Turnover

Training

Documentation tools


Application: _________________________    Date: ______________    Tested by: _________________  

Version: _________   Window Name :  _____________________________________

Yes No

1. Is spelling correct? _____    _____

2. Is Grammar Correct? _____    _____

3. Background color is gray _____    _____

4. 3-D objects are used _____    _____

5. System uses Default font _____    _____

6. Is screen consistent with application standards _____    _____

7. Enter key performs standard default action _____    _____

8. Esc key performs Cancel operation _____    _____

9. Do Labels start with a Capital Letter _____    _____

10. Does system save windows size and position on exiting? _____    _____

11. Does window exit by double clicking the ctrl box? _____    _____

12. Buttons or menus which bring up other windows end in "..." _____    _____

13. Does the cursor move to the next logical position when pressing the TAB _____    _____
key?

14. Can user access all functions on the window with the keyboard only? _____    _____

15. Can the user access all functions using the mouse only? _____    _____

....  Can user make an ambiguous entry? _____    _____

....  Are errors prevented by preventing user from doing an action (ie entering _____    _____
characters into a numeric field?

16. For each Error Message:

16.1 User can press F1 (Help) to get help on the problem _____    _____

16.2 Is it clear what the problem is to the user? _____    _____

16.3 Is the cursor positioned to the field in error? _____    _____

16.4 Is the spelling and grammar correct? _____    _____

16.5 Is the standard error message text used? _____    _____

16.6 If the error is fatal is enough information logged so that the _____    _____
cause of the error can be determined?


16.7 Is language users language and not computer jargon? _____    _____


17. If the window is an "Option" Window:

17.1 Window is Modal  (to prevent re-entrancy) _____    _____

17.1 Options should not take effect until you press OK _____    _____

17.2 Changes should not take effect if you press Cancel _____    _____

17.3 Can't resize minimize or maximize an option window _____    _____

17.4 Buttons are on right side of window _____    _____

17.5 Window should be located centered around main window _____    _____
unless window wouldn't be visible then it should be positioned
at the edge of the screen

18. Each field:

18.1 has a unique access key on its label? _____    _____

18.2 Has a label identifying what the field is _____    _____

18.3 The label ends in a colon ":" _____    _____

18.4 Can have input only if the field takes input _____    _____

18.5 If "bad data" is entered then (A) a standard or clear error _____    _____
message is displayed and the cursor is positioned to the field in error.

18.6 If data is required, then (A) _____    _____

18.7 If data isn't in a specific required format then (A) _____    _____

18.8 If lower case data is entered it doesn't cause problems _____    _____

18.9 Leading spaces or trailing spaces doesn't cause problems _____    _____

18.10 Single quote character doesn't cause problems _____    _____

18.11 Unusable fields and function are disabled _____    _____

18.12 If a numeric field can user scroll using mouse to enter data? _____    _____

18.13 If their are specific choices which the user can make are they _____    _____
presented to the user?

18.14 Is language users language and not computer jargon _____    _____

18.15 Handles 0 properly _____    _____

18.16 Handles "Couldn't Insert or Paste data too long" that is you've _____    _____
enter more data than the field can hold as defined by it's record




18.17 Handles Negative numbers properly _____    _____

18.18 Handles decimal numbers properly _____    _____

18.19 Handles case where invalid date is entered? _____    _____

18.20 Handles case where from date is before to date? _____    _____

18.21 Handles case where date of  mm/yy/dd hh:mm is entered? _____    _____

18.22 Handles leading and trailing blanks properly? _____    _____

18.23 Handles entry of non-numeric in a numeric field? doesn't _____    _____
allow non-numeric entry to a numeric field.

18.24 Handles negative numbers (ie -1) _____    _____

18.25 Handles very large numbers _____    _____

18.26 Doesn't let the user enter data to a field which is larger than the _____    _____
field size (ie a description is 30 characaters, can user enter 40?)

18.27 Handles dates of m/d/yy format and all variations? _____    _____

18.28 Handles the year 2000 and later? _____    _____

18.29 Can you Cancel even though there is an error on the screen? _____    _____
Sometimes software will prevent you from canceling if there is an
error.  You should always be able to cancel.

19. Does system save users data so they don't have to retype repetitive data _____    _____

20. Is data validated before the next window is shown? ______    _____

22. Do all main menu items have unique accelerator keys and do highly used _____    _____
functions have accelerator keys?

23. The system will restore the user to the last "WindowState" they were _____    _____
in except minimized.

24. If the system uses a sequential file try the following:

24.1 Handles case where Disk is full _____    _____

24.2 Handles case where file is in use _____    _____

24.3 Handles case where creating file and the file already exists by _____    _____
asking user if they want to delete the file?

24.4 Handles case where user doesn't have a "C:\" drive _____    _____

24.5  Handles case where floppy drive isn't ready? _____    _____

24.6 Directory doesn't exist _____    _____

24.7 Disk doesn't exist _____    _____

24.8 Handles case where system exceeds allotted Files= in config.sys _____    _____

24.9 Disk isn't ready _____    _____

25. If system opens an Access database does it handle:

25.1  Handles Error 3051 Couldn't open file? _____    _____

25.2  Handles Error 3049 Database isn't an Access Database _____    _____

26. Handles "Out of Memory" Case _____    _____

27. If a long task is running:

27.1 Is response OK and program shouldn't be run as a batch? _____    _____

27.2 Can user cancel the task while it's running? _____    _____

27.3 Does system set the MousePointer to hour glass? _____    _____

27.4 Are options and buttons disabled to prevent incorrect _____    _____
File Not Found (MSAFINX.DLL)

27.5 Does the system prevent the user from re-entering the program _____    _____
again

27.6 Does the system display the Hourglass or some sort of status _____    _____
indicator

27.7 Can you "Alt-Tab" while the task is running _____    _____

27.8 Does system let the user know the user approximately when _____    _____
the task will complete?

27.9 If user Cancels in middle of a long transaction and has partial _____    _____
results can they mistake the partial results for the full results?

27.10 If an error occurs during a long task is the MousePointer reset _____    _____

27.11 Data can't be changed if it doesn't make sense to be able to _____    _____

28. DLL's:

28.1 System cleanly handles case where needed  DLL's are missing _____    _____
If parts of the system can still be used the user should be allowed
to use it.

28.2 System handles case where user has wrong or old version of _____    _____
a DLL

28.3 System handles case where not enough memory is available to _____    _____
load a DLL

29. Does window have a control button?  This will allow user to close the _____    _____
application if there is an unexpected error.

30. If the window performs Database operations try the following:

30.1 Can database inconsistencies cause system problems? _____    _____

30.2  Database doesn't exist because:
New user and database hasn't been created _____    _____

31. SQL error handling:

31.1 Handles Deadlocks _____    _____

31.2 Handles Invalid user id _____    _____

31.3 Handles missing stored procedure _____    _____

31.4 Handles invalid security to perform query _____    _____

31.5 Handles disconnect from server _____    _____

31.6 Handles query time-out _____    _____

32. For software interfacing with Excel:

32.1 Can spreadsheet exceed 16,384 Cells and does program handle _____    _____
it?

32.2 Does total columns support largest possible value? _____    _____

32.3 Does system handle case where user doesn't have Excel? _____    _____

32.4 Does system handle case where user has different startup _____    _____
volume the a program expects?

32.5 Is case where excel is editing a cell work? _____    _____

32.6 User presses ESC while Excel is running? _____    _____

32.7 Does system handle case where values are too large to fit in _____    _____
column and displays ########?

32.8 Does system work if Excel is already running? _____    _____

32.9 If there is any "On Activate" type of routines, does the error _____    _____
handling still work. Try Canceling a print.

33. If there are different options which different users would want they are _____    _____
supported via an options function?

34. Does system support multiple currencies if necessary? _____    _____

35. Does system support users date format if necessary? _____    _____

36. If window is minimized and is selected does it become activated and _____    _____
normal size?

37. Reports:

37.1 If a column on a report is always the same shouldn't the column _____    _____
appear once in the heading?

37.2 Do totals add up or are there problems due to rounding? _____    _____

37.3 Is the data on the report correct? _____    _____

37.4 Is report sorted in the proper order? _____    _____

37.5 If report is empty can user get out an "empty report?" _____    _____

37.6 Is a user getting a report which could really be an on-line _____    _____
function?

37.7 Is user getting a report in which they ignore the majority of _____    _____
the data and just look at a small percentage of the report?


37.8 Is report ordered according to the standard of report being sorted _____    _____
by leftmost columns.

37.9 For automatically generated reports (ie monthly/daily) is anyone _____    _____
looking at the report?

37.10 Does Report contain headings to properly identify its contents _____    _____

37.11 Does Report page properly with different print drivers.  The _____    _____
where the LaserJet IIIP drivers can give different results than the
HP LJ IV drivers.  

37.12 Does report support a print preview function? _____    _____

38.  Can user run multiple copies of the application when the shouldn't be _____    _____
allowed to?

39. Is screen interface consistent (i.e. if you can double-click a listbox to _____    _____
remove an item from it does this work on every listbox on the screen)

40. Are there any unnecessary limitations which might affect the user? _____    _____

41. Are there any long transactions which should be a batch process? _____    _____

42. Are there any "Time zone" issues to take into account? _____    _____

43. Is the data on the Window correct? _____    _____

44. Are there validation limits in one case but not in another case? (i.e. you _____    _____
can save 21 items but only query on 20)

45. Will listbox support display of largest data? _____    _____

46. Are you prevented from doing an action you should be able to do because _____    _____
item is grayed?

47. Can user press the F6 key to get to the next window in the application? _____    _____

48. Does error occur if application is canceled by Windows task manager? _____    _____

49. If a common Dialog Window:

49.1 Pressing Cancel and window exits _____    _____

50. If the software shells to an EXE:

50.1 Handles case where  EXE doesn't exist? _____    _____

50.2 Handles case where EXE isn't in users Path _____    _____

50.3 Handles case where user has an old version of the EXE _____    _____

51. If dates are involved does software work when date crosses month or _____    _____
year boundary?

52. Does system support dates for the 21st century? _____    _____

53. If software signs onto another system does it handle case where other _____    _____
system forces user to change there password after some specified time period?

54. Is the data sorted in the order which is useful for the user? _____    _____

55. Does system restore a window which has been minimized if user executes _____    _____
the function?

56. Does the application still work if a window exists and is minimized before _____    _____
being called?

57. Can user undo a deletion which was made by mistake or any other _____    _____
function which was made by mistake?

58. Can user redo an undo which was made by mistake? _____    _____

59. Does system have standard Help menus? _____    _____

60. Does system supply security features from preventing an unauthorized _____    _____
user from gaining access to secure data?

61. Can software run on a Network in a multi-user environment? _____    _____

62. Will windows fit if user has low screen resolution? _____    _____

63. Does system have a tool bar? _____    _____

64. Does screen have disabled fields which if error data appears in it an _____    _____
illegal function call won't happen?

65. Are there any cases where AppActivate might try to activate a windows _____    _____
that is no longer active or has a different heading?

66. Does system handle case where external data isn't in expected format? _____    _____

67. If system has a real time feed does modal windows cause feed to halt _____    _____

68. If the software connects with an external machine does reconnecting _____    _____
occur too frequently?

69. If user enters a password is it hidden from view and stored encrypted _____    _____
in the system?

70. If user assigns something a password does the system make the user _____    _____
verify the password?

71. Does system handle case if user tries to run another copy of the application _____    _____

72. Does user have way of importing or exporting data? _____    _____

73. Does system assist user with backing up their data? _____    _____

74. Does system recover damaged databases? _____    _____

75. Does system compress database? _____    _____

76.  Is it possible for the user to have an INI setting which they can't change? _____    _____
This can happen when commenting out an option but leaving unused active
code.

77. Pop up windows:

77.1 Does pop up window display long enough for user to read it? _____    _____
If user has a very fast computer and pop was coded to wait for x
iterations of a loop, then the pop up may be too fast.

77.2 Is there a cancel option for the user to cancel a long task? _____    _____

77.3 Is Pop up removed after task finishes _____    _____

77.4 Can user make a mistake by typing into the pop up window when _____    _____
they were on another window doing data entry?


78. Are the scrolling of numbers in a scrollable list fast enough? _____    _____

79. Does user have a way to maintain the data on the system? _____    _____

80. Does software detect that you are using an old version of the software _____    _____
and load a new one to you machine if your on a network?

81. Can you regression test the software? _____    _____

82. Are there any search problems due to entry of lower case or capitals _____    _____
where system doesn't expect it?

83. Does system warn you before so you save you data and don't lose it? _____    _____

84. If you can delete an item:

84.1 Does system support cascading deletes? _____    _____

84.2 Can you undo a delete? _____    _____

84.3 Does system prompt you with "Are you sure?" before deleting? _____    _____

85. Does program handle simultaneous update? _____    _____

86. Can there be any sharing problems? _____    _____

87. Does system warn you before exiting so you save you data and don't lose _____    _____
it?

88. Does system confirm with user before a file is overwritten? _____    _____

89. Does system supply a key (F6 in TST2) which jumps to the next window _____    _____
in the application

90. Can user define their own keys instead of the ones supplied by the program _____    _____
This will be useful if they run multiple application and F12 means exit.

91. Does system accept "" (quote character) or & (ampersand).  If the & is _____    _____
displayed in a label field it may appear as a "_" underscore.

92. Does system handle case where data isn't on the database. _____    _____

93. Does system handle case where there is a data inconsistency _____    _____

94. Does the system keep the database consistent if the computer goes down _____    _____
between table updates?

95. Does system let you create database consistencies via it's data maintenance _____    _____
functions.

96. Is the data on the system internally consistent.  If you add data from one _____    _____
program can you browse it from another.

97. Are INI parameters verified?  Will system handle case where the "Left" _____    _____
is off the screen or window doesn't fit onto screen?

98. Can users easily modify the database if they find "bad" or incorrect data on _____    _____
it?

99. Does system support features for the various levels of users? New users? _____    _____
Intermediate users, Advanced users?

100. Does system make sure that default window size doesn't hid any of the _____    _____
screen.  This can happen if you Enlarge a window and the system has saved the
old window size as the default?

101. Does system come with installation disk? _____    _____

102. Does system support an uninstall facility? _____    _____

103. Does application work if various needed files are missing or corrupted _____    _____
such as MDB files, REG.DAT, etc.

104. If screen saver comes on does it prevent user from seeing data (alarm) _____    _____
which they want to see?

105. If data is added or updated are all fields updated properly. _____    _____

106. Does Lost focus event cause a problem if another window automatically _____    _____
gets the focus?

107. Does software make all feasibly possible checks to make sure that bad or _____    _____
incorrect data isn't added to the database?

108. Is the interface intuitive? can the user figure out how to use the system _____    _____
without special training?

109. Does resizing the window work properly. _____    _____

110. If "Tab folders" are used is the active one bold and the inactive dim? _____    _____

111. Is spacing between controls same as other Microsoft programs? _____    _____

112. Are all buttons the same height, standard width if possible _____    _____
and aligned properly?

113. Can disgruntled employee send obscene data to a client? _____    _____

114. System is Deleting a querydef does it handle case where querydef doesn't _____    _____
exist (3011)

115. System is adding a field to a database, does it handle the case where the _____    _____
field is already there (3191)

116. If program fails are there any places where the system won't run because _____    _____
a table, file or other resource was temporarily renamed?







Notes:

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________




Application Testing

If user runs the application twice the second occurrence activates the first _____    _____
occurrence and exits.

Each window from an application has a separate Icon  when minimized _____    _____
This makes it easier to find your application

Are the icons intuitive to demonstrate functionality in a picture? _____    _____

Does main window have standard Menu Items?

File _____    _____

Edit _____    _____

View _____    _____

Insert _____    _____

Format _____    _____

Tools _____    _____

Window _____    _____

Help _____    _____

Are there ways to run the application to make sure it's data is consistent?
(ie Add a record. See if you can delete it)

Are there batch programs to verify the consistency of the database? _____    _____

Are there methods to correct database problems? _____    _____

Does system assist you with backing up your data? _____    _____

Regression Testing

Load Testing

Testing on various hardware configurations

Testion on user hardware configuration

Does system make sure user has backup of their database

Does system assist user with reporting problems or bugs



Application Checklist


How is the user contact (Too Much) (just right) (not enough)

Does application have standards _____    _____

Variable Naming Standards ______    _____

Error Handling? ______    _____

How does user feel about the application development? ______    _____


Are they satisfied with it? If not what aren't they satisfied with? ______    _____



Is their a centralized group assisting with standards ______    _____


How is training? (Excellent) (Very Good) (Good) (Little) (None) ______    _____

What is the quality of user documentation and Help ______    _____
(Excellent) (Very Good) (Good) (Little) (None)


Code Review Check List

For Each statement
AppActivate - Illegal Function Call
Is the heading being activated
Does the heading exist
What happens if the heading doesn't exist

DateAdd, DateDiff - File Not Found (MSAFINX.DLL) _____    _____


=  a + 1  Is Integers used and can they be exceeded _____    _____

IFF - File Not Found (MSAFINX.DLL) _____    _____

Mid$(" ...",  ) - if position or length is negative _____    _____

Open - File Not Found
Permission Denied
Setfocus - Illegal function call if object not available _____    _____

Shell - File not Found if file doesn't exist in proper directory _____    _____

Show - Out of Memory

String$ - Illegal Function Call if string$(-2," "), the numeric _____    _____
is negative

If - are the units being tested the same date = a date time will fail _____    _____

instr(a,b)  - does statement try to find an exact match this wasy _____   ______

Printer.print -  can get a 262 user error

For Each Sub or Function:

Is there a comment on the purpose of the sub or function _____    _____

Is there an Exit Function or sub before the error routine _____    _____

Is there an exit function or sub or resume statement in error routine _____    _____

Is there an "On error" statement _____    _____

For Each Form:

Load Event

Unload Event

Do all loops exit _____    _____

Does an IO loop not get the next record which will prevent the EOF condition _____    _____
from occuring?

Can Overflow occur due to using integers instead of Long _____    _____

Can statement cause an illegal function call

If check box is used does code do any "If Not ckBox"  This won't work _____    _____
because a not of 1' is -2  must test if ckBox.value = 0 then ...

If statement does a division is division by 0 prevented? _____    _____

SetFocus - Illegal Function Call
Is there a SetFocus to a disabled field _____    _____

If Listbox is assigned a value the click routine for the listbox will be executed
unless the value doesn't change.  Make sure that ignore flag is set only if
listindex changes



Documentation Check List

System: ________________________________  Date: _________________  


Table of contents _____    _____

Index _____    _____

Glossary _____    _____

Spelling Checked _____    _____

Grammar Checked _____    _____

Is documentation stored in the central location _____    _____

Is there a documenation standard? _____    _____

If there is a standard is it enforced? _____    _____

Are error messages and what to do described? _____    _____

Is there a problem/Solution table? _____    _____

Does Document use screen pictures? _____    _____

Does document use charts? _____    _____

Are examples used to explain more difficult concepts _____    _____

Is the document correct with no inaccuracies? _____    _____

Does document use examples to clarify difficult concepts? _____    _____


Document Check list

Does system include the following documents:

Cost Benefit Analysis _____    _____

Functional Specification _____    _____

Entity Relationship Diagram _____    _____

Disaster Recovery Plan _____    _____

Programming documentations _____    _____

Is documenation kept in a centralized location. _____    _____

General Rules

Eliminate Redundancies

Get the user involved

Don't put untested new software products into production





Window Design

Application: _________________________    Date: ______________    By: _________________  

Version: _________   Window Name :  _____________________________________


Fields

Field Name Format Required Default Validation
















Functions

Function Type





Errors


Field Sheet  

Application: _______________________ Window Name: _________________________

Field Name: ____________________    

Field Description: _____________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Min Length: __________  Max Length: ____________

Format: ____________________    Field Type:  __________________    (i.e. Text box, listbox ..)  

Dependency: __________________________________________________________________________

Possible Values: ________________________________________________________________________

_____________________________________________________________________________________
Special Validation: _____________________________________________________________________

_____________________________________________________________________________________

Default  Value: ___________________

Where information Come from: __________________________________

What is done with the information: ________________________________









Development Environment


Rate the Following from 5 - Excellent, 4 - Very Good, 3 Good, 2 - Average, 1- Poor, 0 - None

Are offsite backups kept _____    _____

Do developers go through sufficient training? _____    _____

Are code reviews performed? _____    _____

Are regression tests performed? _____    _____

Is documentation kept up to date? _____    _____

Are users involved throughout the development cycle? _____    _____

Are employees overworked? _____    _____

Are Projects Planned? _____    _____

Are there Development standards _____    _____

If there are Development standards are they enforced _____    _____

How accurate are estimates _____    _____

Does group use any type of estimating methodology or software? ______    _____

Are statistics kept on the development cycle (i.e. how much is spent on _____    _____
various aspects of development.

Function\User Requirements Checklist

Yes No

Tip of the Day _____    _____

Tip Wizard.  If there is a quicker way to do a function the system will tell you _____    _____

Customization of tool bar _____    _____

Macro Facility _____    _____

OLE 2 compliant _____    _____

Spell Checking of Output _____    _____

Multi-Currency _____    _____

System Hours of operation _____    _____

Number of Terminals _____    _____

For each Report::

Who will get the report output

What will be done with the report output

What will be done with the data on a field by field basis?

Sort order of report

Can user ask "Why" if some complicated algorithm deteremined something _____    _____

Recently accessed file list is kept ______    _____

Audit trail Requirments. _____    _____

Security Requirements _____    _____

Functional specs aren't read or updated?

Database recovery/roll forward _____    _____

Bug Checklist

System: _________________________     Bug No: ________________

Yes No

Has bug been fixed? _____    _____

Has bug been Tested? _____    _____

Has documentation been updated? _____    _____

Has entire program been searched for additional occurances of bug? _____    _____

Has entire system been searched for the same type of bug? _____    _____

Have standards been updated to prevent the bug? _____    _____

Has bug been turned over? _____    _____

Have Help screens been updated? _____    _____


Estimating Checklist



Design Checklist


Is there a deadlock prevention mechanism? _____    _____

Can all data be inputed via automated mechanism (ie from a file) _____    _____

Can all code run in an "Unattended Mode" so that if neccessary it can be _____    _____
run as a batch?

Does software support easy regression testing? _____    _____

Application will be able to take input from a file and write ouput to a file _____    _____

System should disable buttons and fields which the user cant access

Before every update or add or get the system will call the "CanUserDoThis"
routine which will validate the users security.


Problem Checklist


SQL

Can't locate data on the database can be because your pointing to the
wrong database. Are you pointing to the correct database?



10/17/94   I was getting a Can't add, record already exists error in system even though the record I was adding didn't exist.  This problem occurred because the database had an inconsistancy in it.  I had 2 tables.  Table 1 has a foreign key to table 2.  The tables had the following format

table 1
id
description

table 2
Parent
Child must be unique

Program did following:
Begin Transaction

Add record to table1 get the next available id

Add record to table2 but the id I got already existed

Back out transaction.

I will never be able to add a record without first correcting the database inconsistency

Work around will be to add dummy record to table 1

Real fix involves determining that there is a database inconsistancy and fixing it for the user

Lesson from this error.  
You can get database inconsistancies
Your system must be able to handle the case where you have a db inconsistancy





Debugging/Production support


Illegal Function Call

String$(-1," ")
AppActivate "Heading which doesn't exist"
SetFocus to a disabled field

Timer events can cause problems due to re-entrancy

Be careful of static or global variables during timer events or re-entrancy







Enhancing software


1. Adding On error to a module which never had it can cause new bugs.  If _____    _____
error handling isn't in a module user could have put it in a main routine.  Adding
error handling to every module could be a problem.  

2. Adding a new status to a table will take much longer than you expect. this is because you have to look at the entire system to make sure the the new status doesn't cause any new logic problems.


Error processing


Minimize coding of error logic

Get error logic to report exactly what line an error occured on.

Handle common errors such as "Out of memory", "Disk Full" in a standard way

Support dump of Global and local variables

Missing a ON Error will cause a VB program to abend

Code only one On Error  per program transactions
Advantages
Reduces the code size
Might be easier to back out of a transaction
Reduces the need for return code processing of each call

Disadvantages
Can't identify the line where an error occured just the calling routine




Can all code run in an "Unattended Mode" so that if neccessary it can be _____    _____
run as a batch



Training guidelines



Does user get a quick reference card? _____    _____

Does user have excersizes to try? _____    _____

Is there a training Manual? _____    _____

Is someone responsible in the organization for training? _____    _____

Do you have examples? _____    _____

Is there a lot of terminology that the user has to understand? _____    _____

Have you identified new or different terminology which users will have a _____    _____
problem with?

Are you teaching the right amount per training session? Don't try to teach the _____    _____
user too much at one time?

Is the Juggling paradigm used for training? _____    _____