CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD.

Slides:



Advertisements
Similar presentations
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Advertisements

Software Quality Seung Yang CS 525 Software Engineering II Dr. Sheldon X. Liang.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 6/e (McGraw-Hill 2005). Slides copyright 2005 by Roger Pressman.1.
Software Engineering Software quality. Software quality characteristics:  External: user is aware of. User cares about.  Internal: programmer is aware.
Stepan Potiyenko ISS Sr.SW Developer.
Overview Lesson 10,11 - Software Quality Assurance
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Quality Assurance For Software Engineering && Architecture and Design.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Introduction to Software Testing
What is Business Analysis Planning & Monitoring?
CS 4310: Software Engineering
Process: A Generic View
Overview Software Quality Software Quality and Quality Assurance
CHAPTER 5 Infrastructure Components PART I. 2 ESGD5125 SEM II 2009/2010 Dr. Samy Abu Naser 2 Learning Objectives: To discuss: The need for SQA procedures.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Introduction to Software Quality Assurance (SQA)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Managing Software Quality
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
Software Quality Assurance Activities
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
Based on D. Galin, and R. Patton.  According to D. Galin  Software quality assurance is:  A systematic, planned set of actions necessary to provide.
CS3100 Software Project Management Week 26 - Quality Dr Tracy Hall.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Instructor: Peter Clarke
S Q A.
Installation and Maintenance of Health IT Systems
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
IT Requirements Management Balancing Needs and Expectations.
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
Creator: ACSession No: 15 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 Software Quality Assurance & Software Quality Control.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Software Testing and Quality Assurance Software Quality Assurance 1.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Code Complete Steve McConnell. 20. The Software-Quality Landscape.
1 TenStep Project Management Process ™ PM00.9 PM00.9 Project Management Preparation for Success * Manage Quality *
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
1 Software Quality Assurance. 2 Quality Concepts - 1 Variation control is the heart of quality control Software engineers strive to control the – process.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Lecture 8: Quality Assurance.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Definition Quality costs Plan Team Characteristics Implementation documentation Reviews & Audit Software Quality Assurance.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
By Manish Shrotriya CSE MS Software Engineering vs Software Project Engineering Goals: Develop quality software What is quality of a software.
Software Quality Control and Quality Assurance: Introduction
CIS 375 Bruce R. Maxim UM-Dearborn
Software Quality Assurance
Quality Quality is “a characteristic or attribute of something.”
Chapter 10 Systems Implementation and Operation
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Quality Measurable characteristic Cyclomatic complexity Cohesion
Software Quality Assurance
20. The Software-Quality Landscape
Chapter # 1 Overview of Software Quality Assurance
Software Reviews.
3. Software Quality Management
Presentation transcript:

CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

حديث شريف 1.إن الله يحب إذا عمل أحدكم عملا أن يتقنه 2.إن الله كتب الإحسان على كل شئ

Lecture 17 Outline 1.Understanding SW Quality Attributes 2.Understand the value of SW QA 3.Quality Landscape 4.SW QA Jobs and Certificates 5.Effectiveness of QA Techniques Readings are essential for this course. Reading: (7) Code Complete Chapter 20 Accompanying site:

What is SW Quality? Customer’s Perspective  System does not crash  System follows documentation & contract  System is logical and easy to use Developer’s Perspective  System is easy to change  System is easy to understand  System is pleasant to work on

External Quality Characteristic ● Correctness.  The degree to which a system is free from faults in its specification, design, and implementation. ● Usability.  The ease with which users can learn and use a system. ● Efficiency.  Minimal use of system resources, including memory and execution time.

External Quality Characteristic ● Reliability  The ability of a system to perform its required functions under stated conditions whenever required—having a long mean time between failures. ● Robustness  The degree to which a system continues to function in the presence of invalid inputs or stressful environmental conditions.

External Quality Characteristic ● Integrity  The degree to which a system prevents unauthorized or improper access to its programs and data.  Ensuring that data is accessed properly ● Adaptability  The extent to which a system can be used, without modification, in applications or environments other than those for which it was specifically designed.

Internal Quality Characteristic ● Maintainability  The ease with which you can modify a software system to change or add capabilities, improve performance, or correct defects. ● Flexibility  The extent to which you can modify a system for uses or environments other than those for which it was specifically designed.

Internal Quality Characteristic ● Reusability  The extent to which and the ease with which you can use parts of the system in other systems. ● Understandability / Readability  The ease with which you can comprehend a system at organizational and detailed levels.

Total Quality Management Factories Goal is for every item coming off the assembly line to be perfect Management, production, engineering, QA Everyone is involved in quality Develop a reliable, repeatable process Continuously improve the process

The Cost of Poor Quality Money Time Resources Lives Reputation Business

Failure Costs Internal  Rework  Repair  Failure analysis External  Resolving complaints  Returning and replacing product  Help line

Prevention Costs Prevention  Planning  Managing and collecting information  Reviews Appraisal  Inspection  Testing

The Cost of Poor Quality

Techniques for Improving SW Quality 1.What can we do improve quality ? SW QA is a wide spectrum of activities conducted through out the development process that focus on:  Product quality  Process quality

Techniques for Improving SW Quality (Code Complete) 1.SW Q Objectives & Planning 2.Explicit QA Activities 3.Testing Strategy 4.SE Guidelines 5.Formal / Informal Technical Reviews 6.Change-control Procedures 7.Measurement of Results 8.Prototyping

Software Quality Landscape Planning Requirements Design Development Testing Guidelines, Standards and Templates QA Planning and Budgeting Testing Debugging Reviews Refactoring Requirements V & V Design Review Collaborative Development / Reviews Metrics Change and Configuration Management Bug Tracking Surveys Deployment & Maintenance M a n a g e m e n t Contract Review

1. SW Quality Objectives Decide explicit quality characteristics 1.Inform the developers 2.They are more likely to achieve quality objectives if they now them. 3.Review their work Study by G M Weinberg, E L Schulman, Goals and Performance in Computer Programming (1974)

2. Explicit QA Activities QA should be perceived as a primary not secondary goal QA should be an organizational culture. Organization should train developers that quality is a priority.

3. Testing Strategy Develop a test strategy with product requirements, architecture and design. Or even consider test-driven development.

4. SE Guidelines Decide on guidelines, templates, checklists and standards to follow.  Requirements, architecture and design guidelines.  Templates for plans, reports, etc.  Coding style.  File naming conventions. Apply them and enforce them in every phase.

5. Reviews Informal Reviews  Desk-checking  Walk through Formal Technical Reviews  Act as a “quality gate”  Catch problems at the “lowest-value” stage— that is, at the stage in which problems cost the least to correct.  Can be a peer review, a customer review, an, inspection, or an external audit.

Changing hurts quality.  Remember the Vaza Uncontrolled changes:  Requirements => unstable designs and code  Design => Inconsistency with req. and code  Code => Inconsistency / invalid doc. Adopt incremental development Adopt Configuration and Change Management 6. Change-control Procedures

Measuring what ?  3 P => Product, Project and Process  Quality attributes. Measurements tells you if QA plan failed or succeeded. Can be the basis for improvement. 7. Measurement of Results

Develop realistic model of the system’s key functionalities.  UI to evaluate usability  Key calculations to see their results, memory requirements and performance Studies suggest that prototyping can lead to better designs, better satisfaction of user needs and improved maintainability. 8. Prototyping

CS SQA Manager Responsible for SQA policy  Develops testing plan  Checks that plan is being followed  Develops review process  Trains reviewers  Monitors reviews  Develops customer survey plan ……

Nonin Medical, Inc. is a rapidly growing international medical device manufacturer that has been designing and distributing high quality medical monitoring devices since Responsible for ensuring software quality within complex medical device products through the development and execution of software test plans by way of verification procedures based upon software and system specifications SW QA Engineer Ad.

Review product design documentation to ensure that requirements stated are correct, unambiguous, and verifiable. Consult with product development to evaluate system interfaces, operational requirements, and performance requirements of overall system. Define test methods and create test plans for new or updated software projects. Recommend design improvements or corrections to engineers throughout the development process. Maintain effective communication with the project software engineers.. SW QA Engineer: Duties & Responsibilities

Execute test plans and create test reports to describe program evaluation, testing, and correction. Monitor program performance after implementation to prevent reoccurrence of program operating problems and ensure efficiency of operation. Conduct compatibility tests with vendor-provided programs. SW QA Engineer: Duties & Responsibilities

Effectiveness of Quality Techniques

Cost of Fixing Defects Fixing a defect in later phases costs more One step techniques are cheaper than 2- steps  Inspection: symptoms and cause  Testing: symptoms (more work to get root cause)  MS: 3 hrs to find and fix a bug by inspection  MS: 12 to find and fix a bug with testing

SW QA Program must…. Employ a variety of techniques to achieve higher-than-average quality  Formal design inspections of the critical parts of a system.  Modeling or prototyping using a rapid prototyping technique  Code reading or inspections  Execution testing