• No results found

Quality Management. Lecture 12 Software quality management

N/A
N/A
Protected

Academic year: 2021

Share "Quality Management. Lecture 12 Software quality management"

Copied!
36
0
0

Loading.... (view fulltext now)

Full text

(1)

Quality

Management

Lecture 12 – Software quality

management

doc.dr.sc. Marko Jurčević prof.dr.sc. Roman Malarić

University of Zagreb

Faculty of Electrical Engineering and Computing

(2)

The software quality challenge

• Software is (IEEE definition):

• Computer programs, procedures, and possibly associated

documentation and data pertaining to the operation of a computer system.

• The uniqueness of the software development process:

• High complexity, as compared to other industrial products

• Invisibility of the product

• Opportunities to detect defects (“bugs”) are limited to the product development phase

(3)

Quality Concepts

• Variation control is the heart of quality control

• Software engineers strive to control the

• process applied

• resources expended

(4)

The software quality challenge

• Factors affecting defect detection in software products vs. other industrial products (source: Software Quality Assurance From Theory to Implementation, p. 6)

(5)

• significant parts of advanced devices as well as of household machines and other products include embedded software

components (usually termed “firmware”) that are integrated into the product.

• These software components (the firmware) share the same characteristics of the usuall software products

(6)

Software quality – IEEE definition

• Software quality is:

• 1. The degree to which a system, component, or process meets specified requirements.

• 2. The degree to which a system, component, or process meets customer or user needs or expectations.

(7)

Software quality management and software lifecycle

Collecting requirements and defining scope of IT project (focus on

verification if defined requirements will be testable)

Designing the solution (focus on planning test process e.g. what type

of tests will be performed, how they will be performed in context of test environments and test data.

Solution implementation supported by creating test cases and

scenarios, executing them and registering defects including coordination of fixing them.

Change management, supported by verification how planned

changes can influence the quality of created solution and eventual change of test plan.

Closing project, supported by realization number of tests focused on

complex verification of overall quality of created solution. It can include System Integration Tests, User Acceptance Tests and Operational Acceptance Tests.

(8)

Causes of software errors

Classification of the causes of software errors:

• (1) Faulty definition of requirements

• faulty definition of requirements, usually prepared by the client, is one of the main causes of software errors

• Erroneous definition of requirements

• Absence of vital requirements

• Incomplete definition of requirements

• Inclusion of unnecessary requirements, functions that are not expected to be needed in the near future

• (2) Client–developer communication failures

• Misunderstandings resulting from defective client–developer

communication are additional causes for the errors that prevail in the early stages of the development process

(9)

Causes of software errors ...

Classification of the causes of software errors:

• (3) Deliberate deviations from software requirements

• The developer reuses software modules taken from an earlier project without sufficient analysis of the changes and adaptations needed to correctly fulfill all the new requirements; due to time or budget

pressures, the developer decides to omit part of the required functions in an attempt to cope with these pressures

• (4) Logical design errors

• (5) Coding errors

• (6) Non-compliance with documentation and coding instructions

• (7) Shortcomings of the testing process

• (8) Procedure errors

(10)

Software quality assurance – The IEEE definition

• Software quality assurance is:

• 1. A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements.

• 2. A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with quality control.

• Software quality assurance is (expanded definition):

• A systematic, planned set of actions necessary to provide

adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines.

(11)

SQA

• SQA should not be limited to the development process.

• It should be extended to cover the long years of service

subsequent to product delivery. Adding issues directly related to the software product introduces quality issues that integrate

software maintenance functions into the overall conception of SQA.

• SQA actions should not be limited to the technical aspects of the functional requirements, but should include also activities that deal with scheduling and the budget.

(12)

The objectives of SQA activities

• Software development (process-oriented):

• 1. Assuring an acceptable level of confidence that the software will conform to functional technical requirements.

• 2. Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.

• 3. Initiating and managing of activities for the improvement and greater efficiency of software development and SQA activities. This means improving the prospects that the functional and managerial requirements will be achieved while reducing the costs of carrying out the software development and SQA activities.

• Software maintenance (product-oriented):

• 1. Assuring with an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements.

• 2. Assuring with an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements.

• 3. Initiating and managing activities to improve and increase the efficiency of software maintenance and SQA activities. This involves improving the prospects of achieving functional and managerial requirements while reducing costs.

(13)

Classifications of software requirements

• Classifications of software requirements into software quality factors:

Product operation factors: Correctness, Reliability, Efficiency,

Integrity, Usability.

Product revision factors: Maintainability, Flexibility, Testability.

Product transition factors: Portability, Reusability,

(14)

Product operation software quality factors

Correctness requirements are defined in a list of the software

system’s required outputs

Reliability requirements deal with failures to provide service. They

determine the maximum allowed software system failure rate, and can refer to the entire system or to one or more of its separate functions.

Efficiency requirements deal with the hardware resources needed to

perform all the functions of the software system in conformance to all other requirements.

Integrity requirements deal with the software system security, that is,

requirements to prevent access to unauthorized persons, to

distinguish between the majority of personnel allowed to see the information and a limited group who will be allowed to add and change data.

Usability requirements deal with the scope of staff resources needed

(15)

Product revision software quality factors

Maintainability requirements determine the efforts that will be

needed by users and maintenance personnel to identify the reasons for software failures, to correct the failures, and to verify the success of the corrections.

• The capabilities and efforts required to support adaptive maintenance activities are covered by the flexibility

requirements. These include the resources (i.e. in man-days) required to adapt a software package to a variety of customers of the same trade, of various extents of activities, of different ranges of products and so on.

Testability requirements deal with the testing of an information

(16)

Product transition software quality factors

Portability requirements tend to the adaptation of a software

system to other environments consisting of different hardware, different operating systems, and so forth.

Reusability requirements deal with the use of software

modules originally designed for one project in a new software project currently being developed.

Interoperability requirements focus on creating interfaces with

other software systems or with other equipment firmware (for example, the firmware of the production machinery and testing equipment interfaces with the production control software).

Interoperability requirements can specify the name(s) of the software or firmware for which interface is required. They can also specify the output structure accepted as standard in a specific industry or applications area.

(17)

The SQA system – an SQA architecture

• SQA system always combines a wide range of SQA components, all of

which are employed to challenge the multitude of sources of software errors and to achieve an acceptable level of software quality

• SQA system components can be classified into six classes:

• Pre-project components. To assure that (a) the project commitments have been adequately defined considering the resources required, the schedule and budget; and (b) the development and quality plans have been correctly determined.

• Components of project life cycle activities assessment. The project life cycle is composed of two stages: the development life cycle stage and the operation– maintenance stage.

• The development life cycle stage components detect design and programming errors. Its components are divided into the following sub-classes: Reviews, Expert opinions,

Software testing.

• Components of infrastructure error prevention and improvement

• eliminate or at least reduce the rate of errors, based on the organization’s accumulated SQA experience

• Components of software quality management.

• control of development and maintenance activities and the introduction of early

managerial support actions that mainly prevent or minimize schedule and budget failures and their outcomes

• Components of standardization, certification, and SQA system assessment • Organizing for SQA – the human components

(18)

Software project life cycle components

• main components are:

• Reviews

• Expert opinions

• Software testing

• Software maintenance

• Assurance of the quality of the subcontractors’ work and the customer supplied parts.

(19)

Reviews

• The design phase of the development process produces a variety of documents.

• The printed products include design reports, software test

documents, software installation plans and software manuals, among others. Reviews can be categorized as formal design reviews (DRs) and peer reviews.

(20)

Software Reviews

• Purpose is to find defects (errors) before they are passed on to another software engineering activity or released to the

customer

• Software engineers (and others) conduct formal technical reviews (FTR) for software engineers

• Using formal technical reviews (walkthroughs or inspections) is an effective means for improving software quality

(21)

Review Roles

• Presenter (designer/producer).

• Coordinator (not person who hires/fires).

• Recorder

• records events of meeting

• builds paper trail

• Reviewers

• maintenance oracle

• standards bearer

• user representative

(22)

Formal Technical Reviews

• Involves 3 to 5 people

• Advance preparation (no more than 2 hours per person) required

• Duration of review meeting should be less than 2 hours

• Focus of review is on a discrete work product

• Review leader organizes the review meeting at the producer's request

• Reviewers ask questions that enable the producer to discover his or her own error (the product is under review not the producer)

• Producer of the work product walks the reviewers through the product

• Recorder writes down any significant issues raised during the review

• Reviewers decide to accept or reject the work product and whether to require additional reviews of product or not

(23)

Why do peer reviews

• To improve quality

• Catches 80% of all errors if done properly; both coding errors and design errors

• Enforce the spirit of any organization standards

(24)

Expert opinions

• Expert opinions support quality assessment efforts by introducing additional external capabilities into the organization’s in-house development process.

(25)

Statistical Quality Assurance

• Information about software defects is collected and categorized

• Each defect is traced back to its cause

• Using the Pareto principle (80% of the defects can be traced to 20% of the causes) isolate the "vital few" defect causes

(26)

Software testing

Software tests are formal SQA components that are targeted

toward review of the actual running of the software.

• tests are based on a prepared list of test cases that represent a variety of expected scenarios

• examine software modules, software integration, or entire software packages (systems)

Software testing programs are constructed from a variety of

tests, some manual and some automated. All tests have to be designed, planned and approved according to development procedures.

test report will include a detailed list of the faults detected and

recommendations about the performance of partial or complete recurrent tests following a subsequent round of corrections

(27)

Software maintenance components

• Software maintenance services vary in range and are provided for extensive periods, often several years.

Corrective maintenance – User’s support services and

correction of software code and documentation failures.

Adaptive maintenance – Adaptation of current software to new

circumstances and customers without changing the basic software product.

Functionality improvement maintenance – The functional and

performance - related improvement of existing software, carried out with respect to limited issues

(28)

Infrastructure components for error prevention and improvement

• goals of SQA infrastructure are the prevention of software faults or, at least, the lowering of software fault rates, together with the improvement of productivity

• This class of SQA components includes:

• Procedures and work instructions

• detailed definitions for the performance of specific types of

development activities in a way that assures effective achievement of quality results

• Templates and checklists

• Staff training, retraining, and certification

• Preventive and corrective actions

• Configuration management

(29)

Verification and Validation

• Verification and Validation are independent procedures that are used together for checking that a product, service, or system meets requirements and specifications and that it fulfills its intended purpose

• The PMBOK guide :

"Validation - The assurance that a product, service, or system

meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external

customers. Contrast with verification.„

"Verification. The evaluation of whether or not a product, service, or system complies with a regulation, requirement, specification, or imposed condition. It is often an internal process. Contrast with validation."

(30)

Validation Perspectives

• Reliability validation

• Does measured system reliability meet its specification?

• Is system reliability good enough to satisfy users?

• Safety validation

• Does system operate so that accidents do not occur?

• Are accident consequences minimized?

• Security validation

(31)

Validation Techniques

• Static techniques

• design reviews and program inspections

• mathematical arguments and proof

• Dynamic techniques

• statistical testing

• scenario-based testing

• run-time checking

• Process validation

• SE processes should minimize the chances of introducing system defects

(32)

Static Validation Techniques

• Concerned with analysis of documentation

• Focus is on finding system errors and identifying potential problems that may arise during system operation

• Documents may be prepared to support static validation

• structured arguments

(33)

Poka-Yoke Devices

• mechanisms that lead to the prevention of a potential quality/function problem before it occurs or to the quick detection of a quality/function problem if one is introduced

• a simple, cheap, part of the engineering process, and are

located near the process task where the mistakes are likely to occur

(34)

ISO/IEC 25010:2011

ISO/IEC 9126 Software engineering — Product quality was

an international standard for the evaluation of software quality.

• It has been replaced by ISO/IEC 25010:2011

• The standard is divided into four parts:

• quality model

• external metrics

• internal metrics

(35)

ISO/IEC 25010:2011

• Quality Model - classifies software quality in a structured set of characteristics and sub-characteristics

• Functionality - A set of attributes that bear on the existence of a set of functions and their specified properties

• Reliability - A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time

• Usability - A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users

• Efficiency - A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions

• Maintainability - A set of attributes that bear on the effort needed to make specified modifications

• Portability - A set of attributes that bear on the ability of software to be transferred from one environment to another

(36)

References

• Software Assurance Definitions,

http://www.hq.nasa.gov/office/codeq/software/umbrella_defs.htm

Daniel Galin, Software Quality Assurance - From theory to

implementation, Pearson – Addison Wesley, 2004

• Software quality management,

• http://en.wikipedia.org/wiki/Software_quality_management

• http://en.wikipedia.org/wiki/Software_quality

• Verification and validation,

References

Related documents

As a consequence, driven out from the two propositions stated above, we argue that the market value of the company and the voting pattern observed in its corporate meetings can

Coffee suggests four problems as the likely causes of this systemic breakdown: agency problems within the gatekeeper firms themselves, im- perfect competition

undertaking such an enterprise. It is believed that the findings of this research may be used also for a funding proposal that may be developed at a latter stage. Moreover,

Corporate Asset Sale Asset Disposition Division Asset Management and Remedial Group List of Properties for Sale as of December 31, 2020.. 12 th

More specifically, the following information is required as input data: beam span; number, magnitudes and locations of concentrated loads; location of the specific point of

The implementation techniques for this prover are largely common ones from higher-order logic programming, i.e., logic variables, (higher- order pattern) unification,

In this formula, corr(POVRISK, Time) refers to the Pearson correlation coefficient between a Member State’s number of people at risk of poverty and social exclusion and

(c) to insert a new section 18A which prohibits the registration of certain documents relating to (a) transaction which is prohibited by any existing Central or State Act for the