The software development world has changed significantly in the past five years. Noteworthy among its many changes is the emergence of the "Unified Modeling Language" (UML) as an industry standard. While thousands of software computer professionals and students continue to rely upon the bestselling first edition of Software Testing, the time has come to bring it up to date. Thoroughly revised, the second edition of Software Testing: A Craftsman's Approach reflects the recent growth and changes in software standards and development. Outdated material has been deleted and new topics, figures, case studies now complement its solid, accessible treatment of the mathematics and techniques of software testing. Foremost among this edition's refinements is the definition of a generalized pseudocode that replaces the outdated Pascal code used in the examples. The text is now independent of any particular programming language. The author has also added five chapters on object-oriented testing, incorporated object-oriented versions of two earlier examples, and used them in the chapter on object-oriented testing, which he completely revised with regard to UML. In addition, GUI testing receives full treatment. The new edition of Software Testing provides a comprehensive synthesis of the fundamentals, approaches, and methods that form the basis of the craft. Mastering its contents will allow practitioners to make well-informed choices, develop creative solutions, and ultimately derive the sense of pride and pleasure that a true craftsperson realizes from a job well done.Paul C. Jorgensen is the author of 'Software Testing: A Craftsman's Approach, Second Edition', published 2002 under ISBN 9780849308093 and ISBN 0849308097.