0% found this document useful (0 votes)
9 views28 pages

Software Testing

Software testing is a method to evaluate the functionality of software, ensuring it meets requirements and is free of bugs. It is crucial for improving software quality, customer satisfaction, and reducing risks. The document outlines various testing objectives, classifications, techniques, and the testing life cycle, providing a comprehensive overview of software testing practices.

Uploaded by

Vani VS
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)
9 views28 pages

Software Testing

Software testing is a method to evaluate the functionality of software, ensuring it meets requirements and is free of bugs. It is crucial for improving software quality, customer satisfaction, and reducing risks. The document outlines various testing objectives, classifications, techniques, and the testing life cycle, providing a comprehensive overview of software testing practices.

Uploaded by

Vani VS
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

Software Testing

UNIT - 1
What is Software Testing?

 Software Testing is a method to assess the functionality of the software program.

 The software checks whether the actual software matches the expected requirements and ensures

the software is bug-free.

 The purpose of software testing is to identify the errors, faults, or missing requirements in contrast to

actual requirements.

 It mainly aims at measuring the specification, functionality, and performance of a software or an

application.
Why Software Testing is Important? What are the benefits of Software Testing?

 Defects can be identified early

 Improves quality of software

 Increased customer satisfaction

 Cost-Effectiveness

 Reduced Risks

 Enhanced Security

 Satisfied Customers

 Improving Performance
Goals or Objectives of Software Testing

 To demonstrate that the software meets its requirements and specifications.

 To identify defects, errors, and bugs in the software and ensure that they are fixed before the

software is released to end-users.

 To ensure that the software is reliable, efficient, and user-friendly.

 To improve the quality of the software and reduce the risk of failure or malfunction.

 To ensure that the software is compatible with different hardware, software, and operating

systems.
Goals or Objectives of Software Testing

 To ensure that the software is secure and protects sensitive data from unauthorized access.

 To ensure that the software performs well under different conditions, such as high traffic, heavy

load, or stress.

 To ensure that the software is easy to maintain and update.

 To ensure that the software is compliant with industry standards and regulations.

 To ensure that the software meets the expectations and needs of end-users.
Classifications of Software Testing

 Based on Testing Objectives


 Based on Testing Levels
 Based on Testing Technologies
 Based on Testing Methods
 Based on Testing Strategies
Based on Testing Objective

1. Functional Testing

 This type of testing ensures that the software functions as intended and meets the specified functional
requirements.
 Test cases are designed to validate the behavior of individual functions, features, and user interactions
within the software application.
 This testing type answers the question:
 "Does the software do what it's supposed to do?"
 It usually involves testing user interfaces, APIs, databases, security
 features, and any other component that contributes to the software's core functionality.

Example: In whatsapp can I sen a voice note: yes / no


Based on Testing Objective
2. Non-Functional Testing
This evaluates the software's performance and other aspects like scalability, usability, reliability, and security.

 Performance Testing: Performance testing evaluates how the software performs under various conditions such

as load, stress, and scalability. It aims to identify performance bottlenecks and ensure that the software meets

performance expectations.

 Security Testing: Security testing focuses on identifying vulnerabilities and weaknesses in the software to prevent

unauthorized access, data breaches, and other security threats.

 Usability Testing: Usability testing assesses the user-friendliness and overall user experience of the software. It

involves testing the interface, navigation, and accessibility to ensure a positive user experience.

 Compatibility Testing: Compatibility testing checks the software's compatibility with different devices, browsers,

operating systems, and environments to ensure seamless operation across various platforms.
Based on Testing Objective

3. Regression Testing

 Conducted after changes, updates, or bug fixes, it ensures that the new code or modifications do not

negatively impact the existing functionality of the software.

 It often involves re-running previous test cases to confirm stability.


Based on Testing Levels

Unit Testing Integration Testing

 It is the process of testing individual  It focuses on verifying the interactions and

components, modules, or units of software data flow between integrated components or

to ensure that they perform as expected. modules of a software system.

 It focuses on verifying the correctness of  It aims to uncover defects that may arise when

specific sections of code, typically the individual units or modules are combined and

smallest testable parts of an application. ensures that they work together as expected.

 Developers often conduct unit testing  Example: Does the contact list talk correctly to

during the coding phase to identify and fix chat window.

errors early in the development cycle.

 Example: Testing double click logic.


Based on Testing Levels

Software Testing Acceptance Testing

 It is the process of testing an entire  It is the final stage of software testing,

software system to verify that it meets the conducted to determine whether the

specified requirements and performs as developed software meets the business

expected in a complete and integrated requirements and is ready for delivery to the

environment. client or end users.

 It is conducted after integration testing  It often involves UAT(User Acceptance Testing)

and focuses on evaluating the software as by end-users to ensure that the software meets

a whole, including both functional and business needs.

non-functional aspects.
Based on Testing Techniques

Manual Testing Automation Testing

 This is a testing process where testers  This is a testing process that uses software tools

manually execute test cases without using or scripts to execute test cases automatically.

automated tools or scripts.  It is primarily used for repetitive and extensive

 It allows for ad-hoc testing and detailed testing tasks to improve efficiency and

analysis of software behavior. accuracy.

 It is beneficial for Regression testing,

Ad-hoc : used when time is short, Performance testing and test case execution.

requirements are unclear, or a quick quality

check is needed before release.


Based on Testing Methods

Black-Box Testing White-Box Testing

 It is a software testing method where the  This is also known as Clear-Box Testing, Glass-

internal structure, design, or Box Testing, or Transparent-Box Testing.

implementation of the application being  It is a software testing method that examines

tested is not known to the tester. the internal logic, structure, and code of an

 The focus is solely on validating the application.

functionality of the software based on its  Testers need to have knowledge of the

specifications, without considering how it software's internal workings to design and

operates internally. execute test cases that covers different code

paths and conditions.


Based on Testing Strategies

Top-Down Testing Bottom-up Testing

 It is an approach to integration testing  It is an integration testing approach where

where testing begins from the highest level testing begins with the lower-level modules and

modules and progressively moves progressively moves upward to the higher-level

downward to lower-level modules. modules.

 This method is particularly useful for testing  This method ensures that each module is

the system's control flow and interactions individually tested and verified before

between hierarchical components. integrating with the rest of the system.


Verification

 Verification is the process of discovering the possible failures in the software (not the actual final

product) before the commencement of the testing phase.

 Verification is done during the development phase of the software development life cycle.

 It involves reviews, inspections, meetings, code reviews, and specifications.

 Verification is done to determine whether software meet the specified requirements.

 It answers the question." Are we building the product right?".


Verification Techniques or Static Testing Techniques

 Reviews: A review is a systematic examination of document by one or more people with the main aim

of finding and removing errors early in the software development life cycle. Mainly it is of 2 types

a) Formal Review :

 Review that is well structured and regulated.

 In contains Planning, Preparation, Review meeting.

b) Informal Review :

 These are applied many times during the early stages of the life cycle of the document.

 A Two-person team can perform the Informal meeting.

 These reviews are not documented.


Verification Techniques or Static Testing Techniques

 Inspection

 It Is the most formal type of review.

 It is a strategy adopted during the testing phase.

 It is led by trained moderators.

 During the inspection the documents are prepared and checked thoroughly by the reviewers

before the meeting.


Verification Techniques or Static Testing Techniques

 Walkthrough

 It is an informal group or individual review method.

 Here the author described the product work to the supervisors in an informal meeting to receive

feedback.

 It is led by trained moderators.

 During the inspection the documents are prepared and checked thoroughly by the reviewers

before the meeting.


Validation

 Validation is the process of evaluating the final product to check whether the software meets the

business needs.

 Validation occurs after the verification process and the actual testing of the product.

 It answers the question, "Are we building the right product?“

 In simple words, Validation is to validate the actual and expected output of the software.
A Testing Life Cycle

The Testing Life Cycle is a critical framework in software development that systematically identifies

diagnoses, and resolves issues within a software product to ensure quality and reliability.
A Testing Life Cycle
Spec (The Blueprint): Write down exactly what the software should do. If the instructions are wrong
here, everything else will be wrong later.
Design (The Plan): Turn those instructions into a technical map. Mistakes here usually look like "bad
logic" or a messy structure.
Coding (The Build): Developers write the code. This is where most "human errors" (typos or logic
mistakes) happen.
Testing (The Check): Run the software to see if it breaks. If it does something it shouldn't, that's an
incident.
Classify Fault (The Label): Figure out what went wrong. Was it a typo (coding) or a misunderstood rule
(spec)? This helps you decide what to fix first.
Isolate Fault (The Hunt): Find the exact line of code or the specific design flaw causing the mess. You
have to "quarantine" the problem.
Fault Resolution (The Fix): Repair the error and double-check that your fix didn't accidentally break
something else.
Test Cases
A documented set of inputs, execution conditions, and expected results used to verify that a particular
feature of a software application is functioning correctly.

Components of Test Cases


 Test Case ID
 Purpose
 Test Created by
 Test environment
 Prerequisites
 Test Procedure
1. Test Case ID: A unique identifier assigned to each test case. It helps in tracking the test
case in test management tools or documentation and referencing specific tests easily.
2. Purpose: A brief description or statement about what the test case is intended to verify or
validate.
3. Test Created By: The name of the person who created the test case. This is useful for
accountability and for seeking clarification if there are any questions regarding the test
case specifics.
4. Test Environment: The specific setup required to run the test, including hardware, operating
system, network configurations, and any installed applications.
5. Prerequisites: Any conditions that must be met or steps that need to be performed before
the test can be executed. This might include configurations, data setups, or previous test
completions.
6. Test Procedure: A detailed step-by-step guide on how to execute the test.
7. Test Data: Specific data values or inputs that need to be used during testing.

8. Expected Result: The outcome that should occur if the software functions correctly under

the test conditions.

9. Actual Result: What actually happened when the test was executed? The documented

outcome that is compared with the expected result to determine software performance and

correctness.

10. Verdict: Pass/Fail: The outcome of the test case based on the comparison between

expected and actual results.

11. Comments: Additional notes or observations made during the testing, explanations of the

results, or issues encountered that might not be covered by the verdict.


Example of a test case for a Login Functionality
Test Procedure: 1. Navigate to the login page. 2.
Test Case ID: TC-LOGIN-001
Enter valid email (testuser@[Link]). 3. Enter
valid password
Purpose: Verify login functionality with(password123). 4. Click the "Login"
valid credentials.
button. Test Data - Username:
Test Created By: John testuser@[Link] | Password:
Doe Status of the test Notes password123
on the procedure
Expected Result: The user should be successfully
Environment: Windowsredirected
10, Chrome to Browser
the dashboard
(v.96.0), without any [Link] on staging
Web application
Actual Result: The user was successfully redirected to
server. the dashboard without any errors. Verdict (Pass/Fail):
Pass Comments: Test executed successfully. No issues
observed.
Pre-Requisites: User account must exist with valid credentials. Access to staging environment.
Test Procedure:
1. Navigate to the login page.
2. Enter valid email (testuser@[Link]).
3. Enter valid password (password123).
4. Click the "Login" button.

Test Data - Username: testuser@[Link] | Password: password123


Expected Result: The user should be successfully redirected to the dashboard without any errors.
Actual Result: The user was successfully redirected to the dashboard without any errors.
Verdict (Pass/Fail): Pass Comments: Test executed successfully. No issues observed.

You might also like