Tool Support for Software Quality Assurance L
Total Page:16
File Type:pdf, Size:1020Kb
Transactions on Information and Communications Technologies vol 9, © 1994 WIT Press, www.witpress.com, ISSN 1743-3517 Tool support for software quality assurance L. Fernandez Sanz Departmento de Lenguajes y Sistemas fm/ormaZzcos e 7%#emerm de/ ^o/^are de Informdtica, Universidad Politecnica de Madrid, Spain Abstract This paper provides an analysis of two important factors for introducing project Software Quality Assurance (SQA) activities tool support: tool selection and availability of SQA tools (software tools). Firstly, SQA activities during software development projects are reviewed under the perspective of Software Engineering standards. The paper uses these activities as a basis for providing a method to establish an adequate SQA tools introduction strategy that can be applied to any software development organization. Proposed tool selection approach is an attempt to extend author's CASE selection method based on the Capability Maturity Model (CMM). Finally, the paper discusses the availability of appropiate SQA tools. Tools panorama often leads software professionals to look for alternative sources (apart from marketed tools) to obtain tools that can support organization's SQA activities. Several industrial experiences are described in which these alternative sources of tools have been succesfully applied to support review techniques and software metrics. 1 Introduction to Software Quality Assurance Quality seems to be the star phenomenon at the end of the century in all productive sectors. Experts indicate that quality is one of the main competitive advantages for products and services. This new important role of quality has been perceived through new management scopes. Apart from the two traditional management objectives (money and time), now quality is another point of interest for business managers. Software development and maintenance is not an exception, especially when the expression "software crisis" (high maintenance cost, low productivity and continued poor quality) is often heard. Besides quality can be profitable, as stated in several references (e.g. see Transactions on Information and Communications Technologies vol 9, © 1994 WIT Press, www.witpress.com, ISSN 1743-3517 634 Software Quality Management Fernandez et al.[2], Vincent et al.[3], Kitchenham [4]). Software quality management has adapted ideas from the manufacturing area to provide a way for structuring organization's work methods to achieve quality objectives. This approach often leads to an organizational Quality Management System (QMS) with the purpose of providing "the organizational structure, responsibilities, procedures, processes and resources for implementing quality management"(ISO [5]). Although organization's quality management is a basic issue for succesful quality improvement, this paper is corcerned to SQA activities at project level. Therefore, I'll try to analyze quality management at project level. Project quality management must reflect both organization's quality strategy and particular (customer) quality requirements (Hall [6]). Before discussing a detailed presentation of project quality activities, it is important to offer some definitions about certain basic concepts that shall be used through this paper. Quality assurance (QA) is the technical implementation of quality management policy for each project. As it is defined by IEEE/ANSI standards QA is "a planned and systematic pattern of all activities to provide adequate confidence that the item or product conforms to established technical requirements"^]. Software quality assurance (SQA) is not a phase. It is an ongoing process to ensure that the quality of the procedures and processes results in a product that fully meets the user's requirements. Successful SQA needs planning and control. Software Quality Control (SQC) plays a main role in SQA as feedback for quality improvement decisions. Due to this reason many professionals in software community has payed great attention to SQC (even more, many people has concentrated SQA effort only in SQC). In fact, many of the SQA tools are SQC-oriented tools. 2 SQM and SQA in software life cycle I propose IEEE PI074 standard (IEEE [8]) as a reference document for the description of quality related activities during software life cycle. IEEE PI074 (not yet an approved standard) is a standard that tries to define the processes (and their constituent activities) that are mandatory for development and maintenance of critical software (it is recommended for non critical software). This standard does not prescribe a specific software life cycle model. So, it can be used to define a common and widely accepted set of quality related activities for software projects. The standard distinguishes between two kind of quality related processes: Transactions on Information and Communications Technologies vol 9, © 1994 WIT Press, www.witpress.com, ISSN 1743-3517 Building Quality into Software 635 Software Quality Management (SQM): planning and administration of the actions necessary to provide adequate confidence in the quality of software products Software Quality Assurance (SQA) activities to provide adequate confidence that the product conforms to established technical requirements SQM spreads its activities during the entire life cycle. SQM activities include: "Planning Software Quality Assurance": identifying software quality objectives derived using contractual reuirements as well as organizational guidelines and planning management organization, responsibilities, and actions (structure of a SQA plan can be obtained from [7]). Based on the SQA plan (and quality objectives) SQM must develop quality metrics (and methods for data collection and analysis) as required for the project to monitor the attainment of the quality goals throughout the life cycle. Quality metrics should be related both to software products and to processes of life cycle. Administration and management of software quality during the life cycle to provide adequate planning, reporting and feedback on the project's ongoing quality status (reviewing and measuring it against the established milestones and metrics in SQA plan). This activity originates Project Quality Assessments reports. Identification of quality improvement needs by using the results provided in analysis reports for metric data, found defects and users's view analysis (and other appropiate information). SQA activities (included in SQA plan) are catalogued in IEEE PI074 standard as part of integral processes. These processes are used to ensure the completion and quality of project functions during the entire life cycle. Integral processes include the following processes: - V&V. Software Configuration Management (SCM). Documentation development. Training. Although SCM is treated within the SQA plan (see IEEE [7]) there is a specific plan (SCM plan, refered in IEEE [9]) to deal with this discipline. In this paper, SCM is considered as a separated activity non directly related with SQA tasks. Thus, SQA activities are those included as part of V&V process, Transactions on Information and Communications Technologies vol 9, © 1994 WIT Press, www.witpress.com, ISSN 1743-3517 636 Software Quality Management including verification tasks as reviews and audits, and validation tasks, as testing. Detailed description of these activities include: V&V planning: identifying processes and process output information to be verified and validated. V&V methods include audits, reviews, prototyping, inspection, analysis and demonstration. This planning shall be documented in a Software V&V Plan (SVVP, see IEEE [10]). Execution of V&V tasks specified in SVVP. Collection and analysis of metric data Testing: planning, test specification development, execution and results analysis (all these processes are explained in detail in IEEE All these activities generate different reports about development products and processes that shall be managed by SQM function. 3 Tool support in software development Since 1979 (one of the first use of the term CASE as referred by Schulmeyer et al. [1]) CASE tools has taken on a increasingly broader meaning for software development. CASE is evolving from computer-aided documentation tools to the expected "intelligent methodology companion" predicted by Carma McClure [13]. CASE means "Computer Aided Software Engineering" and this definition implies that main purpose for a CASE tool is to support software processes. Although the meaning of the acronym CASE seems to be clear, many people restricts CASE tools to structured development techniques automation. As mentioned in Mosley [14], the field of CASE tools do not neccesarily have to be confined to classical automated support of structured analysis and design techniques (like some of the well-known CASE tools: TEAMWORK, EXCELERATOR, IEW, etc.). CASE tools can support a great variety of software processes and, of course, SQA activities. Of course, many organizations have considered tools to be a means for improving the consistency, repeatibility and definition of SQA activities. Although tools may offer evident benefits to software development and maintenance, studies on the adoption of tools indicate that they alone do not suffice for activities improvement; proper motivation, training and management within carefully planned implementation programme are also needed. However, as J.Cameron [15] says ("tools can sugar the methods pill"), tools constitute at very least a psychological help. All these benefits seem imposible if we cannot solve two existing