Practices
  Home arrow Practices arrow Page 2 - The Art Of Software Development (part 4): Delivering Quality
Dev Shed Forums  
Administration  
AJAX  
Apache  
BrainDump  
DHTML  
Flash  
Java  
JavaScript  
Multimedia  
MySQL  
Oracle  
Perl  
PHP  
Practices  
Python  
Reviews  
Security  
Smartphone Development  
Style-Sheets  
Web Services  
XML  
Zend  
Zope  
Mobile Linux  
App Generation ROI  
IBM® developerWorks  
Forums Sitemap  
E-Commerce Hosting  
Linux Web Hosting  
Managed Hosting  
Small Business Hosting  
VPS Hosting  
Weekly Newsletter

 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid  
Request Media Kit
Contact Us  
Site Map  
Privacy Policy  
Support  
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
Google.com  
PRACTICES

The Art Of Software Development (part 4): Delivering Quality
By: icarus, (c) Melonfire
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: starstarstarstarstar / 4
    2002-09-24


    Table of Contents:
  • The Art Of Software Development (part 4): Delivering Quality
  • Code To Zero
  • Casing The Joint
  • A Man With A Plan
  • Bug-bustin'
  • The Write Stuff
  • Endgame

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      error-file:tidyout.log Del.ici.ous error-file:tidyout.log Digg
      error-file:tidyout.log Blink error-file:tidyout.log Simpy
      error-file:tidyout.log Google error-file:tidyout.log Spurl
      error-file:tidyout.log Y! MyWeb error-file:tidyout.log Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article

     
     
    ADVERTISEMENT


    The Art Of Software Development (part 4): Delivering Quality - Code To Zero
    ( Page 2 of 7 )

    Writing code is only half the battle - the other half involves testing it. Typically, three types of tests are performed across the software development lifecycle.
    1. Unit testing: This involves testing the units, or individual code modules, that make up the entire system. This type of test is performed to ensure that each module meets the individual requirements laid down for it, and it highlights bugs or errors within each module. Typically, unit testing is not performed by the test team; rather, it is performed by the developer, or the developer's peer group.

      Unit testing is meant to confirm the functionality, data processing, logic flow and exception handling of a particular unit of code. In most cases, it involves supplying the code unit with a variety of input data and verifying that the output produced is as per requirements. Errors that are encountered can be rapidly fixed by the developer in this phase, before the code moves to the system test team for more exhaustive testing. Unit testing thus serves as the first defense in the battle against software flaws.

    2. System testing: In this second phase, the integrated system is tested to verify that all the modules within it are working properly, communicating with each other where required, and satisfy all inter-module dependencies. This second level of testing highlights flaws in the linkages between modules, and also serves to verify the complete functionality of the system as it will be delivered to the customer.

      Typically, system testing is performed by a separate test team, which installs the software in an independent test environment and proceeds to verify it using the test plan previously decided. This type of testing is intended to find flaws in the communication between modules, and also bugs within each module that may have been missed during the developer's unit testing. The test team may also provide feedback to the development team on the usability and performance of the software being tested; this feedback may be used to improve the product during subsequent test cycles.

    3. Acceptance testing: As the name implies, an acceptance test is the test that the software must undergo in order for it to be formally accepted by the customer. Although the test plan for this activity is defined near the beginning of this project (you might remember this from the second part of this article), this test is typically organized last, once the internal tests are concluded to the satisfaction of the project manager.

      Acceptance testing may be performed by the customer, or by an internal team acting on behalf of the customer. Note that it may be necessary to train the customer on proper operation of the system prior to acceptance testing. Depending on the nature of the application and the customer's requirements, acceptance testing may be performed on-site, or in a simulated environment that replicates the conditions of the real one.
    Each of these phases is essential to the software development process, and plays an important role in achieving the goal of high-quality, zero-defect software. Sadly, however, many organizations neglect this phase of the development cycle, and this is turn leads to bugs appearing at a later stage. Since it is generally understood that software bugs are erectified by the developer at no charge, the lack of adequate attention to software testing can cause project costs to mushroom...which is bad for the bottom line in the long run.

    It is for this reason that most successful companies pay rigorous attention to their quality control procedures, and ensure that processes are in place to discover and correct bugs before the software is released. Regardless of whether you're an independent developer or a manager of a large development team, remember to budget enough time in your schedule for a thorough test of your software, together with time for error rectification and re-test - your customers will thank you, and your organization's accountants will think nice things about you.

     
     
    >>> More Practices Articles          >>> More By icarus, (c) Melonfire
     

       

    PRACTICES ARTICLES

    - More Techniques for Finding Things
    - Finding Things
    - Finishing the System`s Outlines
    - The System in So Many Words
    - Basic Data Types and Calculations
    - What`s the Address? Pointers
    - Design with ArgoUML
    - Pragmatic Guidelines: Diagrams That Work
    - Five-Step UML: OOAD for Short Attention Span...
    - Five-Step UML: OOAD for Short Attention Span...
    - Introducing UML: Object-Oriented Analysis an...
    - Class and Object Diagrams
    - Class Relationships
    - Classes
    - Basic Ideas





    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 1 Hosted by Hostway
    For more Enterprise Application Development news, visit eWeek