Understanding Software Quality Assurance in Software Engineering

Slide Note
Embed
Share

Quality assurance in software engineering is vital for ensuring that software meets explicit requirements, development standards, and implicit characteristics. The definition of software quality is explored, emphasizing the importance of adhering to requirements and standards, as well as meeting implicit user expectations. The background of quality assurance is discussed, highlighting its evolution and significance in product development.


Uploaded on Sep 10, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Software engineering Software engineering Chapter 7 Software Quality Assurance By By: Lecturer : Lecturer Raoof Raoof Talal Talal

  2. 7.1 Software Quality Assurance Even the most jaded software developers will agree that high-quality software is an important goal. But how do we define quality? A wag once said, "Every program does something right, it just may not be the thing that we want it to do."

  3. Many definitions of software quality have been proposed in the literature. For our purposes, software quality is defined as Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software.

  4. There is little question that this definition could be modified or extended. In fact, a definitive definition of software quality could be debated (discuss) endlessly. For the purposes of this book, the definition serves to emphasize three important points: 1. Software requirements are the foundation from which quality is measured. Lack of conformance to requirements is lack of quality.

  5. 2. Specified standards define a set of development criteria that guide the manner in which software is engineered. If the criteria are not followed, lack of quality will almost surely result. 3. A set of implicit requirements often goes unmentioned (e.g., the desire for ease of use and good maintainability). If software conforms to its explicit requirements but fails to meet implicit requirements, software quality is suspect.

  6. 7.1.1 Background Issues Quality assurance is an essential activity for any business that produces products to be used by others. Prior to the twentieth century, quality assurance was the sole responsibility of the craftsperson who built a product. The first formal quality assurance and control function was introduced at Bell Labs in 1916 and spread rapidly throughout the manufacturing world. During the 1940s, more formal approaches to quality control were suggested.

  7. These relied on measurement and continuous process improvement as key elements of quality management. Today, every company has mechanisms to ensure quality in its products. The history of quality assurance in software development parallels the history of quality in hardware manufacturing. During the early days of computing (1950s and 1960s), quality was the sole responsibility of the programmer. Standards for quality assurance for software were introduced in military contract software development during the 1970s and have spread rapidly into software development in the commercial world.

  8. The SQA group serves as the customer's in-house representative. That is, the people who perform SQA must look at the software from the customer's point of view. Does the software adequately meet the quality factors? Has software development been conducted according to pre-established standards? Have technical disciplines properly performed their roles as part of the SQA activity? The SQA group attempts to answer these and other questions to ensure that software quality is maintained.

  9. 7.1.2 SQA Activities The charter of the SQA group is to assist the software team in achieving a high quality end product. The Software Engineering Institute recommends a set of SQA activities that address quality assurance. These activities are performed by an independent SQA group that: 1. Prepares an SQA plan for a project. 2. Participates in the development of the project s software process description.

  10. 3. Reviews software engineering activities to verify compliance with the defined software process. 4. Audits designated software work products to verify compliance with those defined as part of the software process. 5. Ensures that deviations in software work and work products are documented and handled according to a documented procedure. 6. Records any noncompliance and reports to senior management.

  11. 7.2 Formal Technical Reviews A formal technical review is a software quality assurance activity performed by software engineers (and others). The objectives of the FTR are: 1. To uncover errors in function, logic, or implementation for any representation of the software. 2. To verify that the software under review meets its requirements. 3. To ensure that the software has been represented according to predefined standards.

  12. 4. To achieve software that is developed in a uniform manner. 5. To make projects more manageable. Each FTR is conducted as a meeting and will be successful only if it is properly planned, controlled, and attended. In the sections that follow, guidelines are presented as a representative formal technical review.

  13. 7.2.1 The Review Meeting Regardless of the FTR format that is chosen, every review meeting should abide by the following constraints: Between three and five people (typically) should be involved in the review. Advance preparation should occur but should require no more than two hours of work for each person. The duration of the review meeting should be less than two hours.

  14. Given these constraints, it should be obvious (clear) that an FTR focuses on a specific (and small) part of the overall software. For example, rather than attempting to review an entire design, walkthroughs are conducted for each component or small group of components. By narrowing focus, the FTR has a higher likelihood of uncovering errors.

  15. The review meeting is attended by the review leader, all reviewers, and the producer. One of the reviewers takes on the role of the recorder; that is, the individual who records (in writing) all important issues raised during the review. The FTR begins with an introduction of the agenda and a brief introduction by the producer. The producer then proceeds to "walk through" the work product, explaining the material, while reviewers raise issues based on their advance preparation. When valid problems or errors are discovered, the recorder notes each.

  16. At the end of the review, all attendees of the FTR must decide whether to (1) accept the product without further modification, (2) reject the product due to severe errors (once corrected, another review must be performed), or (3) accept the product provisionally (minor errors have been encountered and must be corrected, but no additional review will be required). The decision made, all FTR attendees complete a sign-off, indicating their participation in the review and their concurrence with the review team's findings.

Related


More Related Content