0% found this document useful (0 votes)
4 views9 pages

Software Testing

The document provides an overview of software testing, including its objectives, levels, techniques, methods, and strategies. It distinguishes between functional and non-functional testing, outlines the software testing life cycle, and defines key terms related to testing. Additionally, it explains verification and validation processes, along with the differences between black box and white box testing.

Uploaded by

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

Software Testing

The document provides an overview of software testing, including its objectives, levels, techniques, methods, and strategies. It distinguishes between functional and non-functional testing, outlines the software testing life cycle, and defines key terms related to testing. Additionally, it explains verification and validation processes, along with the differences between black box and white box testing.

Uploaded by

zzxiaoerzz
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

📜

1.1 Introduction to Software


Testing
Software testing is the process of executing a program with the intent of
finding errors, verifying that the software meets its requirements, and
ensuring that it behaves correctly.

Classification of Software Testing


1. Testing Objectives
Functional Testing

1.1 Introduction to Software Testing 1


Checks whether the software functions work according to the
requirements.
Example: Verifying that a login button allows users to sign in successfully.

Non-Functional Testing
Checks the quality and performance of the software.
Focuses on aspects like speed, security, usability, and compatibility.
a. Performance Testing
Measures how fast and efficiently the system responds.
Example: Checking how quickly a website loads under normal conditions.
b. Security Testing
Identifies vulnerabilities and protects data from unauthorized access.
Example: Testing whether passwords are stored securely.
c. Usability Testing
Ensures the software is easy to learn and use.
Example: Checking if users can easily find the search option.
d. Compatibility Testing
Verifies that the software works on different devices, browsers, and
operating systems.
Example: Testing an app on Android, iOS, and Windows.

2. Testing Levels
Unit Testing
Tests individual components or functions separately.
Example: Testing a calculator's addition function.

Integration Testing
Checks whether different modules work together correctly.
Example: Testing communication between the login page and database.

1.1 Introduction to Software Testing 2


System Testing
Tests the complete application as a whole.
Example: Verifying all features of an online shopping system.

Acceptance Testing
Confirms that the software meets user and business requirements.
Example: Client testing the final product before release.

3. Testing Techniques
Manual Testing Automated Testing
• Testers execute test cases without using • Uses software tools to run tests
automation tools. automatically.
• Useful for checking user experience and • Saves time when testing repetitive
visual issues. tasks.

4. Testing Methods
White Box Testing
Black Box Testing
• Tests the internal code, logic,
• Tests software without looking at the
and program structure.
internal code.
• Usually performed by
• Focuses on inputs, outputs, and
developers or testers with coding
expected behavior.
knowledge.

5. Testing Strategies
Top-Down Testing Bottom-Up Testing
• Testing starts from higher-level
• Testing starts from lower-level
modules and moves downward.
modules and moves upward.
• Uses temporary modules called
• Uses drivers to simulate higher-
stubs for lower-level
level modules during testing.
components.

Quick Memory Trick


Objectives → What to test

1.1 Introduction to Software Testing 3


Levels → Where to test
Techniques → How testing is performed
Methods → What knowledge of code is used
Strategies → In what order modules are tested

Basic Definitions in Software Testing


1. Error – A human mistake made during the software development process.
2. Fault (Defect, Bug) – A flaw in the software code that can cause incorrect
behavior.
3. Failure – The incorrect behavior of the software when executed due to a
fault.
4. Test Case – A set of inputs, execution conditions, and expected results to
check
software functionality.
5. Test Plan – A document outlining the scope, approach, resources, and
schedule for
testing.
6. Test Execution – The process of running test cases on the software.
7. Verification – Ensuring that the software meets design specifications (Are
we

1.1 Introduction to Software Testing 4


building the product right?).
8. Validation – Ensuring that the software meets user requirements (Are we
building the
right product?).
9. Regression Testing – Retesting previously tested functionalities to ensure
that
changes did not introduce new defects.
10. Boundary Value Testing – A testing technique that focuses on values at the
edge of
input ranges.
11. Equivalence Class Testing – Dividing input data into groups and testing
representative values from each group.

Testing Life Cycle

The Software Testing Life Cycle (STLC) consists of the following key phases:
1. Requirement Analysis
 Understand and analyze software requirements from a testing
perspective.
 Identify testable and non-testable requirements.
 Prepare a Requirement Traceability Matrix (RTM).
2. Test Planning
 Define the test strategy, scope, schedule, and resources.
 Identify testing tools, risk analysis, and effort estimation.
 Create a Test Plan Document.

1.1 Introduction to Software Testing 5


3. Test Case Development
 Design test cases covering functional and non-functional requirements.
 Prepare test data and automated test scripts (if applicable).
 Perform peer reviews on test cases.
4. Test Environment Setup
 Configure the required hardware, software, and network.
 Create necessary test databases.
 Ensure the environment is ready before execution.
5. Test Execution
 Run test cases manually or using automation tools.
 Log defects and report issues in defect tracking tools.
 Retest after fixes and conduct regression testing.
6. Defect Reporting and Tracking
 Identify, document, and prioritize defects.
 Developers fix defects, and testers verify the resolution.
 Use defect tracking tools (JIRA, Bugzilla, etc.).
7. Test Closure
 Prepare Test Summary Report with key findings.
 Analyze test coverage, defect reports, and overall software quality.
 Document lessons learned for future projects.

Levels of Software Testing


1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
Techniques /
Who Performs
Testing Level Definition Approaches / Example
It?
Types
• White-box
Testing Testing a
Developers or Testing •
individual function that
testers using Boundary Value
Unit Testing components or calculates the
tools like JUnit Analysis •
modules of the sum of two
and NUnit. Equivalence
software. numbers.
Partitioning

1.1 Introduction to Software Testing 6


Techniques /
Who Performs
Testing Level Definition Approaches / Example
It?
Types
• Top-Down
Testing the Testing the
Approach •
interaction Developers or interaction
Integration Bottom-Up
between Integration between a login
Testing Approach •
integrated Testers. module and a
Sandwich
modules. database.
Approach
• Functional Testing a
Testing the Testing • banking
System entire Independent Performance application to
Testing application as a Testing Team. Testing • ensure all
whole. Security features work
Testing properly.
Testing a new
Final testing
Clients, End payroll system
before the
Acceptance Users, or • Alpha Testing with real
product is
Testing Business • Beta Testing employee data
delivered to
Analysts. before
users.
deployment.

Verification and Validation


Verification (Static Testing)
Checks whether the software is being developed correctly.
Done during the development phase before actual testing.
Ensures requirements, design, and documents are correct.
Answers the question: "Are we building the product right?"
It is a low-level activity.
Uses document checking and reviews.

Validation (Dynamic Testing)


Checks whether the final software meets user needs.
Done after development through actual testing.

1.1 Introduction to Software Testing 7


Ensures the software works as expected.
Answers the question: "Are we building the right product?"
It is a high-level activity.
Uses execution of the software.

Verification Techniques (Static Testing


Techniques)
1. Reviews
Systematic examination of documents to find errors early.
Helps improve software quality before coding/testing.

Formal Review
Follows a structured and planned process.
Includes planning, review meetings, and rework.

Informal Review
Simple review without a formal process.
Usually done by team members for quick feedback.

2. Inspection
Most formal type of review.
Led by a trained moderator.
Documents are checked thoroughly before meetings.
Used to detect defects at an early stage.

3. Walkthrough
Author explains the document or design to others.
Team members provide feedback and suggestions.

1.1 Introduction to Software Testing 8


Informal and less expensive review method.
Helps improve the product before implementation.

Black Box Testing vs White Box Testing


Black Box Testing White Box Testing
Tests software functionality. Tests internal code and logic.
No knowledge of source code is needed. Knowledge of source code is required.
Focuses on code paths and program
Focuses on inputs and outputs.
flow.
Usually performed by testers. Usually performed by developers.
Finds missing functions and requirement Finds coding errors and logical
issues. mistakes.
Examples: Loop testing, Statement
Examples: Login testing, Form validation.
testing.
Specification Based Testing Code Based Testing
Functional Testing Structural Testing

1.1 Introduction to Software Testing 9

You might also like