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.

robot