1996 22.02 1998

Vol.22 n°2 (#262) february 1997

(ddj_1997_02.jpg)

p.6 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.18 UNIT AND REGRESSION TESTING

[author : Adrian McCarthy]

Testing a function, module, or object in isolation from the rest of the program — referred to as "unit testing" — coupled with rerunning tests to detect unexpected changes in behavior ("regression testing") can dramatically reduce your bug counts. Adrian describes how to build effective units tests and automate regression testing.

p.22 A DEBUG/TRACE TOOL

[author : Rainer Storn]

The debug/trace tool Rainer presents here is useful when you don't have a powerful debugger at hand, and also when you need to build trace functionality into your code for error-spotting support at the client's site.

p.30 JAVA GUI TESTING

[author : Alan Walworth]

As Java development takes off, so does the need to test GUI applications written in Java. Alan examines Java GUI testing issues and presents a test harness written in and for Java.

p.36 A DISASSEMBLER WRITTEN IN PERL

[author : Tony Zhang]

Tony presents the core subroutines of a disassembler written in Perl. Although designed for Intel's x86 instruction set, you can easily modify or customize the disassembler for your own applications.

p.42 EXAMINING THE WINDOWS NT FILESYSTEM

[author : Mark Russinovich and Bryce Cogswell]

Mark and Bryce open up the inner workings of the NT filesystem by describing how a filesystem request originates in a user's program and ends up as a disk access. They also present an application called Filemon that monitors and displays all filesystem activity.

EMBEDDED SYSTEMS

p.50 ROBOTS AND FINITE-STATE MACHINES

[author : Everett F. Carter, Jr.]

Designing and building autonomous robots presents a host of technical challenges. Our author focuses on one of these challenges, describing the high-level processing he implemented in designing a robot-control system.

NETWORKED SYSTEMS

p.60 UNIX FILESYSTEMS WITHOUT I-NODES

[author : Volker Lendecke] #60

The Linux kernel nfs, smbfs, and ncpfs filesystems make it possible to link Linux machines to file servers across a LAN — even though Microsoft's SMB protocol is not designed to handle UNIX clients like Linux. Volker presents a workaround for this limitation.

PROGRAMMER'S TOOLCHEST

p.68 EXAMINING C++ PROGRAM ANALYZERS

[author : Scott Meyers and Martin Klaus]

Our authors examine a bevy of off-the-shelf tools that parse and analyze C++ source code, enabling you to detect troublesome C++ code via static analysis.

p.76 TESTING TESTERS

[author : Ron van der Wal]

In an ideal world, development progresses smoothly from requirements to completion. In the real world, errors creep in. Ron examines a collection of commercially available automated testing tools that aid in ferreting out those errors.

COLUMNS

p.91 PROGRAMMING PARADIGMS

[author : Michael Swaine]

Apple, Java, and the BeBox are on Michael's mind this month.

p.97 C PROGRAMMING

[author : Al Stevens]

Al presents MIDI Xchg, a program that tests the MIDI data stream by sending event messages from one device to another as fast as possible.

p.103 JAVA Q&A

[author : Cliff Berg]

This month, Cliff shows how you can use Java's distributed programming model and access a SQL database from a Java applet.

p.107 ALGORITHM ALLEY

[author : Oleg Kiselyov]

Hoping to find the most efficient line between two points, Oleg examines scheduling algorithms and NP-complete problems.

p.111 UNDOCUMENTED CORNER

[author : George Shepherd and Scot Wingo]

George and Scot continue their examination of the CSplitterWnd class, this month showing how you can apply knowledge of the CSplitterWnd internals to solve common MFC programming problems.

p.117 PROGRAMMER'S BOOKSHELF

[author : Phil Mitchell]

Phil goes back to the future in his look at Thomas Landauer's The Trouble With Computers and The Future of Software, edited by Derek Leebaert.

FORUM

p.10 LETTERS

[author : you]

p.16 NEWS & VIEWS

[author : the DDJ staff]

p.119 OF INTEREST

[author : Eugene Eric Kim]

p.128 SWAINE'S FLAMES

[author : Michael Swaine]