prepared by: hussein alhashimi. this course introduces fundamental concepts related to quality...

20
SWE333- Software Quality Assurance (SQA) Prepared by: Hussein Alhashimi

Upload: stanley-shaw

Post on 13-Dec-2015

218 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

SWE333- Software Quality Assurance (SQA)Prepared by: Hussein Alhashimi

Page 2: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software industry: Measurements of product, process and resource attributes – Planning a measurements program - Goal/Question/Metric - Collection and analysis of software empirical measurements - Building software metrics - Quality concepts – Software quality assurance - Software quality management - Quality planning and control – Quality manual – Product and process standards - Internal and external software quality attributes - Software reviews, walkthrough and inspection – Statistical software quality assurance – Software configuration management - Software reliability – International Software quality models, e.g. ISO 9000 Quality standards and ISO 9000-3, etc.. – Software process improvement – The Capability Maturity Model (CMM), balanced scorecards. Ethical responsibility to produce high-quality software is also discussed. Students participate in a group project on Software quality assurance.

Course description

Page 3: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

TopicIntroduction and definitions

Components of software quality assurance

Software quality planning and control

Software quality metrics

Costs of Software Quality

International software quality models

Capability maturity model (CMM, CMMI)

Personal software process and team software process

Concluding remarks, review, and evaluation

Major Topics Covered

Page 4: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

Software Requirements Specification Software Design Implementation (Coding & Module Testing)

Integration & Testing

Each stage will require some sort of Software Quality Assurance (SQA).

Four Stages of Software Development

Page 5: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

IEEE Glossary: Degree to which a system, component, or process meets (1) specified requirements, and (2) customer or user needs or expectations

ISO: the totality of features and characteristics of a product or service that bear on its ability to satisfy specified or implied needs

What is “quality”?

Page 6: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

◦ Functionality ◦ Efficiency◦ Flexibility◦ Integrity◦ Interoperability◦ Maintainability◦ Portability◦ Reliability◦ Reusability◦ Testability◦ Usability

Quality criteria or characteristic

Page 7: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

In respective stages of software development

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

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

What is SQ?

Page 8: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

Software quality assurance (SQA) is a process that ensures that developed

software meets and complies with defined or standardized quality specifications. SQA is an ongoing process within the software development life cycle (SDLC) that routinely checks the developed software to ensure it meets desired quality measures.

Software quality assurance (SQA)

Page 9: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

SQA encompasses the entire software development process

• software requirements• software design• coding• source code control• code reviews• change management• configuration management• release management

SQA

Page 10: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

Decreased number of defects and errors in software

Less rework as a result of less software defects

Reduced development and maintenance cost

Increased software reliability Increased customer satisfaction Happier software practitioners

Benefits of software quality

Page 11: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

The software requirement document regarding a software system for managing a hospital laboratory (Super Lab) consists of chapters of requirements. For each section, fill in the name of the factor that best fits the requirement. the requirement (use McCall’s factor model and the attached reading list to choose only one factor per requirements section).

SQA (cont)

Page 12: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

No Section taken from the software requirement document

The requirement factors

1 The probability that the “Super-lab” software system will be found in a state of failure during peak hours (9 am to 4 pm) is required to be below 0.5%.

2 The “Super-Lab” software system will enable direct transfer of laboratory results to those files of hospitalized patients managed by the “MD-File” software package.

3 The “Super-Lab” software system will include a module that prepares a detailed report of the patient’s laboratory test results during his current hospitalization. (This report will serve as an Appendix to the family physician’s file). The time required to obtain this printed report will be less than 30 seconds; the level of accuracy and completeness will be at least 99%.

SQA (cont) 1

Reliability

Interoperability

Correctness

Page 13: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

No Section taken from the software requirement document

The requirement factors

4 The “Super-Lab” software to be developed for hospital laboratory use may be adapted later for private laboratory use.

5 The training of a laboratory technician, requiring no more than 3 days, will enable the technician to reach level C of “Super-Lab” software usage. This means he or she will be able to manage reception of 20patients per Hour.

6 The “Super-Lab” software system will record a detailed user‘s Log. In addition, the system will report attempts by unauthorized persons to obtain medical information from the laboratory test results data base. The report will include the following informations: The network identification of the applying terminal, the system code of the employee who requested that information, the day and time of attempt and the type of attempt.

SQA (cont) 2

Flexibility

Usability

Integrity

Page 14: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

No Section taken from the software requirement document

The requirement factors

7

The “Super-Lab” sub-system that deals with billing patients for their tests may be eventually used as a subsystem in the “physiotherapy center” software package.

8 The different system components should be kept so simple as possible, and very well documented.

9

The software system should be able to serve 12 workstations and 8 automatic testing machines with a single model AS20 server and a cs25 communication server that will be able to serve 25 communication lines. This hardware system should conform to all availability requirements as listed in appendix C

SQA (cont) 3

Reusability

Correctness

Efficiency

Page 15: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

No Section taken from the software requirement document

The requirement factors

10The “Super-Lab” software package developed for the Linux Operating System should be compatible for applications in a window NT environment.

11The system software documentation should be clear, self descriptive, and have a high degree of consistency.

SQA (cont) 4

Portability

Usability

Page 16: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

The three factor categories belonging to McCall’s factor model are:

Product operations (basic operational characteristics).

Product revision (ability to change). Product transition (adaptability to new environments).

Software Quality Assurance Factors McCall's Model

Page 17: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

There are 11 factors grouped into three categories as follows:

Product operations Correctness الصواب the functionality matches the specification. Reliability الموثوقية the extent to which the system fails. Efficiency الكفاءة, system resource (including cpu,

disk, memory, network) usage. Integrity النزاهة , protection from unauthorized

access. Usability االستخدام .ease of use ,سهولة

Software Quality Assurance Factors McCalls's Model (cont-1)

Page 18: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

Product revision Maintainability الصيانة, the ability to find and fix a defect. Flexibility قابلية ,المرونة the ability to make changes required as dictated

by the business. Testability قابلية ,االختبار the ability to Validate the software

requirements.

Software Quality Assurance Factors McCalls's Model (cont-2)

Page 19: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software

Product transition Portability مختلفة بيئة في التشغيل قابلية

the ability to transfer the software from one environment to another.

Reusability استخدام إعادة قابلية the ease of using existing software components

in a different context. Interoperability اخرى برامج مع التفاعل و التشغيل قابلية the extent, or ease, to which software

components work together.

Software Quality Assurance Factors McCalls's Model (cont-3)

Page 20: Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software