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? _____ _____ |