UNIT6
Digital Learning Content Overview
Course: Software Engineering
Institution: Parul University
Instructor: Prof. Gulbakshee Dharmale
Unit 6: Software Testing and Quality Assurance
Key Topics Covered
Software Testing Concepts
Definitions and importance of software testing
Psychological aspects of testing
Levels of testing
Testing Process
Test planning, design, execution
Black-Box Testing
Techniques: Boundary value analysis, Pairwise testing, State-based testing
White-Box Testing
Criteria for test case generation, tool support
Software Testing
Concepts of Software Testing
Purpose: To find errors in software before delivery.
Understanding testing techniques for discovering faults.
Guidelines for interface testing.
Object-oriented testing approaches.
Principles of CASE tool support for testing.
Psychology of Testing
Tests traceable to customer requirements.
Early planning of tests.
Start testing small, proceed to large-scale testing.
Exhaustive testing is impractical.
Independent third-party testing recommended.
Phases of Software Testing
Component Testing
Focus on individual program components.
Tests based on developer’s experience.
Integration Testing
Testing of integrated components.
Tests based on specifications.
Testing Process Overview
Design test cases.
Prepare test data.
Execute program with test data.
Compare results to expected outcomes.
Test Planning
Importance of test planning in project execution.
Main document: Master test plan.
Outlines scope, risks, and estimation of test efforts.
Test Case Design
Ensures completeness and high error detection likelihood.
Two main testing methods:
Black-Box Testing
White-Box Testing
Test Execution
Execute code and compare expected vs. actual results.
Key factors include risk assessment and reporting.
Levels of Testing
Distinct Methodologies
Functional Testing
Based on software specifications, evaluating compliance.
Non-Functional Testing
Assessing performance, security, usability, etc.
Black-Box Testing
Considered as behavioral testing.
Derived from functional requirements.
Focused on input conditions and behavior.
Errors Found in Black-Box Testing
Incorrect/missing functions.
Interface errors.
Data structure issues.
Behavioral or performance errors.
Boundary Value Analysis
Test Case Design Technique
Selects cases from edges of equivalence classes.
Focuses on both input and output conditions.
Pairwise Testing
Testing Paradigm
Uses permutations and combinations of input parameter pairs.
Reduces test case execution time while increasing coverage.
Advantages
Reduces execution of test cases.
Increases defect detection ratio.
Disadvantages
May miss highly probable combinations.
Misinterpretations can occur if variables not understood.
State-Based Testing
Focuses on relationships between modeled objects in software.
Develop tests that verify expected relationships.
Graph Representation in Testing
Nodes represent objects.
Links denote relationships; can be directed or undirected.
White-Box Testing
Overview
Test case design based on control structure of the code.
Ensures all paths and decisions in a module are tested.
Techniques in White-Box Testing
Basis Path Testing
Derives test cases to cover all statements.
Cyclomatic Complexity
Measures logical complexity and independence of paths.
Quality Control
Definition
Encompasses inspections, reviews, and tests throughout the process.
Ensures compliance with predefined specifications.
Cost of Quality
Divided into three types:
Prevention Costs
Appraisal Costs
Failure Costs
Software Quality Assurance (SQA)
Role of SQA
Auditing, reporting, and addressing quality issues.
Ensures conformance to defined standards and protocols.
Quality Standards
ISO 9000 and ISO 9001
Certification standards emphasizing quality management systems.
References
Pressman, R. S. (2005). Software engineering: a practitioner's approach.
Sommerville, I. (2013). Software Engineering.
Jalote, P. (2012). An integrated approach to software engineering.