How Tests Drive the Code To order this title, and for more information, click here
By Johannes Link, andrena objects ag, Karlsruhe, Germany.
Description Software testing is indispensable and is one of the most discussed topics in software development today. Many companies address this issue
by assigning a dedicated software testing phase towards the end of their development cycle. However, quality cannot be tested into a
buggy application. Early and continuous unit testing has been shown to be crucial for high quality software and low defect rates. Yet
current books on testing ignore the developer's point of view and give little guidance on how to bring the overwhelming amount of testing
theory into practice. Unit Testing in Java represents a practical introduction to unit testing for software developers.
It introduces the basic test-first approach and then discusses a large number of special issues and problem cases. The book instructs
developers through each step and motivates them to explore further.
Audience
Software developers and Java programmers.
Contents
Part 1: Basic Techniques
1 Introduction
1.1 Important Terms
1.2 XP Testing
1.3 Classic Testing
1.4 "Test-First Development"
- A Brief Definition
1.5 Java Only - Or Other Coffee?
1.6 Objectives of This Book
1.7 Organization of This Book
1.8 Conventions in This
Book
1.9 Web Site to This Book
2 Automating Unit Tests
2.1 What Do We Want to Automate?
2.2 Requirements to an Automation Framework
2.3 Junit
2.4 Summary
3 Basic Steps of the Test-first Approach
3.1 Step by Step
3.2 Dependencies
3.3 Organizing and Running Tests
3.4
Summary
4 Test Ideas and Heuristics
4.1 Reworking Single Tests
4.2 Black and White Boxes
4.3 Testing the Typical Functionality
4.4 Threshold
Values and Equivalence Classes
4.5 Error Cases and Exceptions
4.6 Object Interactions
4.7 Design by Contract
4.8 More Ideas to Find Test
Cases
4.9 Refactoring Code and Tests
4.10 Summary
5 The Inner Life of a Test Framework
5.1 Statics
5.2 The Life Cycle of a Test Suite
5.3 Project-specific Expansions
5.4 Summary
6 Dummy and Mock Objects for Independence
6.1 Little Dummies
6.2 Weltering in Technical
Terms
6.3 Big Dummies
6.4 Extending our Mansion
6.5 Endoscopic Testing
6.6 Mock Objects from the Assembly Line
6.7 Testing Threshold
Values and Exceptions
6.8 How Does the Test Get to the Mock?
6.9 Evil Singletons
6.10 Lightweight and Heavyweight Mocks
6.11 File Dummies
6.12 More Typical Mock Objects
6.13 External Components
6.14 The Pros and Cons
6.15 Summary
7 Inheritance and Polymorphism
7.1 Inheritance
7.2 Polymorphism
7.3 Summary
8. How Much is Enough?
8.1 The XP Rule
8.2 Clear Answers to Clear Questions
8.3 Test Coverage
8.4 Summary
Part II: Advanced Topics
9 Persistent Objects
9.1 Abstract Persistence Interface
9.2 Persistent Dummy
9.3 Designing
a Database Interface
9.4 Testing the "Right" Persistence
9.5 Interaction Between Persistence Layer and Client
9.6 Summary
10 Concurrent
Programs
10.1 Problems Using Threads
10.2 Testing Asynchronous Services
10.3 Testing for Synchronization
10.4 Summary
11 Distributed
Applications
11.1 RMI
11.2 Enterprise JavaBeans
11.3 Summary
12 Web Applications
12.1 Functional Tests
12.2 Testing on the Server
12.3
Testing with Dummies
12.4 Separating the Servlet API from the Servlet Logic
12.5 Testing the HTML Generation
12.6 Summary
13 Graphical
User Interfaces
13.1 The Direct Way
13.2 Short Detours
13.3 Summary
14 The Role of Unit Tests in the Software Process
14.1 Activities
in the Defined Software Process
14.2 Process Types and Testing Strategies
14.3 Costs and Benefits of Automated Unit Tests
14.4 Commercial
Process Models
14.5 Will Automated Unit Tests Fit in My Process?
15 Loose Ends and Opportunities
15.1 Unit Testing for Existing Software
15.2 Introducing Unit Tests to the Development Team
15.3 What's Missing
Part III: Appendix
A. Notes to JUnit
B. Unit
Tests with Other Programming Languages
C. Glossary
D. Bibliography & References
Books and book related electronic products are priced in US dollars (USD), euro (EUR), and Great Britain Pounds (GBP). USD prices apply to the Americas and Asia Pacific. EUR prices apply in Europe and the Middle East. GBP prices apply to the UK and all other countries.