Untitled presentation
Page 1
Page 2
Title: Software Quality Engineering
Lecture 1
Page 3
Quality Exploration
Let's start with a question: What is Quality?
Where is Quality?
Page 4
Quality Car Identification
Which one is a quality car?
Example: Sofa 7194
Page 5
Definitions of Quality
Transcendental View: Recognizable but not definable.
User View: Fitness for purpose.
Manufacturing View: Conformance to specification.
Product View: Tied to inherent product characteristics.
Value-Based View: Dependent on the payment a customer is willing to make.
Page 6
IEEE Definition of Quality
Concise Definition: Quality is the degree to which a system, component, or process meets specified requirements, customer or user needs, or expectations (IEEE Standard Glossary of Software Engineering Terminology).
Page 7
Components of Quality
Conformance to Requirements: Requirements must be clear; non-conformances are defects.
Fitness for Use: Must meet customer expectations.
Important Parameters:
Quality of Design: Determination of requirements.
Quality of Conformance: Adherence to stated requirements.
Page 8
Software Quality Expectations
Two Key Expectations:
Do the Right Things: Software performs intended functions accurately.
Do Things Right: Software executes functions correctly and efficiently.
Example: Airline Reservation System.
Doing Right: Should handle flight reservations, validated for purpose.
Doing Right: Should validate reservations quickly, avoiding errors.
Focus Activities: Validation and Verification (ensure needs and operations are met).
Page 9
What is Software Quality Engineering
The practice of integrating quality checks throughout the development cycle.
Aim: Ensure efficient testing for quality during the software development cycle.
Responsibility includes designing and maintaining quality assurance policies and processes.
Page 10
Interaction Question
Reflecting on experiences in software development: What is the role of quality? How can quality engineering be performed?
Page 11
Software Quality Engineering Process
Key Components:
Set quality goals early in development.
Choose and monitor QA strategies to meet those goals.
Analyze QA and development data for continuous improvement.
Feedback Loop: QA insights assist in better decisions and measurable improvements.
Real-Life Scenario: Self-driving car.
Testing for traffic law adherence, inspection for logic errors, fault tolerance for sensor failures.
Page 12
Challenges in Software Quality
Increased software complexity due to modern system demands.
Quality issues can have severe impacts due to high reliance on software.
Example: Banking app; incorrect interest calculations lead to loss of trust.
Page 13
Relationships in Software Quality
Software Quality Engineering (SQE):
Overarching process ensuring high-quality software.
Scope: Encompasses all quality-related activities.
Goal: Achieve and maintain software quality.
Page 14
Quality Assurance (QA)
Definition: A subset of SQE focused on systematic activities to prevent/reduce software problems.
Scope: Techniques include inspection, defect prevention, fault tolerance, and testing.
Role: To meet predefined quality standards by minimizing problem occurrence.
Page 15
Testing in Software Quality Engineering
Definition: Core QA activity to verify software against specifications.
Scope: Detects defects and validates system functionality.
Role: Central QA method for identifying discrepancies and aiding defect removal.
Page 16
Overview of Relationships
SQE serves as the framework for QA activity planning and management.
QA is part of SQE employing technical and procedural methods.
Testing plays a pivotal role in validation and defect detection within QA.
Page 17
Practical Example of SQE, QA, and Testing
SQE: Establish quality goals (e.g., 99.9% uptime).
QA: Code inspections, validation techniques, automated fault tolerance.
Testing: Functional, stress, and regression tests across various scenarios.
Page 18
Importance of Software Quality
Ubiquity: Software systems central to modern life (e.g., information processing).
Dependence: Reliable, efficient software necessary for user activities.
High-Quality Requirements: User-friendly and maintainable software essential.
Developer Role: Developers must engage in quality assurance activities.
Evidence-Based Quality: Quality claims must be backed by measurements.
Page 19
Lecture Summary
Transition to Software Quality Engineering, Lecture 2.
Page 20
Objectives of SQA
Process Goals:
Fit-for-use software production.
Implement and check compliance with suitable processes.
Evaluate processes for improvement.
Produce Correct, Reliable, Accurate, and Maintainable products.
Page 21
Reliability of Product
Definition: Likely performance under specific conditions over time.
Example: A washing machine functions without issues for 5 years.
Software Reliability: Encompasses correctness, accuracy, consistency.
Example: A banking app should correctly calculate transactions.
Page 22
Definition of Software Reliability
Ability to perform defined functions under specified conditions.
Reliance on correctness, confidence, accuracy, precision over time.
Page 23
What is Software Maintenance?
Definition: Modifications post-delivery to correct faults and improve performance.
Types of Maintenance:
Corrective: Fixes bugs post-delivery.
Adaptive: Updates to maintain operation with changing environments.
Perfective: Adds improvements or features.
Page 24
(Duplicate of Page 23)
Page 25
Software Process Improvement
Definition: Planned enhancements to software creation process.
Distinctions:
Process Improvement: Upgrades and standardizes software production.
Process Management: Effective resource usage for developing quality software.
Page 26
Achieving Objectives through Verification and Validation
Verification: Ensures accuracy in building software (process adherence).
Validation: Ensures the right software is built (meets user needs).
Page 27
Achieving Objectives through Testing and Evaluation
Testing: Engaging software under conditions to check functionality and compliance.
Evaluation: Judging overall software quality and performance based on testing.
Page 28
Establishing Software Quality Program
Set requirements for software quality.
Establish methodology for development processes.
Evaluate process and product quality consistently.
Page 29
Phases of SDLC with SQA Activities
Inception: Project conceptualization and feasibility.
Requirements Analysis: Gathering and documenting software needs.
SQA Activity: Requirements review for completeness.
Page 30
Phases of SDLC with SQA Activities (Design)
High-Level Design: Structure outlines (e.g., modules).
SQA Activity: Inspect the design for accuracy and issues.
Page 31
Phases of SDLC with SQA Activities (Coding and Testing)
Coding: Writing code per design.
SQA Activity: Conduct reviews and testing for error detection.
Page 32
Exercise Scenario
Create a management system for class scheduling at an educational institution.
Key requirements: Resource management and ease-of-use considerations.
Page 33
Requirement Specification
Details of resource fields and constraints (e.g., uniqueness, alphanumeric types).
Page 34
Task Assignment
Analyze requirements, raise concerns for improvement, and generate test cases.
Page 35
Classroom Manager Implementation
Core functionalities for resource management and classroom setup.
Page 36
UI Testing Task
Identify and report defects related to UI.
Page 37
Software Quality Engineering - Lecture 3
Page 38
Software Quality Framework
Quality defined by various models (ISO-9126).
Key characteristics of software quality.
Page 39
ISO-9126 Functionality
Definition: Functionality attributes meeting user needs.
Sub-characteristics include suitability, accuracy, interoperability, security.
Page 40
ISO-9126 Reliability
Definition: Capability to maintain performance.
Sub-characteristics include maturity, fault tolerance, and recoverability.
Page 41
ISO-9126 Usability
Definition: Effort needed for use and user assessment.
Sub-characteristics include understandability, learnability, and operability.
Page 42
ISO-9126 Efficiency
Definition: Performance vs resource usage under conditions.
Sub-characteristics include time behavior and resource behavior.
Page 43
ISO-9126 Maintainability
Definition: Effort needed for modifications.
Sub-characteristics include analyzability and changeability.
Page 44
ISO-9126 Portability
Definition: Software adaptability to various environments.
Sub-characteristics include adaptability and installability.
Page 45
Implementing ISO-9126 in SDLC
Phase wise application of ISO-9126 in context of a fitness tracking app.
Page 46
Continuing Implementation of ISO-9126 in SDLC
Ongoing focus on testing, deployment, and maintenance in app lifecycle.
Page 47
Understanding Software Defects
Definitions: Error (human mistake), Fault (hidden problem), Failure (unexpected behavior).
Page 48
Dealing with Software Defects
Defect Prevention: Steps to mitigate defect occurrence.
Example: Clear requirement documentation and coding guidelines.
Page 49
Continued Defect Management
Detection & Removal: Identify problems before release.
Example: Testing and code reviews.
Page 50
Defect Containment Solutions
Strategies to minimize impacts of existing defects.
Example: Quick fixes and backup systems.
Page 51
Economics of Software Defects
Analysis of defect costs through development phases.
Page 52
Defects Pattern Analysis
Comparison of defect rates with and without QA functions.
Page 53
Cost to Fix Defects Over Time
Cost implications of defects across different development phases.
Page 54
Transition to Lecture 4
Background
Previous focus on correctness shifted to QA processes aimed at defect minimization.
Page 55
Overview of QA Approaches
Focuses on prevention, detection and removal, containment methods.
Page 56
Defect Prevention Techniques
Strategies to eliminate error sources to enhance software quality.
Page 57
Error Source Elimination
Primary prevention methods including clarity in requirements and training.
Page 58
Error Blocking Techniques
Code reviews and strict coding standards to enhance quality.
Page 59
Exercise Regarding Handling Errors
Handling division by zero error effectively in code.
Page 60
Exercise Solution
Corrected code handling division by zero with error messages.
Page 61
Techniques for Defect Reduction
Inspections and software testing as core methods for quality assurance.
Page 62
Analyzing Software with Static and Dynamic Techniques
Techniques for identifying faults without and during program execution.
Page 63
Strategies for Defect Containment
Focus on maintaining functionality in the face of faults.
Page 64
Failure Containment Approaches
Critical system safety measures for defect management.
Page 65
Definition of Software Testing
Critical activity; verifying and validating software functionality.
Page 66
Types of Testing
Different testing stages from unit to beta testing focusing on functionality.
Page 67
Testing Approaches
Black-Box: Functional view; testing based on requirements.
White-Box: Structural view; examining code.
Page 68
Comparing Testing Approaches
Insight into black-box and white-box testing differences and contexts.
Page 69
Black-Box Testing Example
Practical example of verifying functionality without accessing code.
Page 70
White-Box Testing Example
Tailored testing utilizing program insights.
Page 71
When to Stop Testing
Criteria based on coverage and reliability for efficient testing completion.
Page 72
Software Quality Engineering - Lecture 5
Page 73
Introduction to Software Testing
Overview of purpose and significance in the development lifecycle.
Page 74
Role of Testing
Critical for error prevention and ensuring customer expectations are met.
Page 75
Requirement Analysis in STLC
Initial analysis ensures understanding and clarity of testing requirements.
Page 76
Exercise on Leave Module
Engage with defining leave functionalities.
Page 77
Solution for Leave Module Requirements
Functional and non-functional requirements documented.
Page 78
Test Case Documentation
Comprehensive test cases to track testing activities.
Page 79
Test Planning Activities
Essential steps for establishing effective test management.
Page 80
Test Planning Goals
Ensuring well-defined goals and strategies for testing.
Page 81
Test Planning Entry/Exit Criteria
Establishing necessary requirements for testing preparation and validation.
Page 82
Test Planning Group Collaboration
Group tasks to develop a comprehensive test plan.
Page 83
Test Case Development Focus
Key activities in creating structured test cases for execution.
Page 84
Test Case Development Criteria
Comprehensive documentation and preparation details.
Page 85
Exercise on Test Case Development
Steps directed at defining and organizing test cases.
Page 86
Test Case Development Solution
Illustrative examples of test case creations and their expected results.
Page 87
Test Environment Setup
Preparatory actions for ensuring a suitable testing environment.
Page 88
Environment Setup Criteria
Requirements needed for confirming environment readiness.
Page 89
Test Execution Overview
Core activities during the execution phase of testing.
Page 90
Execution Criteria
Entry and exit points for effective test execution.
Page 91
Test Execution Steps
Structured guide for conducting and tracking testing outcomes.
Page 92
Bug Report Template Example
Detailed formats for documenting discovered defects.
Page 93
Test Closure Phase Overview
Summary activities marking the conclusion of the testing cycle.
Page 94
Closure Criteria
Essential conditions for completing the testing phase.
Page 95
Test Closure Steps
Systematic approach for finalizing the testing process.
Page 96
Test Closure Reporting Example
Sample reporting depicting test outcomes and recommendations.