Home > Better software through debugging and unit testing
Learning Guide:
EMAIL THIS

Better software through debugging and unit testing

02 Nov 2007 | SearchSoftwareQuality.com

Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Jennette Mullaney, Assistant Editor

Thorough debugging is a necessary step towards software quality. Bugs plague software project big and small, and today's complicated software makes debugging more difficult than ever.

Advancements in unit testing are made, better tools are created and development teams work proactively to scour their code. However, time pressures, poor planning and lack of knowledge take their toll on this type of testing.

This Learning Guide introduces developers to debugging and unit testing with a variety of articles, tutorials, tips and expert responses. If you have any resources that you would like to share, or have suggestions for a future Learning Guide topic, please email me.

TABLE OF CONTENTS
   Software debugging basics
   Unit testing basics
   Unit testing, Extreme Programming and TDD
   Debugging for security
   Other useful resources



  Software debugging basics

  • Article: Software debugging, testing and verification -- From "IBM Systems Journal," this is a general, accessible article, perfect for beginners. The authors explain the place of debugging in the software development lifecycle (SDLC) -- though some may disagree with their placement. The article is from 2001, but the problems the authors describe, constantly changing requirements, time crunch, wishful thinking about "fixing it later," are, sadly, still commonplace.


  • Article: Debugging -- While not terribly sophisticated, this straightforward article clearly states the main phases in many debugging processes. Identify bug, replicate bug, understand bug and fix bug are pretty routine. However, the author also advocates learning from the bug, a crucial step that is often ignored.


  • Article: Boost efficiency with a performance-tuned debugging strategy -- Using a case study, the author portrays a streamlined debugging process, including sample code along the way.


  • Article: Introduction to power debugging -- Ever use your debugger and think, "Gee, this thing doesn't work very well!" Before you give up on the tool, read this informative article on how to use your debugger in innovative ways so you can get the most out of it.


  • Article: Debugging: The software industry's dirty secret -- The author argues persuasively for increased attention for debugging. He describes two techniques, automatic bug detection and reversible debugging, as promising.


  • Expert response: Software bugs, errors and defects: What's the difference? -- A lot of confusion surrounds this topic. Expert Mike Kelly provides an excellent response to a frequently asked question.


  • Article: Multi-threaded debugging techniques -- Debugging a complicated multi-threaded application poses all sort of challenges. This article guides you through the process without skimping on the details.


  • Book excerpt: Why Programs Fail: A Guide to Systematic Debugging -- Chapter 3, Making Programs Fail -- Testing is one of the most important factors in software debugging. "Making Programs Fail" covers testing techniques and procedures as they relate to debugging.


  • Book excerpt: If I Only Changed the Software, Why is the Phone on Fire?: Embedded Debugging Methods Revealed -- Chapter 1, Debugging Other People's Code, Fast -- This elaborately titled book uses a fiction format to depict software debugging. Chapter 1 follows a team as they uncover a difficult bug and eventually figure out how to quash it. Code is provided, and the format is suited to beginners.


  • WhatIs.com definition: shotgun debugging -- When people aren't sure which debugging approach, they may try several methods. The problem with shotgun debugging, however, is you can introduce new problems.


Move on to our next section: Unit testing basics.



Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Software unit testing
Software testing deliverables: Developing a software testing strategy
Evaluating the benefits of automated software testing
Adopting continuous integration brings agility, other benefits
Tools, standards address persistent quality assurance (QA) issues
Increasing productivity with unit testing
Don't write simplistic test cases
How to develop a checklist for unit, integration and system testing
Making unit testing a priority
The Art of Debugging with GDB, DDD, and Eclipse -- Ch. 1
An approach to integration testing

Test-driven development (TDD)
Agile development growing, but problems remain
The challenges of test-driven development (TDD)
Agile and waterfall neck and neck as business side fails to engage
Big Blue dog learns new tricks: How IBM Software Group moved to agile
Clean Code: A Handbook of Agile Software Craftsmanship, Chapter 1 -- What Is Clean Code?
Successful test-driven development (TDD) with external systems
Improved software design with test-driven development (TDD)
Test-driven development and the ethics of quality
Continuous integration meets application performance management
Can test-driven development drive developers to test?

Extreme Programming (XP)
Reporter's Notebook: Jack Vaughan on agile methodology
The challenges of test-driven development (TDD)
How teams transition to agile development methodologies
Adopting continuous integration brings agility, other benefits
Clean Code: A Handbook of Agile Software Craftsmanship, Chapter 1 -- What Is Clean Code?
Software development groups take many routes to Agile
Agile Software Development: The Cooperative Game, 2nd Edition -- Chapter 3, Communicating, Cooperating Teams
Better software through debugging and unit testing -- Unit testing, Extreme Programming and TDD
Better software through debugging and unit testing -- Other useful resources
Addressing software quality issues with development models, methods

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
mock object  (SearchSoftwareQuality.com)
unit testing  (SearchSoftwareQuality.com)
V-Model  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary




Software Quality Testing - Research and White Papers
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts