Coding & Quality Control
Review
| Testing
| Refactoring
| Tutorials
Code Review: Checks, balances, and feedback are
necessary to ensure the quality of the source code and the overall
health of the project. For all but critical sections such as a key
algorithms, automated tools should be used to perform the code
review and report the static and run-time results by graphical
means. The goal of a code review is to identify where quality and
performance problems exist and to offer potential solutions. In any
case, the objective is not to generate graphs to satisfy
documentation requirements, but rather to act upon the data to keep
the quality above some level defined by the project.
Unit Testing: This activity is concerned with creating integrated
but non-intrusive test code to probe component-level interfaces to
confirm that actual results equal expected results for various test
scenarios. A unit test seeks to determine if a software component is
in compliance with the requirements. Unit
tests are organized into suites of unit tests, suites of unit test
suites, and so on, to form a hierarchy of
regression tests. These tests serve as a valuable resource to
development, maintenance, quality assurance, and deployment teams
during the lifetime of the application.
Refactoring: Developing a new software
capability is a two-pass process. On the first pass the primary
objective is to get something working that meets the functional
requirements while bearing in mind of course, performance
expectations, engineering principals, and industry best practices.
On the second pass the objective is to critically examine that which
was built on the first pass in order to improve the quality and
performance. The refactoring stage must not change the outward
behavior of that which is already working. Suites of regression
tests are therefore required during and after refactoring to ensure
that the code is not broken after making changes. Without a complete
set of regression tests, refactoring is not really an option - too
risky.
Summary
When quality is pursued, productivity follows.
All
source code must be examined by an advanced
static analysis tool and any reported deficiencies acted on
immediately. Critical code segments must also be subject to a
manual peer review.
Important
software components are always delivered with unit tests. For
software that matters, there are no exceptions.
Refactoring
code is two-pass process. The first pass is focused on
developing a working solution. The second pass is focused on
quality, elegance, and performance issues.