ISBN-13: 9783639150742 / Angielski / Miękka / 2009 / 124 str.
Incremental, test-driven development is sweeping the software industry, elevating testing from an ancillary activity to an integral part of the programming process. Unfortunately, in our recent experience developing production programs in Java, unit testing has only proven effective in assuring the reliability of code with a single thread of control; it is much less effective in concurrent programs. To facilitate the development of concurrent programs, we have developed: 1. An extension of the JUnit framework that actively supports the developer by treating tests that could silently ignore failures in auxiliary threads as test errors; 2. A lightweight Java annotation language that can be used to specify and check the threading invariants of both existing and new code; 3. A testing framework that can record and analyze the schedules of unit tests, detect deadlocks, and run the tests using modified schedules, increasing the likelihood that concurrency problems are discovered.
Incremental, test-driven development is sweeping thesoftware industry, elevating testing from anancillary activity to an integral part of theprogramming process. Unfortunately, in our recentexperience developing production programs in Java,unit testing has only proven effective in assuringthe reliability of code with a single thread ofcontrol; it is much less effective in concurrentprograms. To facilitate the development of concurrentprograms, we have developed: 1. An extension of the JUnit framework that activelysupports the developer by treating tests that couldsilently ignore failures in auxiliary threads as testerrors;2. A lightweight Java annotation language that can beused to specify and check the threading invariants ofboth existing and new code;3. A testing framework that can record and analyzethe schedules of unit tests, detect deadlocks, andrun the tests using modified schedules, increasingthe likelihood that concurrency problems are discovered.