The two approaches complement each other. Each brings benefits to the table, and both deserve a place in the spotlight. With these thoughts in mind, this month I'd like to look at testing in general and Java platform-related testing in particular. Next month, I'll begin to build a framework for testing your Java code. Let me begin by presenting the overall picture into which testing falls.
Most software applications are complex and abstract.
The requirements that guide their implementation are often unclear and even contradictory. In addition, human architects, designers, and developers often make mistakes. In either case, the results are defects. By testing an application, we hope to uncover the defects that arise from these sources and many others. These defects include typographical errors, logic errors, errors introduced due to insufficient understanding of the problem domain, and errors introduced due to poor programming practice.