Skip Navigation Links > Coding

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 checklist 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

 

Quote Start When quality is pursued, productivity follows.

 

Quote StartAll 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.

 

Quote StartImportant software components are always delivered with unit tests. For software that matters, there are no exceptions.

 

Quote StartRefactoring 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.