SlideShare uma empresa Scribd logo
1 de 17
Engineering Quality & Reliability




                         SivaramaSundar.D
                               29th Nov 2012
Expectations

How quality can be achieved?       - Done
How we maintain quality?           - Done
Quality measurements;              - Overview provided;
How reliability can be achieved?   - Done
Software Quality
In simple terms “Quality software is reasonably bug-free,
       delivered on time and within budget, meets
 requirements and/or expectations, and is maintainable”


   More formally, Software quality measures how well
software is designed (quality of design) and how well the
software conforms to that design (i.e., Implementation -
      quality of conformance / quality assurance)
So, we’d have quality issues …
1.   if customer’s expectations are not met by the end result
2.   if there is a lack of conformance to requirement
3.   if the development criteria towards specified standards are not met
4.   if implicit requirements are not captured and addressed
     (ex:
     - a change in the physician name in configuration should reflect in the case
     selection & acquisition screen
     - A Remote service connection has to be secure
     - A long text message or caption should have a “…” & a tooltip on mouse hover
     - Pressing the Escape key or the X button should close a pop-up and cancel the
     changes made)
quality of
Hence, both

design and quality
assurance needs to be
ensured throughout the SDLC,
across all the phases

The V-Model product development
process (and agile), ensures better
quality assurance by preparing for
testing early in each stage of SDLC.
The V Model            Phase            Measure
involves the testers
                       Requirements     SSRS, URS cover Quality Attributes & implicit
early in the project                    requirements (Performance, Security, Safety,
lifecycle and thus                      Regulatory)
providing avenues                       Test Strategy & Plan, Adoption of specific Test Design
                                        Techniques based on Risk Matrix for each unit
to correct before                       Critical to Quality Use cases
critical decisions                      Requirement Workshops
are made.                               Reviews or Walkthroughs, Checklists
                                        Traceability Matrix for requirement conformance
                                        Prototypes
                       Design           Design Guidelines, Standards
                                        Design Workshops
                                        DAR
                                        Reviews & Walkthroughs, Checklists
                       Implementation   Unit testing, Mocks & Stubs
                                        Continuous Integration
                                        Reviews & Walkthroughs, Checklists
                       Testing          Functional Testing
                                        Integration Testing
                                        Smoke Testing
Cost of Non Quality!
Reliability
  Software reliability is defined as “the probability of failure-free software
    operation for a specified period of time in a specified environment”.


Software reliability is based on the three primary concepts: fault,                              Person (developer) makes
error, and failure (Bug in a program is a fault. Possible incorrect                             zero to many
values caused by this bug is an error. Possible crash of the
operating system is a failure.)                                                           Mistakes
                                                                      Can be attributed
A fault is the result of a mistake made in the development of the                                   Leads to zero or many
                                                                       to one or many
system. Faults are dormant but they can become active due to
some revealing mechanisms. (ex: a check for free disk space                                Faults
threshold before acquisition start, other ex: null ref.,
                                                                      Can be attributed
uninitialized variable leading to errors)                              to one or many

An error is the manifestation of what is wrong in the running                                        Leads to zero or many
system. Often errors lead to new errors (propagation), which                              Errors
eventually may lead to system failure. (ex: fault leading to full     Can be attributed
disk space usage, without a warning or validation)                     to one or many                Leads to zero or many

An error can become a failure when it is not corrected or                                 Failures
masked, i.e., when error become observable by the system’s            Can be attributed
                                                                                                     Leads to zero or manyCustomer complaints
                                                                       to one or many
user it become a failure (that is, failure is observable by the end
user and error is not).                                                               Field Calls
(ex: full disk space leads to acquisition failure or data loss or
system crash)
Reliability … explained




• Specification mistakes – incorrect algorithms, incorrectly specified requirements (timing,
power, environmental)

• Implementation mistakes – poor design, software coding mistakes

• Component defects – manufacturing imperfections, random device defects, components
wear-outs

• External factors – radiation, lightning, operator mistakes
Reliability – Key Areas




Area                Description                                                 Applicable Phase
Fault Prevention    focuses on avoidance of faults in SW products               Requirements, Design
Fault Detection     focuses on revealing reliability problems                   Requirements, Design,
                                                                                Implementation, Testing
Fault Tolerance     ensures that system is working properly in case of faults   Design, Implementation
Fault Forecasting   focuses on prediction of the future system reliability      Deployment, Support & Service
Reliability in practice…
                                                                             Phase            Measure

                            Requirements                                     Requirements     Reliability Requirements, Safety & Risk
                                                                                              Management Requirements
  Reliability requirements                    Operational profile                             Critical to Quality Use cases
 (MTBF, MTBC, MTBE, etc.)                (which functionality is critical)
                                                                                              Requirement Workshops
                                                                                              Reviews, Walkthroughs, Checklists
                                                                             Design           Design Guidelines, Standards
                  Architecture/Design for reliability
                 (principles, practices, and patterns)                                        Emphasis for threading, execution architecture
                                                                                              Whiteboard designs
                                                                                              Design Workshops
                                                                                              FMEA
                 Measuring and testing for reliability                                        Graceful Degradation
                  (Measuring: MTBF, MTBC, ..., tools                                          DAR
Testing: load/stress/capacity testing, reliability growth testing, tools)
                                                                                              Reviews, Walkthroughs

               Is reliability req.                                           Implementation   Follow Best Practices & Coding Standards
                        fulfilled?          NO                                                Error Handling
                                                                                              TICS
                                      YES                                                     Static Analysis, Code Coverage,
                                         Release                                              Memory Profiling
                                         product
                                                                                              Reviews, Reports attached to CQ activity
                                                                                              Improved Logging
                                                                                              POST, BIST

                                                                             Testing          Performance Testing
                                                                                              Smoke Testing based on CTQ’s & Operational
                                                                                              Profiles
                                                                                              Regression Testing
Reliability in practice…
Reliability Parameters                 Targets & Measurement Criteria
Call Rate                              Target:
                                       < 1.5 calls per system per year

                                       Actions: Implement I/O enhancements

                                       Recommendations: Start study to analyze how to decrease the call rate to <
                                       1.0
Failure Rate (Failure Rate gives an    Target: # of failures reported should be less than 10 per site
indication of the number of non-       Have explicit robustness designed into the product
recoverable failures in the field. )
                                       Actions: Execute FMEAs
MTBF                                   Mean time between failure would be 200 days or 1000 studies
MTTR                                   Mean time to repair should not exceed 2 days
Usage of PII Private Interfaces        # of private interfaces used – should be 0 ideally, and no increase in usage
                                       of new private interfaces
TICS                                   Target: 0 violations for level 1..6, No increase of level 7..10 violations

                                       Actions: Monitor and act
Code Coverage (Method, Statement)      > 80% Statement coverage & 100% Method Coverage
Code reviews                           100 %
Reliability – Design FMEA
Identify Critical Functionality & Classify for
effective design towards handling faults

                                                                                                                            Faults to be                               System/service does not
                                                                                                                                                 Fault prevention      experience faults
                                                                                                                       prevented by system
                                                                                                                        architecture/design           design           of class I
                                                                                                        Class I

                                                                                                                                                                       System/service keeps
                Classify functionality                                     Faults                                                                                      Operating when
  System                                 High level   Identify faults                                                  Faults to be handled       Fault tolerant
                    according to                                                      Classify faults       Class II                                                   encounters
Specification   importance/criticality    design       (e.g., FMEA)      (severity,                                      by the system               design            a fault of class II
                                                                        frequency)

                                                                                                        Class III        Faults not to be                              System/service crashes
                                                                                                                                              System controlled-fail   when encounters
                                                                                                                         handled by the
                                                                                                                             system                  design            a fault of class III
Reliability testing
Steps                              Possible inputs/tools       Hints
1. Derive test cases from          Application specialist      Operational profiles may differ per
Operational profiles               Logging from production     deployment…
                                   Use cases                   Test cases derived from operational profiles
                                                               differ from stress testing.
2. Run tests                       Manual testing on system    Test cases should be as repeatable as
                                   Mock, stubs, drivers        possible and executed under same
                                   simulators                  conditions.
                                   QTP
                                   Test Automation Framework
3. Gather data                     System logging              In case of automation, keep in mind time
                                   Test logging                compression factor.
                                                               Failure definition should be explicit for the
                                                               tested system.
4. Plot data and extract failure
intensity and failure rate
5. Predict reliability at end of                               Be aware that the predicted reliability will
current project phase                                          still very vulnerable to variances
Quality vs. Reliability
Quality is a snapshot at the start of life (Time Zero).
All requirements are implemented and as per the design.
All user expectations are met.
Time zero defects are mistakes that escaped the final test.
“Quality is everything until put into operation (0-hours)”

Reliability is a motion picture of the day-by-day operation.
The additional defects that appear over                 time are "reliability
defects" or reliability fallout.
“Reliability is everything happening after 0-hours”
Quality & Reliability in Software Engineering
Quality & Reliability in Software Engineering

Mais conteúdo relacionado

Mais procurados

Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processesREHMAT ULLAH
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
Software testing and process
Software testing and processSoftware testing and process
Software testing and processgouravkalbalia
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software EngineeringUpekha Vandebona
 
Software project management Software economics
Software project management Software economicsSoftware project management Software economics
Software project management Software economicsREHMAT ULLAH
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Unit 1 basic concepts of testing & quality
Unit 1   basic concepts of testing & qualityUnit 1   basic concepts of testing & quality
Unit 1 basic concepts of testing & qualityravikhimani
 
Regression and performance testing
Regression and performance testingRegression and performance testing
Regression and performance testingHimanshu
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceRizky Munggaran
 
Regression testing
Regression testingRegression testing
Regression testingMohua Amin
 

Mais procurados (20)

Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processes
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software testing and process
Software testing and processSoftware testing and process
Software testing and process
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Software Quality Management
Software Quality ManagementSoftware Quality Management
Software Quality Management
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software Engineering
 
Software project management Software economics
Software project management Software economicsSoftware project management Software economics
Software project management Software economics
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Unit 1 basic concepts of testing & quality
Unit 1   basic concepts of testing & qualityUnit 1   basic concepts of testing & quality
Unit 1 basic concepts of testing & quality
 
Sqa plan
Sqa planSqa plan
Sqa plan
 
Black box and white box testing
Black box and white box testingBlack box and white box testing
Black box and white box testing
 
Regression and performance testing
Regression and performance testingRegression and performance testing
Regression and performance testing
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Regression testing
Regression testingRegression testing
Regression testing
 
Checkpoints of the Process
Checkpoints of the ProcessCheckpoints of the Process
Checkpoints of the Process
 

Destaque

Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliabilitydespicable me
 
Software Reliability
Software ReliabilitySoftware Reliability
Software Reliabilityranapoonam1
 
Software reliability growth model
Software reliability growth modelSoftware reliability growth model
Software reliability growth modelHimanshu
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineeringMark Turner CRP
 
Software and Hardware Reliability
Software and Hardware ReliabilitySoftware and Hardware Reliability
Software and Hardware ReliabilitySandeep Patalay
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineeringdeshpandeamrut
 
Software Reliability Engineering
Software Reliability EngineeringSoftware Reliability Engineering
Software Reliability Engineeringguest90cec6
 
Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19koolkampus
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software EngineeringAbhay Vijay
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assuranceruth_reategui
 

Destaque (20)

Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliability
 
Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
Reliability growth models
Reliability growth modelsReliability growth models
Reliability growth models
 
Software reliability growth model
Software reliability growth modelSoftware reliability growth model
Software reliability growth model
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineering
 
Software and Hardware Reliability
Software and Hardware ReliabilitySoftware and Hardware Reliability
Software and Hardware Reliability
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Software quality
Software qualitySoftware quality
Software quality
 
Software design metrics
Software design metricsSoftware design metrics
Software design metrics
 
Chap13
Chap13Chap13
Chap13
 
Software Reliability Engineering
Software Reliability EngineeringSoftware Reliability Engineering
Software Reliability Engineering
 
Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19Verification and Validation in Software Engineering SE19
Verification and Validation in Software Engineering SE19
 
Software quality
Software qualitySoftware quality
Software quality
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software Engineering
 
Reliability engineering ppt-Internship
Reliability engineering ppt-InternshipReliability engineering ppt-Internship
Reliability engineering ppt-Internship
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assurance
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Testing Metrics
Testing MetricsTesting Metrics
Testing Metrics
 

Semelhante a Quality & Reliability in Software Engineering

Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012TEST Huddle
 
Chapter 1 ASE Slides ppt
Chapter 1 ASE Slides pptChapter 1 ASE Slides ppt
Chapter 1 ASE Slides pptMr SMAK
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsBhavin Javia
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databasesAlessandro Alpi
 
Software Reliability CMM-DFSS
Software Reliability CMM-DFSSSoftware Reliability CMM-DFSS
Software Reliability CMM-DFSSGuy Van Hooveld
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself ) Globant
 
DevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceDevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceRosalind Radcliffe
 
Testing Types And Models
Testing Types And ModelsTesting Types And Models
Testing Types And Modelsnazeer pasha
 
Enforcing Quality with DevOps Pipeline Gates
Enforcing Quality with DevOps Pipeline GatesEnforcing Quality with DevOps Pipeline Gates
Enforcing Quality with DevOps Pipeline GatesMichael King
 
Quality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptanceQuality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptanceIT Weekend
 
Sean carter dan_deans
Sean carter dan_deansSean carter dan_deans
Sean carter dan_deansNASAPMC
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposalcfry
 
Session #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSession #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSteve Lange
 
NG_TEST_Presentation_0510
NG_TEST_Presentation_0510NG_TEST_Presentation_0510
NG_TEST_Presentation_0510techweb08
 

Semelhante a Quality & Reliability in Software Engineering (20)

Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
 
Chapter 1 ASE Slides ppt
Chapter 1 ASE Slides pptChapter 1 ASE Slides ppt
Chapter 1 ASE Slides ppt
 
Manual testing1
Manual testing1Manual testing1
Manual testing1
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
 
Software Reliability CMM-DFSS
Software Reliability CMM-DFSSSoftware Reliability CMM-DFSS
Software Reliability CMM-DFSS
 
Eswaranand Attuluri CV
Eswaranand Attuluri CVEswaranand Attuluri CV
Eswaranand Attuluri CV
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
 
DevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceDevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse Conference
 
Testing Types And Models
Testing Types And ModelsTesting Types And Models
Testing Types And Models
 
Enforcing Quality with DevOps Pipeline Gates
Enforcing Quality with DevOps Pipeline GatesEnforcing Quality with DevOps Pipeline Gates
Enforcing Quality with DevOps Pipeline Gates
 
Quality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptanceQuality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptance
 
Sean carter dan_deans
Sean carter dan_deansSean carter dan_deans
Sean carter dan_deans
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
 
Answer powerpoint template
Answer powerpoint templateAnswer powerpoint template
Answer powerpoint template
 
Feasible
FeasibleFeasible
Feasible
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Session #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSession #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft Approach
 
NG_TEST_Presentation_0510
NG_TEST_Presentation_0510NG_TEST_Presentation_0510
NG_TEST_Presentation_0510
 

Quality & Reliability in Software Engineering

  • 1. Engineering Quality & Reliability SivaramaSundar.D 29th Nov 2012
  • 2. Expectations How quality can be achieved? - Done How we maintain quality? - Done Quality measurements; - Overview provided; How reliability can be achieved? - Done
  • 3. Software Quality In simple terms “Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable” More formally, Software quality measures how well software is designed (quality of design) and how well the software conforms to that design (i.e., Implementation - quality of conformance / quality assurance)
  • 4. So, we’d have quality issues … 1. if customer’s expectations are not met by the end result 2. if there is a lack of conformance to requirement 3. if the development criteria towards specified standards are not met 4. if implicit requirements are not captured and addressed (ex: - a change in the physician name in configuration should reflect in the case selection & acquisition screen - A Remote service connection has to be secure - A long text message or caption should have a “…” & a tooltip on mouse hover - Pressing the Escape key or the X button should close a pop-up and cancel the changes made)
  • 5. quality of Hence, both design and quality assurance needs to be ensured throughout the SDLC, across all the phases The V-Model product development process (and agile), ensures better quality assurance by preparing for testing early in each stage of SDLC.
  • 6. The V Model Phase Measure involves the testers Requirements SSRS, URS cover Quality Attributes & implicit early in the project requirements (Performance, Security, Safety, lifecycle and thus Regulatory) providing avenues Test Strategy & Plan, Adoption of specific Test Design Techniques based on Risk Matrix for each unit to correct before Critical to Quality Use cases critical decisions Requirement Workshops are made. Reviews or Walkthroughs, Checklists Traceability Matrix for requirement conformance Prototypes Design Design Guidelines, Standards Design Workshops DAR Reviews & Walkthroughs, Checklists Implementation Unit testing, Mocks & Stubs Continuous Integration Reviews & Walkthroughs, Checklists Testing Functional Testing Integration Testing Smoke Testing
  • 7. Cost of Non Quality!
  • 8. Reliability Software reliability is defined as “the probability of failure-free software operation for a specified period of time in a specified environment”. Software reliability is based on the three primary concepts: fault, Person (developer) makes error, and failure (Bug in a program is a fault. Possible incorrect zero to many values caused by this bug is an error. Possible crash of the operating system is a failure.) Mistakes Can be attributed A fault is the result of a mistake made in the development of the Leads to zero or many to one or many system. Faults are dormant but they can become active due to some revealing mechanisms. (ex: a check for free disk space Faults threshold before acquisition start, other ex: null ref., Can be attributed uninitialized variable leading to errors) to one or many An error is the manifestation of what is wrong in the running Leads to zero or many system. Often errors lead to new errors (propagation), which Errors eventually may lead to system failure. (ex: fault leading to full Can be attributed disk space usage, without a warning or validation) to one or many Leads to zero or many An error can become a failure when it is not corrected or Failures masked, i.e., when error become observable by the system’s Can be attributed Leads to zero or manyCustomer complaints to one or many user it become a failure (that is, failure is observable by the end user and error is not). Field Calls (ex: full disk space leads to acquisition failure or data loss or system crash)
  • 9. Reliability … explained • Specification mistakes – incorrect algorithms, incorrectly specified requirements (timing, power, environmental) • Implementation mistakes – poor design, software coding mistakes • Component defects – manufacturing imperfections, random device defects, components wear-outs • External factors – radiation, lightning, operator mistakes
  • 10. Reliability – Key Areas Area Description Applicable Phase Fault Prevention focuses on avoidance of faults in SW products Requirements, Design Fault Detection focuses on revealing reliability problems Requirements, Design, Implementation, Testing Fault Tolerance ensures that system is working properly in case of faults Design, Implementation Fault Forecasting focuses on prediction of the future system reliability Deployment, Support & Service
  • 11. Reliability in practice… Phase Measure Requirements Requirements Reliability Requirements, Safety & Risk Management Requirements Reliability requirements Operational profile Critical to Quality Use cases (MTBF, MTBC, MTBE, etc.) (which functionality is critical) Requirement Workshops Reviews, Walkthroughs, Checklists Design Design Guidelines, Standards Architecture/Design for reliability (principles, practices, and patterns) Emphasis for threading, execution architecture Whiteboard designs Design Workshops FMEA Measuring and testing for reliability Graceful Degradation (Measuring: MTBF, MTBC, ..., tools DAR Testing: load/stress/capacity testing, reliability growth testing, tools) Reviews, Walkthroughs Is reliability req. Implementation Follow Best Practices & Coding Standards fulfilled? NO Error Handling TICS YES Static Analysis, Code Coverage, Release Memory Profiling product Reviews, Reports attached to CQ activity Improved Logging POST, BIST Testing Performance Testing Smoke Testing based on CTQ’s & Operational Profiles Regression Testing
  • 12. Reliability in practice… Reliability Parameters Targets & Measurement Criteria Call Rate Target: < 1.5 calls per system per year Actions: Implement I/O enhancements Recommendations: Start study to analyze how to decrease the call rate to < 1.0 Failure Rate (Failure Rate gives an Target: # of failures reported should be less than 10 per site indication of the number of non- Have explicit robustness designed into the product recoverable failures in the field. ) Actions: Execute FMEAs MTBF Mean time between failure would be 200 days or 1000 studies MTTR Mean time to repair should not exceed 2 days Usage of PII Private Interfaces # of private interfaces used – should be 0 ideally, and no increase in usage of new private interfaces TICS Target: 0 violations for level 1..6, No increase of level 7..10 violations Actions: Monitor and act Code Coverage (Method, Statement) > 80% Statement coverage & 100% Method Coverage Code reviews 100 %
  • 13. Reliability – Design FMEA Identify Critical Functionality & Classify for effective design towards handling faults Faults to be System/service does not Fault prevention experience faults prevented by system architecture/design design of class I Class I System/service keeps Classify functionality Faults Operating when System High level Identify faults Faults to be handled Fault tolerant according to Classify faults Class II encounters Specification importance/criticality design (e.g., FMEA) (severity, by the system design a fault of class II frequency) Class III Faults not to be System/service crashes System controlled-fail when encounters handled by the system design a fault of class III
  • 14. Reliability testing Steps Possible inputs/tools Hints 1. Derive test cases from Application specialist Operational profiles may differ per Operational profiles Logging from production deployment… Use cases Test cases derived from operational profiles differ from stress testing. 2. Run tests Manual testing on system Test cases should be as repeatable as Mock, stubs, drivers possible and executed under same simulators conditions. QTP Test Automation Framework 3. Gather data System logging In case of automation, keep in mind time Test logging compression factor. Failure definition should be explicit for the tested system. 4. Plot data and extract failure intensity and failure rate 5. Predict reliability at end of Be aware that the predicted reliability will current project phase still very vulnerable to variances
  • 15. Quality vs. Reliability Quality is a snapshot at the start of life (Time Zero). All requirements are implemented and as per the design. All user expectations are met. Time zero defects are mistakes that escaped the final test. “Quality is everything until put into operation (0-hours)” Reliability is a motion picture of the day-by-day operation. The additional defects that appear over time are "reliability defects" or reliability fallout. “Reliability is everything happening after 0-hours”

Notas do Editor

  1. Why the picture?
  2. Requirements vary;Specifically NFR’s are never captured.Take the mobile example around the board;Ask out what is quality &amp; reliability from the audience;
  3. Involve testing early
  4. http://www.cs.tau.ac.il/~nachumd/horror.html
  5. http://www.cs.tau.ac.il/~nachumd/horror.html
  6. http://www.itl.nist.gov/div898/handbook/apr/section1/apr111.htmhttp://www.relia-easy.com/UK_INTRO-Quality%20vs%20reliability.html
  7. http://www.itl.nist.gov/div898/handbook/apr/section1/apr111.htmhttp://www.relia-easy.com/UK_INTRO-Quality%20vs%20reliability.html
  8. http://www.itl.nist.gov/div898/handbook/apr/section1/apr111.htmhttp://www.relia-easy.com/UK_INTRO-Quality%20vs%20reliability.html