Software Engineering Notes - 6 - 1713176101615
Software Engineering Notes - 6 - 1713176101615
unit 6
6.1 Basic of Software Testing
these terms:
Fault: A fault, also known as a defect or a bug, is a flaw in the software code or design that
can cause the software to behave unexpectedly or incorrectly under certain conditions
Faults can manifest in various forms, such as:
Syntax Errors: Mistakes in the code that violate the rules of the programming language,
leading to compilation errors.
Logic Errors: Flaws in the algorithm or logic of the software that cause it to produce
incorrect results.
Boundary Conditions: Issues related to handling boundary values or edge cases that can
lead to unexpected behavior.
Concurrency Issues: Problems arising from concurrent execution of code, such as race
conditions or deadlocks.
Interface Problems: Incompatibilities or misunderstandings in the interactions between
software components or external systems.
Failure: A failure occurs when a fault manifests itself and leads to the
requirements.
Continue…………
Identifying Defects: Testing helps uncover defects, bugs, or errors in the software,
Ensuring Quality: Testing ensures that the software meets specified quality standards
and performs as expected, enhancing user satisfaction and trust in the product.
Validating Requirements: Testing verifies that the software meets the specified
requirements and functions according to the intended design and user needs.
Mitigating Risks: Testing helps identify potential risks and vulnerabilities in the
relevant industry standards, regulations, and best practices, reducing legal and
What are Important Goals of Software Testing?
important goals that contribute to the overall success and reliability of a software application.
Immediate goals,
Long-term goals
Post-Implementation goals
Immediate Goals
addressing issues promptly, software testing aims to ensure that the software
quality and performance throughout its lifecycle. This involves conducting thorough
While they are related concepts, they focus on different aspects of the
Verification is the process of evaluating whether the software meets its specified
Validation, on the other hand, is the process of evaluating whether the software
meets the needs and expectations of its stakeholders and is fit for its intended
Unit testing is a type of software testing that focuses on individual units or components of
a software system.
The purpose of unit testing is to validate that each unit of the software works as intended
development process before the code is integrated and tested as a whole system.
Unit tests are designed to validate the smallest possible unit of code, such as a
function or a method, and test it in isolation from the rest of the system. This
allows developers to quickly identify and fix any issues early in the development
process, improving the overall quality of the software and reducing the time
Manual,
and Automated.
Unit Testing Techniques:
Increased Confidence:
Faster Development