Showing posts with label quality assuarance. Show all posts
Showing posts with label quality assuarance. Show all posts

#4 Quality Assuarance

 Purpose: "Provide you some concepts and techniques related to Quality Assurance of software systems"

Quality Assurance
 Focus on correctness aspect of Quality
QA activities: testing & many others
 QA Classification:
QA as dealing with defects
QA with Verification and Validation

(V&V)

QA in Defect Centered View
 How to deal with defects:
 Prevention
 Removal (detect them first)
 Containment

QA as dealing with defects (cont)
 Preventing fault injection
 Error blocking (error ≠> fault)
 Error source removal
Removal of faults (pre: detection)
 Inspection: faults discovered/removed
 Testing: failures trace back to faults
 Failure prevention and containment
 Fault tolerance techniques (local failure ≠>
global failure)
 Reduce failure impact => Safety assurance

QA as dealing with defects (cont)



 Fig above: QA as barriers
 Dealing with errors, faults, or failures
 Removing or blocking defect sources

 Preventing undesirable consequences

Defect Prevention Techniques

 Education and Training
 Early Requirement Validation

 Configuration Management

Education and Training

 Error source elimination
 Focus on following areas:
 Product and domain knowledge
 Development process knowledge
 Technology and tools knowledge

Early Requirement Validation
 Workshops
 Involving various stakeholders in the identification of
requirements
 Achieve better results than interviewing stakeholders because
everyone is present in the workshop at the same time
 Prototype
 Validate some aspect of the requirements
 Developers gain valuable feedback on their interpretation of
requirements early in a project
 IKIWISI

Configuration Management

 Documents: identifying a documents and controlling
changes to the document
 Source Code:
 Identify
 Revision
 Versions of sources that intended to satisfy a different set of
environments
 Baselines
 Change control
 Executable Code: assembling and releasing versions for

the entire system to its users

Defect Reduction Techniques
 Static test: verify products without execution
 Review:
 Online
 Offline
 Inspection
 Dynamic test: verify product with execution
 Unit Test
 Integration Test
 System Test
 User Acceptance Test


Testing
 When to test?
 From the coding phase up to post-release
support
 Unit testing, component testing, integration
testing, system testing, acceptance testing, beta
testing, etc.
What to check?
 External specifications (black-box)
 Internal implementation (white/clear-box)
 Testing technique
 Equivalent partitioning
 Boundary value analysis
 Decision table
 State transition testing
Criteria: when to stop?
 Coverage of specs/structures
 Reliability => usage-based testing

Defect Containment Techniques
 Fault tolerance technique
 Fault present but removal impractical
 Fault tolerance => contain defects
 FT: break fault-failure link
 Recovery blocks: repeated executions
 N-version programming: N copies – the same functionality running in parallel
 Safety assurance and failure containment technique
 Extending FT idea for safety: fault tolerance to failure “tolerance”
 Safety related concepts:
 Safety: accident free
 Accident: failure with severe consequences
 Hazard: precondition to accident

Continue Reading →

#3 Software Quality

 Purpose: "Definition the expected characteristics of
high-quality software"

 Part 1: Quality Concepts
 Part 2: Quality frameworks & ISO-9126
 Part 3: Defects: definition, deal with quality

 Conclusion: What is software quality?

Quality- Key Points

 Can be viewed from a number of different perspectives
 Can be measured using a variety of measures
 Increasing spending on quality improvement activities
can reduce the total cost of producing a product
 Testing a product after it has been created doesn’t
improve its quality
 Quality depends on 3 factors: People, Process and Tools
 ISO 9126 is an international standard for software

quality

Quality – Views

Different views:
User’s view: quality is fitness for user’s needs
 Fit for use
 Product view: quality is meet attributes of a product
 Manufacturer view: quality is meet the requirements
specification
 Value-based view: quality is the customers’

willingness to pay for a software

Quality – Measurement

Cost of quality


 Cost of defect prevention: costs associated with
preventing errors and defects being introduced into
products
 Cost of appraisal: costs associated with assessing the
level of quality present in a product
 Cost of internal failure: costs associated with poor
quality prior to transfer of ownership to the customer:
rework, repair, defect diagnosis
 Cost of external failure: costs associated with poor
quality after transfer of ownership to the customer:
complaints, support, warranty claims, product rejected

and returned

Quality is People problem?



The Quality Triangle



The User Requirements – Requirement Specification gap

The gap is likely to include:
 Misunderstood requirements
 Ignored requirement
 Missing requirements
 Outdated requirements

 Unneeded requirements
 Wrong interpretation of requirement due to vagueness and
ambiguity in the specification
 Requirements identified after development commenced and
included in the software but not described in the specification
 Changes to specified requirements identified after development
commenced
 Features added by the developers to exploit technical
opportunities
 Requirement ignored by the developers because they were too
difficult to implement
 The gap occurs because the software doesn’t satisfy
the user requirements
 The size of the gap is directly dependent on the side of
other 2 sides of triangle
 The gap is most expensive to close since extensive
rework will be necessary to modify the software

Closing gaps between 3 views

 Spend more money on quality:
 Early requirement validation
 Configuration management
 Reviews, Inspection
 Testing
 Improve the processes that create the product

Quality triangle shapes



Part 2: ISO 9126 – Product quality model




ISO 9126 - Characteristics

 Functionality: A set of functions and their
specified properties
 Reliability: The capability of software to
maintain its performance under stated
conditions for a stated time period

Usability: The effort needed for use
 Efficiency: The relationship between the
performance of the software and the used
resources, under stated conditions
Maintainability: The effort needed to make
specified modifications
 Portability: The ability of software to be
transferred from one environment to another

Quality sub-characteristics

o Functionality:
 Suitability
 Accuracy
 Interoperability
 Security
o Reliability:
 Maturity
 Recoverability
 Fault Tolerance
o Usability:
 Understandability

 Learn ability
o Efficiency:
 Time behavior
 Resource behavior
o Maintainability
 Analyzability
 Changeability
 Stability
 Testability
o Portability:
 Adaptability
 Installability
 Replaceability

Defects: Definition

 Definitions: Error, Failure, Fault, Defect, Bug
o Error: A human action that produces an incorrect result
o Fault: An incorrect step, process, or data definition
o Failure: a behavioral deviation from user requirement or
product specification
Errors  Faults  Failures

Use the term Defect

Relation of failure, fault and error



Defect Relationship

 Relationship:
 One Error may cause many Faults
 One Fault may be caused by many Errors
 Other concept:
 Bug: defects found in the final application

 Leakage: defects found after releases

QA as dealing with defects

 Defect Prevention
 Defect Removal/Reduction

 Defect Containment

QA and Quality Engineering

 Quality Engineering (QC): Tester
 Defect detection
Quality Assurance: QA officer (QA)

 Defect prevention

Quality Control & Quality Assurance



Conclusion

 What is software Quality?
o Software quality includes many different attributes
o Different views of user, product, manufacturing
o Defect definition, QA deal with defects

To ensure quality => need many software QA activities



Continue Reading →

translate

Hôm nay đọc gì

Lưu trữ

view

view