0% found this document useful (0 votes)
87 views30 pages

Software Engineering Notes - 6 - 1713176101615

Uploaded by

subhamkale4311
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)
87 views30 pages

Software Engineering Notes - 6 - 1713176101615

Uploaded by

subhamkale4311
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/ 30

Software Testing

unit 6
6.1 Basic of Software Testing

 Introduction to faults and failures;

 basic testing concepts;

 concepts of verification and validation


 Faults and failures are key concepts in software engineering and are closely

related to software testing and quality assurance. Here's an introduction to

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

software not behaving as expected or not meeting its specified requirements.


 Failures can have various impacts, including:
 Functional Impact: The software may fail to perform its intended functions or
produce incorrect results.
 Usability Impact: Users may encounter difficulties or confusion when using
the software due to unexpected behavior or errors.
 Security Impact: Faults that result in security vulnerabilities can expose the
software to unauthorized access, data breaches, or other security threats.
 Reputation Impact: Failures can damage the reputation of the software, the
What is Software Testing?

 Software Testing is a method to check whether the actual

software product matches expected requirements and to

ensure that software product is Defect free.


2.basic testing concepts;
What is purpose of software testing ?

 The purpose of software testing is to identify errors, gaps

or missing requirements in contrast to actual

requirements.
Continue…………

 Identifying Defects: Testing helps uncover defects, bugs, or errors in the software,

allowing developers to address them before the software is released to users.

 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

software, such as security vulnerabilities or performance issues, enabling

proactive measures to mitigate these risks.

 Optimizing Performance: Testing evaluates the performance of the software

under various conditions, such as different user loads or network environments,

to optimize its performance and responsiveness.

 Maintaining Compliance: Testing ensures that the software complies with

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.

 These goals can be classified into three categories –

 Immediate goals,

 Long-term goals

 Post-Implementation goals
Immediate Goals

 Immediate goals of software testing focus on the early detection and

resolution of defects during the development process. By identifying and

addressing issues promptly, software testing aims to ensure that the software

is stable and reliable before moving on to subsequent development stages.


Immediate goals include –

 Immediate goals include –


 Defect Identification: Identifying and documenting defects, bugs, or errors
in the software during the testing phase.
 Verification of Requirements: Ensuring that the software adheres to the
specified requirements and performs its intended functions accurately.
 Validation of Functionalities: Verifying that all the features and
functionalities of the software work as expected and deliver the desired
outcomes.
 Validation of Design: Ensuring that the software’s design aligns with user
needs and facilitates ease of use.
Long-term Goals

 Long-term goals of software testing focus on continuously improving the software’s

quality and performance throughout its lifecycle. This involves conducting thorough

testing during each development iteration to enhance the application’s functionality,

security, and user experience.


Long-term goals include –

 Long-term goals include –


 Continuous Testing and Improvement: Implementing automated testing
processes to continuously test the software, identify issues, and provide
timely feedback for improvement.
 Performance Optimization: Regularly assessing and optimizing the
software’s performance to ensure it meets the expected standards, even
as user demands and data volumes increase.
 Security Enhancements: Conduct security testing to identify and address
vulnerabilities, safeguarding the software against potential threats and
data breaches.
 Regression Testing: Performing regression testing to validate that new
updates or fixes do not negatively impact existing functionalities.
Post-Implementation Goals

 Post-implementation goals of software testing involve ensuring the

software’s stability and functionality after its deployment. This stage

aims to provide ongoing support and maintenance to address any

issues that may arise in real-world usage.


Post-implementation goals include –

 Post-implementation goals include –


 Monitoring and Bug Fixing: Continuously monitoring the software’s
performance in a live environment and promptly fixing any post-
deployment defects or issues that may surface.
 User Feedback Incorporation: Collecting and incorporating user feedback
to improve the software’s user experience and align it with evolving user
requirements.
 Enhancements and Updates: Releasing regular updates and enhancements
to add new features, improve performance, and address user needs.
What are the benefits of Software Testing?

 Here are the benefits of using software testing:


 Cost-Effective: It is one of the important advantages of software testing.
Testing any IT project on time helps you to save your money for the long
term. In case if the bugs caught in the earlier stage of software testing, it
costs less to fix.
 Security: It is the most vulnerable and sensitive benefit of software testing.
People are looking for trusted products. It helps in removing risks and
problems earlier.
 Product quality: It is an essential requirement of any software product.
Testing ensures a quality product is delivered to customers.
 Customer Satisfaction: The main aim of any product is to give satisfaction to
their customers. UI/UX Testing ensures the best user experience.
6.1.3 concepts of verification and
validation

 Verification and validation are two crucial processes in software development

that ensure the quality, correctness, and reliability of software products.

While they are related concepts, they focus on different aspects of the

software engineering process


 Verification:

 Verification is the process of evaluating whether the software meets its specified

requirements and adheres to its predefined standards and guidelines. It focuses on

answering the question, "Are we building the product right?"


 Validation:

 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

purpose. It addresses the question, "Are we building the right product?"


Unit Testing

 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

and meets the requirements.

 Unit testing is typically performed by developers, and it is performed early in the

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

required for later testing.


Objective of Unit Testing:

 Objective of Unit Testing:


 The objective of Unit Testing is:
 To isolate a section of code.
 To verify the correctness of the code.
 To test every function and procedure.
 To fix bugs early in the development cycle and to save costs.
 To help the developers understand the code base and enable them to make
changes quickly.
 To help with code reuse.
Types of Unit Testing:

 There are 2 types of Unit Testing:

 Manual,

 and Automated.
Unit Testing Techniques:

 Unit Testing Techniques:


 There are 3 types of Unit Testing Techniques. They are
 Black Box Testing: This testing technique is used in covering the unit tests for
input, user interface, and output parts.
 White Box Testing: This technique is used in testing the functional behavior
of the system by giving the input and checking the functionality output
including the internal design structure and code of the modules.
 Gray Box Testing: This technique is used in executing the relevant test cases,
test methods, and test functions, and analyzing the code performance for the
modules
Unit Testing Tools:

 Unit Testing Tools:


 Here are some commonly used Unit Testing tools:
 Jtest
 Junit
 NUnit
 EMMA
 PHPUnit

what is Advantages of Unit Testing
 Improved Code Quality:

 Increased Confidence:

 Faster Development

 Reduced Time and Cost


Disadvantages of Unit Testing:

 The process is time-consuming for writing the unit test cases.



Difficulty in Testing User Interfaces: Unit testing may not be suitable for
testing user interfaces, as it typically focuses on the functionality of
individual units.

You might also like