Chapter 1: Introduction

Organization


Chapter 2: Quality Ensurance

Lies, damned lies, and… statistics
Today
Test early, test often
But… I have a test team
“Houston, we have a problem.”
Debugging during development
Debugging test versions
Debugging in post-release or maintenance
Designing with diagnostics in mind
When are you done debugging?
Risk
Measure twice, cut once
Bug tracking
Source code control
Irreverent evangelizing
The best offense is a strong defense


Chapter 3: Applying the Scientific Method to Debugging

Observation
Inquiry
Hypothesis
Prediction
Experimentation
Analysis
Decision
Conclusion


Chapter 4: Visual FoxPro Debugging Tools

Debug options
Font and colors
Display timer events
Environment
Call stack options
Trace window options
Output window options
The native debugger
About the debug output window
About the call stack
About the trace window
About the watch window
About the locals window
About breakpoints
About configuration files
Debugger odds and ends: Stepping, resume, cancel
Coverage logging
Event tracking
Language elements
Error handling
Using views
Syntax coloring and IntelliSense
Rushmore optimization—SYS(3054)
The command window
The Help file
Tools outside of Visual FoxPro
Understanding the tool


Chapter 5: A Taxonomy of Common Visual FoxPro Bugs

Requirement-related bugs
Exceptions to business rules
The technique
Design-related bugs
Misunderstandings
Conflicts
Omissions
The technique
Characteristics
Variant variables
Implicit variable declaration
Comparison and assignment are the same (“=”)
Multiple RETURN statements
Optional parameters
Ambiguous fields, memory variables, and objects
Implementation bugs
Syntax bugs
Logical bugs
Performance
Data performance
Code
System bugs
The technique
Deployment
Maintenance bugs
Effective debugging
Conclusion


Chapter 6: Fitting into Enterprise Solutions

Using ActiveX and OLE controls
Using Automation servers
Building Automation servers
Windows API
Conclusion


Appendix A: Additional Resources

Visual FoxPro books
Debugging and good coding practices
Requirements gathering and design
Web resources