Académique Documents
Professionnel Documents
Culture Documents
Individuals and organizations across the globe rely heavily on information technology. With an increase in the number of people using software in their daily lives and business transactions, there is a corresponding increase in the need for delivering quality software products. This chapter introduces the concept of Software Quality Assurance (SQA). It discusses the need for quality software and explains how to ensure the production of quality products. In addition, it explains the meaning of quality assurance and quality control and the difference between these two activities.
Objectives
In this chapter, you will learn to: Explain quality assurance Identify the software quality assurance activities Differentiate between quality assurance and quality control Identify the role of metrics in software quality assurance
Chapter 1
Introducing SQA
SQA is a planned and systematic approach for monitoring and improving the software development process. SQA processes evaluate the adherence of a software product to software product standards. These processes also define the procedures used for software development. The procedures consist of SQA activities designed to prevent defects in software. Standards and procedures define the methods for developing quality software, and the role of SQA processes is to ensure the existence and adequacy of these methods.
NIIT
SQA Activities
The SQA plan lists the quality assurance activities that need to be followed to develop quality software. SQA activities can be broken down into the following tasks: Application of technical methods: This helps the development team to achieve high quality design specifications and develop high quality software design. Conducting Formal Technical Reviews (FTRs): After the specifications and the design are complete, you need to assess the prototype and product design for quality. You can accomplish this through FTRs. These are structured review meetings in which a team technically assesses the product. Enforcement of standards: This task is a combination of two subtasks: z Process monitoring: This is an SQA activity that ensures that the development team follows the documented steps to complete a process. This is done by comparing the actual steps performed with those listed in the documented procedures. This activity is typically called verification. Verification helps determine whether or not interim deliverables meet their specifications. z Product evaluation: This task evaluates compliance of the final software product to the established standards. This activity is typically called validation. Validation is the process that evaluates a software application at the end of software development to ensure its compliance with the specified requirements.
1.4 Introducing Software Quality Assurance NIIT
To develop a high quality product, you need to perform both verification and validation. SQA processes ensure verification and validation activities by monitoring, reviews, inspections, and walkthroughs. The role of quality personnel in reviews, inspections, and walkthroughs is to observe, participate, and verify that the development team conducts and documents these activities correctly. Control of change: For large software projects, any uncontrolled change rapidly leads to disorder. Change control combines manual methods with automated tools to provide a mechanism for the control of change. This process ensures software quality by formalizing requests for change, evaluating the nature of the change, and controlling the impact of the change. To track the changes made to a software product, you need to maintain versions of all the related items, such as documents and artifacts related to the design phase. These items are known as configuration items and the process of maintaining all versions of these configuration items is known as Configuration Management (CM). This process involves controlling the changes made to any configuration item right from the design phase till the product is released. Measurement: When a product is developed, it must be measured to assess its quality. The quality of a software product can be measured by using software metrics. SQA audits: These are conducted to inspect a process or a product in detail by comparing the process or product with established procedures and standards. Audits review the management, technical, and quality assurance processes being followed during software development. Audits also enable you to check if all documented procedures are followed for software development. Record keeping and reporting: This provides procedures for collecting and circulating SQA information to the senior management. You need to document the results of reviews, audits, change control, testing, and other SQA activities for future reference.
NIIT
SQA Activities in the Software Conception and Initiation Phase SQA activities in the software conception and initiation phase involve reviewing the software project plan. This ensures that the processes, procedures, and standards identified in the plan are specific and clear. The observations of SQA activities in this phase can be recorded in the Software Project Plan Review checklist. The following table shows a sample Software Project Plan review checklist.
Software Project Plan Review Checklist S. No. 1 2 3 4 5 6 7 8 Area of Concern Is the scope of the software unambiguously defined? Is the terminology clear? Are there sufficient resources available? Are all the risks in each category identified? Are all the risks mitigated? Are tasks properly defined and in sequence? Are the pre-established budgets and deadlines realistic? Is the schedule realistic? Software Project Plan Review Checklist (Yes/No)
SQA Activities in the Software Analysis Phase SQA activities in the software analysis phase involve reviewing the Requirements Document created as part of the software requirement phase. This helps to ensure that the software requirements are complete, testable, and correctly expressed as functional, performance, and interface requirements. The observations of SQA activities in this phase can be recorded in the Software Requirements review checklist.
NIIT
3 4 5
SQA Activities in the Software Design Phase SQA activities in the software design phase involve assuring the following factors: The design adheres to the approved design standards defined in the management plan created in the project initiation phase. All software requirements are mapped to the software components. All action items are resolved according to the review finding of the high-level design review documentation. The approved design is placed under configuration management. The development team follows approved design standards. The allocated modules are included in the detailed design. The results of design inspections are included in the design. All action items are resolved according to the review findings of the detailed design review documentation.
NIIT
The observations of the design reviews can be recorded in the High-Level Design review checklist and the Detailed Design review checklist. The following table shows a sample High-Level Design review checklist.
High-Level Design Review Checklist S. No. 1 Area of Concern Does the software architecture reflect the software requirements? Are al the modules functionally independent? Are the interfaces defined for modules and external system elements? Is the data structure consistent with the information domain? Is the data structure consistent with the software requirements? High-Level Design Review Checklist (Yes/No)
2 3
4 5
NIIT
SQA Activities in the Software Construction Phase SQA activities in the software construction phase involve assuring the following factors: Audit of the results of coding and design activities including the schedule in the software development plan Audit of configuration management activities and the software development library Audit of deliverable items Audit of nonconformance reporting and corrective action system FTR of code The observations of code review can be recorded in the Code Review checklist. The following table shows a sample Code Review checklist.
Code Review Checklist S. No. 1 2 3 4 5 Area of Concern Is the design correctly translated into code? Are there any incorrect spellings or typing errors? Is the language being used appropriate? Is there compliance with the coding standards? Are necessary comments to be added in the code as per standards? Are there any incorrect or ambiguous comments? Are the data types and data declarations correct? Are the physical constraints appropriate? Code Review Checklist (Yes/No)
6 7 8
SQA Activities in the Software Testing Phase SQA activities in the software testing phase involve monitoring the testing process for conformance to standards. This means ensuring that the software testing process is in accordance with plans and procedures. Test documentation is reviewed for completeness and adherence to standards. SQA activities in this phase also involve reviewing the test
NIIT
plan. The observations from a test plan review are recorded in the Test Plan Review checklist. The following table shows a sample Test Plan Review checklist.
Test Plan Review Checklist S.No. 1 Area of Concern Are the risks of testing phase identified at the beginning of the software project considered and analyzed? Are the scope and assumptions of testing explicitly mentioned? Are the major test phases correctly identified and in sequence? Are major functions demonstrated correctly? Are the types of tests to be performed identified and mentioned? Is the test plan consistent with the project plan? Is the test schedule explicitly defined? Are resources and tools for testing available? Is the Test Entry/Exit Criteria explicitly defined? Is the Test completion criteria explicitly mentioned ? Are the types of defects along with their severity defined? Test Plan Review Checklist (Yes/No)
2 3 4 5
6 7 8 9 10 11
requirements. QA is oriented to the prevention of defects rather than their detection and is used to implement the defined quality policy of an organization through the process of development and continuous improvement. QA provides adequate confidence that products and services will be developed using quality processes to conform to specified requirements and meet user needs. Some QA activities are: Quality audit: Helps examine and review quality activities, such as walkthroughs and inspections, to determine the compliance of the quality activities with the quality specifications Process definition: Helps define a process to achieve the desired quality Tools selection: Helps select the appropriate tool to achieve the desired quality targets Training: Helps impart the desired skills to the development team to achieve the desired quality targets Peer review: Helps ensure that peer developers review the code Requirements tracking: Helps track changes in requirements or design Quality metrics collection: Helps quantify the quality and accuracy of software Quality Control (QC) is the process by which the quality of a product is compared with specific standards, and action is taken if the quality does not match the applicable standards. QC is oriented to the detection of defects rather than their prevention. Some QC activities include: Inspection: Refers to a structured review of the deliverables of each phase of the SDLC by using checklists. It helps identify potential threats. Testing: Refers to the process of determining defects. It helps ensure the presence of all desirable features and detect undesirable features in an application. Checkpoint review: Refers to the process of checking a series of questions developed to probe potential problem areas of the system. In other words, QA is process-oriented, while QC is product-oriented. This is because QA focuses on the prevention of defects by continuously monitoring and improving the software development process. QC, on the other hand, focuses on the detection of defects in the products created by following the software development process. QA makes sure that you are doing the right things, the right way. QC makes sure that the results of what you have done are what you expected.
NIIT
NIIT
4.
Review the metric for its usability: Finally, process experts can test and provide feedback on the metric. The feedback can help enhance the quality of products and the effectiveness of the processes.
NIIT
Solution
The following table lists the high-level design review checklist for the WestSide online banking project.
High-Level Design Review Checklist S. No. 1 Area of Concern Are all the requirements identified in the software requirements phase covered in the design phase? Are there separate modules for different types of users? Are the interface requirements for each module explicitly specified? Are the modules functionally independent? Is the technology to be used explicitly mentioned? Is the security factor considered as part of the design? Is the application designed using the existing centralized database? Is the facility for news ticker on the Home page provided in the application? High-Level Design Review Checklist (Yes/No)
2 3
4 5 6 7
NIIT
The following table shows the detailed design review checklist for the WestSide online banking project.
Detailed Design Review Checklist S.No. 1 Area of Concern Does the detailed design cover all the aspects identified as part of the high- level design ? Is the interface consistent with the architectural design? When a user logs on to the website using a user name and password, does the interface that appears depend on the users role? Is this condition specified as part of the algorithm ? Is the condition for blocking user account after five unsuccessful login attempts provided? Are all the interfaces user friendly? Are all the variable, functions, and class names meaningful and convey their use? Is the first letter of the variable names specified in small letters and does it specify the data type of the variables? Are the table names in the database meaningful? Detailed Design Review Checklist (Yes/No)
2 3
5 6
NIIT
Practice Questions
1. Which of the following is a quality control activity? a. Quality audit b. Tools selection c. Training d. Inspection Which of the following is a quality assurance activity? a. Testing b. Tools selection c. Inspection d. Walkthrough Which of the following SQA activities involves assessing and reviewing the prototype and product design for quality? a. Application of technical methods b. Conducting FTRs c. Enforcement of standards d. Control of change Which of the following SQA activities ensures that the development team follows the documented steps to complete a process? a. Application of technical methods b. Conducting FTRs c. Enforcement of standards d. Control of change Identify if requirements tracking is a quality assurance or quality control activity. Provide justification to support your answer.
2.
3.
4.
5.
NIIT
Practice Exercise
Exercise 1
Global Software Solutions Inc. is a software development company that provides financial analysis software packages to large and medium-sized financial companies. The company charges an upfront license fee for these packages and recurring fees for mandatory service and support contracts. The company has a software development team of approximately 100 members. During the development process, several team members may work on a software module. The lack of coordination among the team members results in more than one team member simultaneously working on the same module. This leads to multiple versions of the modules being created. This mismanagement causes numerous faults that are detected at the time of testing, resulting in costly reworks. Identify the cause of the companys problem and suggest an appropriate solution.
NIIT
Summary
In this chapter, you learned that: A product is called a quality product if it meets its specified requirements. The quality of the process used to develop a system also affects the quality of the software product. The quality policy specifies the overall intentions and direction of an organization with respect to quality. Quality management is that aspect of the overall management function that establishes and implements the quality policy. A set of guidelines that describe the organizational structure, responsibilities, procedures, processes, and resources for implementing quality management is called a quality system. To ensure that the set of guidelines specified in the quality system are being followed, you need to implement software quality assurance activities in each phase of the system development life cycle. SQA is a planned and systematic approach to monitor and improve the software development process. The project SQA plan specifies the assurance procedures that the development team needs to apply during each phase of the SDLC. SQA activities can be broken down into the following tasks: z Application of technical methods z Conducting FTRs z Enforcement of standards z Control of change z Measurement z SQA audits z Record keeping and reporting Quality methods can be segmented into two categories, preventive and detective. Quality Assurance is oriented toward preventing defects in development products, while Quality Control is oriented toward detecting defects in development products. Some QA activities are: z Quality audit z Process definition z Tools selection z Training
NIIT
Peer review z Requirements tracking z Quality metrics collection Some QC activities are: z Inspection z Testing z Checkpoint review Metrics are crucial for the development process and project management because they can measure the quality of each factor in a project.
z
NIIT
NIIT