0% found this document useful (0 votes)
14 views15 pages

Chapter 5 Fundamentals of Software Testing

Chapter 5 discusses the fundamentals of software testing, highlighting its importance in the software development life cycle (SDLC) for identifying defects and ensuring quality. It covers key concepts such as verification and validation, testing objectives, and various testing levels including unit, integration, system, and acceptance testing. The chapter also outlines the software testing process and emphasizes the need for early detection of defects and user involvement in validation.

Uploaded by

Nishant Jangid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views15 pages

Chapter 5 Fundamentals of Software Testing

Chapter 5 discusses the fundamentals of software testing, highlighting its importance in the software development life cycle (SDLC) for identifying defects and ensuring quality. It covers key concepts such as verification and validation, testing objectives, and various testing levels including unit, integration, system, and acceptance testing. The chapter also outlines the software testing process and emphasizes the need for early detection of defects and user involvement in validation.

Uploaded by

Nishant Jangid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Chapter 5

Fundamentals of
Testing
Fundamentals of Software
Testing
Fundamentals of Software Testing
Software testing is a crucial part of the software development life cycle (SDLC),
ensuring that a software application meets specified requirements and
functions correctly. It helps identify defects, improve quality, and increase
reliability before deployment.
1. What is Software Testing?
• Software testing is the process of evaluating a software system or application
to detect discrepancies between expected and actual results. It ensures that
the software is free of defects and meets the desired quality standards.
2. Objectives of Software Testing
• Identify and fix software defects
• Ensure software meets functional and non-functional requirements
• Improve software reliability and performance
• Validate that the software works as expected in real-world conditions
• Reduce maintenance costs and risks

3. Importance of Software Testing


• Enhances software quality and performance.
• Ensures customer satisfaction.
• Prevents financial and reputational losses due to defects.
• Increases efficiency and reduces future maintenance costs.
What is Verification and Validation?
• Verification: Ensures that the software is being built correctly according to
specifications. It focuses on process-oriented activities like reviews, inspections,
and walkthroughs.
• Validation: Ensures that the right software is built, meaning it meets the
intended user requirements and expectations through testing and evaluation.

Key Differences Between Verification and Validation


Aspect Verification Validation
Focus Process compliance Actual software functionality

Question Answered "Are we building the software right?" "Are we building the right software?"

Techniques Used Reviews, inspections, static analysis Testing, dynamic analysis

Performed When? Before execution (static) After execution (dynamic)


Principles of Verification and
A. Verification Principles
Validation
1.Early Detection – Verification should begin early in the software development
life cycle (SDLC) to identify defects before they become costly.
2.Process-Oriented Approach – Focuses on ensuring compliance with
development standards and best practices.
3.Static Techniques – Uses methods like code reviews, walkthroughs, and formal
inspections instead of executing the code.
4.Continuous Improvement – Verification should be an ongoing process to
enhance software quality throughout development.
5.Objective and Independent Review – Reviews should be performed by teams
separate from the developers to ensure unbiased assessments.
B. Validation Principles
1.Requirement-Based Testing – Ensures that the system meets all functional
and non-functional requirements.
2.Real-World Scenario Testing – Software should be tested under real or
simulated user conditions to validate performance.
3.Dynamic Execution – Validation involves executing the software and
comparing expected and actual results.
4.Defect Prevention Over Detection – Early validation helps prevent defects
rather than just detecting them after deployment.
5.End-User Involvement – Validation should involve actual users to confirm the
software meets their needs.
Types of Verification Techniques
A. Review-Based Techniques
1.Requirement Reviews
1. Examining requirement documents to ensure they are complete, consistent, and feasible.
2. Identifies ambiguities, missing information, and conflicts early.
3. Techniques used: Peer reviews, expert reviews.
2.Design Reviews
1. Evaluating the software architecture and design against requirements.
2. Helps identify issues in design consistency, scalability, and feasibility.
3. Techniques used: Structured walkthroughs, architectural reviews.
3.Code Reviews
1. Examining source code to identify bugs, adherence to coding standards, and maintainability.
2. Performed manually or with static analysis tools.
3. Techniques used: Peer reviews, pair programming, automated code analysis.
4.Test Plan Reviews
1. Assessing test plans and test cases before execution to verify coverage and correctness.
2. Ensures all requirements are covered and the test cases are valid.
V-Model (Verification and
Validation Model)
1. Overview of V-Model
• Also known as the "Validation and Verification Model" or "V-Shaped Model."
• Represents the development and testing phases in a V-shaped structure.
• Emphasizes early testing (i.e., testing is planned in parallel with development).
• Ensures that defects are detected early, reducing development costs and
efforts.
2. Phases of the V-Model
The V-Model consists of two main sides:
1.Left Side (Verification Phases) – Defines requirements, design, and planning.
2.Right Side (Validation Phases) – Includes different levels of testing.
A. Verification (Left Side of "V")
1.Requirement Analysis
1. Understanding user needs and business requirements.
2. Output: Software Requirement Specification (SRS).
3. Testing Activity: Acceptance Test Planning.
2.System Design
1. Defining overall system architecture and high-level design.
2. Output: System Design Document.
3. Testing Activity: System Test Planning.
3.Coding & Implementation
1. Writing and developing the software code.
2. Output: Source Code.
3. Testing Activity: Code Reviews, Static Analysis.
B. Validation (Right Side of "V")
4. Unit Testing (Verifies Low-Level Design)
6. Testing individual modules and functions.
7. Performed using automated tools (e.g., JUnit, NUnit).
5. Integration Testing (Verifies High-Level Design)
8. Ensures that different modules work together correctly.
9. Methods: Top-Down, Bottom-Up, Big Bang, Hybrid Testing.
6.System Testing (Verifies System Design)
6. Evaluates the entire system against functional and non-functional requirements.
7. Includes performance, security, usability, and reliability testing.
7.User Acceptance Testing (UAT) (Verifies Requirements)
6. Ensures the system meets business needs and user expectations.
7. Conducted by end-users before final deployment.
Software Testing Process
A. Test Planning and Control
• Define the testing objectives, scope, resources, and schedule.
• Identify risks and mitigation strategies.
B. Test Design
• Create detailed test cases based on software requirements.
• Define test data and expected results.
C. Test Implementation and Execution
• Set up the test environment and execute test cases.
• Record results and log defects.
D. Test Closure
• Analyze test results and document findings.
• Provide a final test report and recommendations.
Testing Levels
Software testing is divided into four main levels:
1.Unit Testing
2.Integration Testing
3.System Testing
4.Acceptance Testing

A. Unit Testing
Definition
• Unit testing focuses on testing individual components or modules of the software in isolation.
• It ensures that each function works correctly before integration.
Key Features
✔ Performed by developers during the coding phase.
✔ Uses white-box testing techniques.
✔ Automated tools like JUnit, NUnit, and PyTest are commonly used.
Example
• Testing a function that calculates the total price of an order before integrating it with the payment
module.
B. Integration Testing
Definition
• Integration testing verifies that multiple modules work together correctly.
• It ensures that data flows properly between connected components.
Types of Integration Testing
1.Top-Down Testing – Tests high-level components first, then integrates lower-level
ones.
2.Bottom-Up Testing – Tests lower-level components first, then integrates with
higher levels.
3.Big Bang Testing – All modules are tested together at once.
4.Hybrid Testing (Sandwich) – A combination of top-down and bottom-up
approaches.
Example
• Testing the connection between a login module and a database to ensure user
authentication works correctly.
C. System Testing
Definition
• System testing evaluates the entire application as a whole to ensure it meets
functional and non-functional requirements.
• It includes performance, security, usability, and compliance testing.
Key Features
✔ Tests the entire software system under real-world conditions.
✔ Ensures compliance with requirements.
✔ Performed by QA teams.
Example
• Testing an e-commerce website to ensure users can browse products, add
items to a cart, and complete purchases.
D. Acceptance Testing
Definition
• Acceptance testing determines whether the software meets business
requirements and is ready for deployment.
• It is conducted by end-users or clients.
Types of Acceptance Testing
1.User Acceptance Testing (UAT) – Conducted by actual users.
2.Operational Acceptance Testing (OAT) – Checks system performance and
maintenance readiness.
3.Regulatory Acceptance Testing – Ensures compliance with industry standards.
Example
• A company tests its payroll software to ensure it calculates salaries correctly
before launching it.

You might also like