Quality Assurance

Quality assurance is a process, and it must be an integral part of development, not subservient to it. A quality assurance process consists of a set of procedures, criteria, and guidelines which ensure that developed code works and agrees with specifications, and that the resulting system meets all requirements.

In order to achieve this, it is clear that the quality assurance process must be built into the development process, so the development lead must play a major role in designing the QA process; it cannot be completely delegated, because only the development lead or management have the authority to mandate the required procedures and checkpoints. Also, because of the tight integration of the QA process with development, designing a complete QA process requires intimate understanding of the workflow process being used. The development and QA process constitute a system, and someone must design the system, and then have the authority to institute it and subsequently work out the kinks. The first order of business for the lead development engineer, therefore, is to approach the development of a quality assurance process and its components (test suites, scripts, test databases, etc.) as a design and implementation task that is closely integrated with all other modules being designed and built, and the specification and implementation of these should ideally precede the actual system being built. All of the products of the analysis, specification, design, and implementation processes should be placed under configuration control, using a source code control system, and be made available project wide via a shared directory on a LAN. When the project transitions from one phase to the next (e.g., from design to development), the final versions of the documents produced in the prior phase should be published in an easily accessible form, such as an internal web site. A web site administrator would be responsible for publishing any updates to these otherwise frozen documents, and in general making sure they are current. Nevertheless, the documents of prior phases should be maintained under configuration control at least until the system is released, in case deleted material needs to be recovered.

Extract from "Advanced Java Development for Enterprise Application" written by Clifford J. Berg Published by Prentice Hall PTR New Jersey 1998