[go: up one dir, main page]

0% found this document useful (0 votes)
45 views29 pages

SE Testing

The document discusses software testing and its fundamentals. Software testing is the process of verifying that software meets requirements and identifying differences between expected and actual results. It includes various types of testing like unit testing, integration testing, system testing and acceptance testing.

Uploaded by

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

SE Testing

The document discusses software testing and its fundamentals. Software testing is the process of verifying that software meets requirements and identifying differences between expected and actual results. It includes various types of testing like unit testing, integration testing, system testing and acceptance testing.

Uploaded by

selemondoc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Software Testing

SOFTWARE ENGINEERING 1
Contents
Testing Fundamentals
Black-Box and White-Box testing
Testing and Debugging

SOFTWARE ENGINEERING 2
Software Testing
Software Testing is “the process of exercising or evaluating a
system by manual or automatic means to verify that it satisfies
specified requirements or to identify differences between
expected and actual results “
Testing: Examination of the behavior of a program by executing
the program on sample data sets.
It is the process of establishing confidence that a program or
system does what it is supposed to.

SOFTWARE ENGINEERING 3
Software Testing
The last quality checking point for software on its production line
Testing is a verification technique used at the implementation stage.
You don’t test a program to show how it works, but you should start
with the assumption that the program contains errors/uncertainities.
Testing can show the presence of bugs but never their absence.” –
Dijkstra

SOFTWARE ENGINEERING 4
The testing Purpose
The purpose of the testing is confirming that the system satisfies
requirements
Testing must be planned
Test Case
 A specific scenario of transactions, queries or navigation
paths that represent a typical, critical or abnormal use of the
system
 Test cases and results should be thoroughly documented so
they can be repeated for each revision of an application

SOFTWARE ENGINEERING 5
The testing process
Testing is done throughout the development process.
Testing is divided into phases beginning in the design phase and
ending at the customer’s site.
Testing process is illustrated in the next slide.
The two fundamental decisions that must be made before planning
for testing can occur are:
What is the required software quality standard, and
What is the software testing strategy.

SOFTWARE ENGINEERING 6
The testing process

SOFTWARE ENGINEERING 7
Some definitions
Let P be a program and let D denote its input domain,
A test case t is an element of input domain t  D
 a test case gives a valuation for all the input variables of the
program
A test set T is a finite set of test cases, i.e., a subset of D, T  D
The basic difficulty in testing is finding a test set that will uncover
the faults in the program
Exhaustive testing corresponds to setting T = D

SOFTWARE ENGINEERING 8
Goal of testing
To find faults/defects in the software
To check whether the client needs are satisfied or not
It is not possible to prove that there are no faults in the software
using testing
Testing should help locate errors, not just detect their presence
To provide quality product

SOFTWARE ENGINEERING 9
Source of bugs
Miscommunication
Time pressure
Changing requirements
Software complexity
Programing mistakes

SOFTWARE ENGINEERING 10
Functional (Black box)
Black-box testing : Deriving tests from external descriptions of the
software, including specifications, requirements, and design
Functional testing: Generating test cases based on the functionality
of the software
In black box testing the internal structure of the program is hidden
from the testing process
Done by testers

SOFTWARE ENGINEERING 11
White-box/Structural Testing
White-box testing : Deriving tests from the source code internals of
the software, specifically including branches, individual conditions,
and statements
Structural testing: Generating test cases based on the structure of the
program
In white box testing internal structure of the program is taken into
account
Done by developers

SOFTWARE ENGINEERING 12
Other Testing Types
Unit Testing :
 individual methods, classes, or components before they are
integrated with other software
done by programmer and/or development team.

Integration Testing :
evaluates the behavior of a group of methods or classes (interface
compatibility, unexpected parameter values or state interaction, run-
time exceptions)
can be by development or testing unit.
SOFTWARE ENGINEERING 13
Testing Types
System Testing :usually done by an independent testing team
(internal or external (consultants) team.
Acceptance testing :
overall test involving all parties and system requirements
(performance of functions, stress resistance, security, recovery)

SOFTWARE ENGINEERING 14
Testing Types
Usability testing :
system works but fails some of the usability requirements (easy to
learn, use & navigate, task efficiency);
user interface focus.
Can be part of Acceptance testing.

SOFTWARE ENGINEERING 15
Regression testing
Need not test everything.
Typically re-test only those artifacts directly changed and those
providing inputs and outputs to these changed artifacts (modules).
Very often new errors introduced when changes made.
There’s always risk in not testing everything… but these decisions
must be made.
Results of testing are documented in a test report.

SOFTWARE ENGINEERING 16
Testing at Different Levels
Acceptance testing: Is the
main Class P software acceptable to the
user?
System testing: Test the
overall functionality of the
system
Class A Class B
Integration
testing: Test
method mA1() method mB1() how modules interact with
each other
method mA2() method mB2()
Module testing: Test each
class, file, module or
component
Unit testing: Test each
unit (method) individually

SOFTWARE ENGINEERING 17 17
Software testers
Programmers
Unit testing
Testing buddies can test other’s programmer’s code
Quality assurance personnel
Integration and Usability
Users
Acceptance testing
Volunteers for testing beta version of software

SOFTWARE ENGINEERING 18
Testing Vs Debugging
Testing
A process of finding bugs or errors in a software product that is
done manually by tester or can be automated
Finding inputs that cause the software to fail
Debugging
A process of fixing the bugs found in testing phase. Programmer
or developer is responsible for debugging
The process of finding a fault given a failure.

SOFTWARE ENGINEERING 19
Fundamentals of Software Engineering

Chapter Eight: Maintenance


EWNETU

SOFTWARE ENGINEERING 20
Software Maintenance
Software maintenance is the general process of changing a system
after it has been delivered.
The act of keeping, or the expenditure required to keep, an asset in
condition to perform efficiently the service for which it is used.
The modification of a product, after delivery,
to correct faults,
to improve performance or other attributes,
or to adapt the product to a changed environment.
A common perception of maintenance is that it merely involves fixing defects.

SOFTWARE ENGINEERING 21
Purpose of Maintenance
Attempt to maximize performance of production equipment
efficiently and regularly
Prevent breakdown or failures
Minimize production loss from failures
Increase reliability of the operating systems

SOFTWARE ENGINEERING 22
Purpose of Maintenance
To achieve product quality and customer satisfaction through
adjusted and serviced equipment
Maximize useful life of equipment
Keep equipment safe and prevent safety hazards
Minimize frequency and severity of interruptions
Maximize production capacity – through high utilization of facility

SOFTWARE ENGINEERING 23
Problems in Maintenance
Lack of management attention to maintenance
Little participation by accounting in analyzing and reporting costs
Difficulties in applying quantitative analysis
Difficulties in obtaining time and cost estimates for maintenance
works
Difficulties in measuring performance

SOFTWARE ENGINEERING 24
Problems Exist Due To:
Failure to develop written objectives and policy
Inadequate budgetary control
Inadequate control procedures for work order, service requests etc.
Infrequent use of standards
To control maintenance work
Absence of cost reports to aid maintenance planning and control
system

SOFTWARE ENGINEERING 25
Types of Maintenance
1.Corrective maintenance: Reactive modification of a software
product performed after delivery to correct discovered problems.
Changes made to system to repair flaws in its design, coding or
implementation.
example: light bulb replacement
2.Adaptive maintenance: Modification of a software product
performed after delivery to keep a software product usable in a changed
or changing environment.
example: roadways ,websites etc.

SOFTWARE ENGINEERING 26
Types of Maintenance
3.Preventive maintenance: Modification of a software product after
delivery to detect and correct latent faults in the software product before
they become effective faults.
Changes made to a system to avoid possible future problems
example: changing oil & filters
Perfective maintenance: Modification of a software product after
delivery to improve performance or maintainability.
Changes made to a system to add new features/improve performance
example: software updates and service patch.

SOFTWARE ENGINEERING 27
Need for software Maintenance
Maintenance to repair software faults
Changing a system to correct deficiencies in the way meets its
requirements.
Maintenance to adapt software to a different operating environment
Changing a system so that it operates in a different environment
(computer, OS, etc.) from its initial implementation.
Maintenance to add to or modify the system’s functionality
Modifying the system to satisfy new requirements.

SOFTWARE ENGINEERING 28
Thank you !!!

SOFTWARE ENGINEERING 29

You might also like