0% found this document useful (0 votes)
16 views19 pages

Software Testing - 0011

The document discusses various manual software testing techniques including exploratory testing, functional testing, regression testing, usability testing, compatibility testing, and boundary value analysis. It then covers correctness proofs which provide mathematical proofs that software meets specifications under all conditions. The key components of correctness proofs are the specification, program, and invariants. It concludes by explaining stepwise abstraction as a process to gradually refine a system design from high-level to more detailed representations through iterative abstraction and refinement.

Uploaded by

221010011
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)
16 views19 pages

Software Testing - 0011

The document discusses various manual software testing techniques including exploratory testing, functional testing, regression testing, usability testing, compatibility testing, and boundary value analysis. It then covers correctness proofs which provide mathematical proofs that software meets specifications under all conditions. The key components of correctness proofs are the specification, program, and invariants. It concludes by explaining stepwise abstraction as a process to gradually refine a system design from high-level to more detailed representations through iterative abstraction and refinement.

Uploaded by

221010011
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
You are on page 1/ 19

MANUAL TEST

TECHNIQUES

Presented by-
Pakhi Gupta (BI41, 221010011)
1

MANUAL TEST TECHNIQUES

It refers to methods used by testers to manually validate the


functionality and performance of software applications.
These techniques do not rely on automation tools but instead
on the tester's skills, experience, and intuition.

Software Engineering | 2024


1

COMMON MANUAL TEST TECHNIQUES


1 Exploratory Testing 4 Compatibility Testing

2 Functional Testing 5 Usability Testing

3 Regression Testing 6 Boundary Value Analysis

Software Engineering | 2024


1
TEST TECHNIQUES...
Exploratory testing - Involves testers exploring the application without
predefined test cases. Testers learn about the application, design and
execute tests, and document their findings.

Functional testing - Verifies that each function of the software application


operates according to the requirements specification. Testers create test
cases based on functional specifications and manually execute them.

Software Engineering | 2024


1
TEST TECHNIQUES...
Regression testing - Involves re-testing the application after changes such
as bug fixes or new feature implementations to ensure that existing
functionalities are not adversely affected.

Usability Testing - Assesses the user-friendliness of the software. Testers


evaluate the interface, navigation, and overall user experience to ensure it
meets the expectations of end-users and is easy to use.

Software Engineering | 2024


1
TEST TECHNIQUES...
Compatibility Testing - Ensures that the application is compatible and
functions correctly across different devices, operating systems, browsers,
and network environments.

Boundary Value Analysis (BVA) - Identify defects for edge cases of input
values. For instance, if an input field accepts values from 1 to 100, testers will
check inputs at the boundaries like 0, 1, 100, and 101.

Software Engineering | 2024


CORRECTNESS
PROOFS

Presented by-
Pakhi Gupta (BI41, 221010011)
1

CORRECTNESS PROOFS
These are the formal methods used to verify that a software
program behaves as intended according to its specification.
They provide mathematical proofs about the program’s
correctness such that it meets its specifications under all
possible conditions.

Software Engineering | 2024


1
COMPONENTS OF CP
Specification - Conditions that must be true before and after the execution
of the program. These define the initial state and final state of the program.

Program - The actual code or algorithm that is to be proven correct.

Invariant - A condition that holds true during the execution of the


program.

Software Engineering | 2024


1

STEPS OF CORRECTNESS PROOFS


1 Formal Specification 4 Proof of Termination

2 Proof of Initialization 5 Proof of Correctness

3 Proof of Maintenance

Software Engineering | 2024


1
STEPS OF CP...
Formal Specification - Include preconditions and postconditions
of the program.

Proof of Initialization - Initial state where the invariants hold if


there are any loops or iterations.

Proof of Maintenance - The initial state will continue to hold after


the iteration.

Software Engineering | 2024


1
STEPS OF CP...

Proof of Termination - The program will terminate ensuring


that there is no infinite loop or recursion.

Proof of Correctness - Upon termination, the post and pre-


conditions are satisfied and program meets the specifications.

Software Engineering | 2024


1
IMPORTANCE OF CP
Reliability: They provide high assurance that the software behaves correctly
under all specified conditions.

Early Detection of Errors: Formal proofs can identify potential errors during
the design phase, reducing the cost and effort required for debugging.

Critical Systems: For safety-critical systems (e.g., aerospace, medical


devices), correctness proofs are crucial to ensure that the software does not
fail in dangerous ways.

Software Engineering | 2024


STEPWISE
ABSTRACTION

Presented by-
Pakhi Gupta (BI41, 221010011)
1
STEPWISE ABSTRACTION
It refers to the process of gradually refining and elaborating a
system's design or specification from a high-level abstract
representation to a more detailed one.
It involves breaking down complex systems into manageable
parts while adding details and precision at each step.
This approach allows for better understanding,
communication, and implementation of software systems.

Software Engineering | 2024


1

OVERVIEW OF STEPWISE ABSTRACTION


1 Initial Abstraction 4 Iterative Process

2 Stepwise Refinement 5 Verification and Validation

3 Adding Details 6 Documentation and Communication

Software Engineering | 2024


1
OVERVIEW...
Initial Abstraction - Focuses on essential features and functionalities of the system
without implementation details. It involves using conceptual models, and high-level
descriptions.

Stepwise Refinement - Adds more detail and specificity to the design or specification.
The system is decomposed into smaller modules or components, each with well-
defined responsibilities.

Adding Detail - Specifying the behavior of individual components, defining data


structures and algorithms, and identifying interfaces and interactions between modules.

Software Engineering | 2024


1
OVERVIEW...
Iterative Process - System design is refined through multiple cycles of abstraction
and refinement. Each iteration builds upon the previous one, incorporating feedback
and making adjustments until it meets the desired level of correctness.

Verification and Validation - Includes static and dynamic testing i.e. “Are we building
the software right?” and “Are we building the right software?”.

Documentation and Communication: Documentation plays a crucial role in capturing


and communicating the design to stakeholders, including developers, testers, and
users. Ensures common understanding of the system and its requirements.

Software Engineering | 2024


THANK YOU
Software Engineering | 2024

You might also like