Chapter 18. JUnit and Cactus
Testing software is arguably the most important success factor in software engineering. No matter how elegant your architecture, no matter how compelling the features and user interface, and no matter how well a system is marketed, untested or poorly tested software is failure waiting to happen. Software that’s tested is software that works, and working software is a pleasure, or at least a pleasant surprise.
Software testing has many dimensions. You can perform black box functional testing to determine whether an application operates correctly from an external standpoint without concern for the internal workings of the software. You can perform white box functional testing to validate the internal workings of the system at various levels. You can test the performance of software to determine how quickly it executes tasks under typical usage levels. You can perform load testing to determine the load threshold at which the system fails (or executes so slowly that it becomes effectively useless). You can perform user-acceptance testing, which tests software at an aggregate level to verify that a system performs acceptably to the target users, with metrics ranging from functional correctness to speed to interface aesthetics.
Software quality assurance is a subject of study in itself, and we won’t presume to summarize it broadly in a single chapter. Instead, what we cover here is the subset of software testing referred to as unit testing, which attempts to ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access