Articles

Test-Driven Design for the Project Manager

Many developers and testers are familiar with test-driven design (TDD), but how can managers use it to drive project implementation? In this article, John Goodpasture offers a guide to TDD design from the project manager’s perspective.

John C. Goodpasture's picture John C. Goodpasture
Mocks and Making Tests Easier to Read

There has been a lot of recent discussion on Twitter about the use of mocking frameworks and writing readable tests. Here is a roundup of some of the recent blogs on the subject.

Making Tests More Readable

Daniel Wellman's picture Daniel Wellman
Learning from Reading (and Rewriting) the Tests

Automated unit tests verify that a component is working as expected.  They also serve as a way to understand how code works, though this doesn't always happen by reading tests.  Sometimes understanding comes from tweaking the tests to observe new failures, or rewriting the tests themselves. 

Daniel Wellman's picture Daniel Wellman
Feature Injection: Part One

We are leaving the "last responsible moment" for a while. This month we start a discussion of Feature Injection, an analysis process based on real options and Kolb's circle of learning. The first episode ( of five ) introduces the "Information Arrival Processes.

StickyMinds Editorial's picture StickyMinds Editorial
Refactoring Doesn’t Mean Rewrite

Peter Schuh writes that it is not a good thing that the use of the term refactoring has grown so common, which makes him cringe every time he hears a business person say the word. Refactoring is meant to be one skill of many that is second-nature to a journeyman programmer.

Peter Schuh
Transitioning from Analysis to Design

The step between specifying requirements to working on a system design can be tricky. Fortunately, the basis on which the step is made can be calculated. Paul Reed thoroughly explains how the transition should progress and offers some instructions on how to move properly through this phase.

Paul R. Reed, Jr.'s picture Paul R. Reed, Jr.
Testing is Essential to Agile SCM

Rather than being an afterthought for SCM, an appropriate testing strategy is what enables an SCM in an agile environment. To be more agile, you need to avoid the silo-based perspective of development, SCM, and testing being three different disciplines. Instead, think about how the processes in one part of your development ecosystem affects what you can do in the others.

An example mind map used to plan a project Christmas party Agile Modeling with Mind Map and UML

Requirements gathering—or in an agile context, creating user stories—is always a challenging phase in software development. There are no standard processes or notations defined, only the understanding that the primary factors that make this phase effective are communication and facilitation skills. In this article, Kenji Hiranabe proposes using mind maps that focus on those primary factors when exploring user wishes. Then he takes this concept one step further and models the results with UML.

Kenji Hiranabe
Code Craft: Tame the Name

All code is not created equal. Learn from a master of the craft how to spot bad code and mold it into good. In the first iteration of this regular column, learn why selecting names for classes, methods, and variables is an art you'll want to perfect.

Mike Clark
post implementation problem reports Eliminating Functional Defects Through Model-Based Testing

Model-based testing is based on the premise that lowering costs and improving software reliability require a tight link between functional specifications and test cases. The test process should find problems in the specification of requirements and guarantee that the functionality called out in the specification is completely exercised during the testing effort. If testers can develop full-coverage test scripts directly from quality specifications, they can be highly confident that the functionality has been successfully translated into the delivered applications.

Peter Becker

Pages

StickyMinds is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.