Xem mẫu
- Week 9:
Software Testing
Nguyễn Thị Minh Tuyền
Adapted from slides of Ian Sommerville
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Software Testing
1. What is it?
2. Who does it?
3. What are the steps?
4. What is the work product?
5. How do I ensure that I’ve done it right?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Topics covered
1. Development testing
2. Test-driven development
3. Release testing
4. User testing
3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Program testing
£ Testing is intended
p to show that a program does what it is intended to do and
p to discover program defects before it is put into use.
£ When you test software, you execute a program using
artificial data.
£ You check the results of the test run for errors,
anomalies or information about the program's non-
functional attributes.
£ Can reveal the presence of errors NOT their absence.
£ Testing is part of a more general verification and
validation process, which also includes static validation
techniques.
4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Program testing goals
Validation
testing
To demonstrate to the developer and the customer that the
software meets its requirements.
Defect
testing
To discover situations in which the behavior of the software
is incorrect, undesirable or does not conform to its
specification.
5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- An input-output model of program testing
Input test data Inputs causing
Ie
anomalous
behaviour
System
Outputs which reveal
Output test results Oe the presence of
defects
6
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Verification vs validation
£ Verification:
"Are we building the product right”.
p The software should conform to its specification.
£ Validation:
"Are we building the right product”.
p The software should do what the user really requires.
7
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- V & V confidence
£ Aim of V & V is to establish confidence that the
system is 'fit for purpose'.
£ Depends on
p Software purpose: The level of confidence
depends on how critical the software is to an
organisation.
p User expectations: Users may have low
expectations of certain kinds of software.
p Marketing environment: Getting a product to
market early may be more important than finding
defects in the program.
8
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Inspections and testing
£ Software inspections
p Concerned with analysis of the static system
representation to discover problems(static
verification)
p May be supplement by tool-based document and
code analysis.
£ Software testing
p Concerned with exercising and observing product
behaviour (dynamic verification)
p The system is executed with test data and its
operational behaviour is observed.
9
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Inspections and testing
Inspections
Requirements Software UML design Database
Program
specification architecture models schemas
System
prototype Testing
10
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Software inspections
£ Involve people examining the source
representation with the aim of discovering
anomalies and defects.
£ Do not require execution of a system so may be
used before implementation.
£ May be applied to any representation of the
system (requirements, design, configuration data,
test data, etc.).
£ Have been shown to be an effective technique for
discovering program errors.
11
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Advantages of inspections
£ During testing, errors can mask (hide) other
errors. Because inspection is a static process,
you don’t have to be concerned with
interactions between errors.
£ Incomplete versions of a system can be
inspected without additional costs.
£ As well as searching for program defects, an
inspection can also consider broader quality
attributes of a program
p such as compliance with standards, portability and
maintainability.
12
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Inspections and testing
£ Both are complementary and not opposing
verification techniques.
£ Both should be used during the V & V process.
£ Inspections can check conformance with a
specification but not conformance with the
customer's real requirements.
£ Inspections cannot check non-functional
characteristics such as performance, usability, etc.
13
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- A model of the software testing process
Test Test Test Test
cases data results reports
Design test Prepare test Run program Compare results
cases data with test data to test cases
An abstract model of the ‘traditional’ testing process, as used in plan-driven
development
14
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Stages of testing
£ Development testing
p the system is tested during development to discover
bugs and defects.
£ Release testing
p a separate testing team tests a complete version of the
system before it is released to users.
£ User testing
p users or potential users of a system test the system in
their own environment.
15
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Topics covered
1. Development testing
2. Test-driven development
3. Release testing
4. User testing
16
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Development testing
£ Includes all testing activities that are carried out by the
team developing the system.
£ Unit testing
p Individual program units or object classes are tested.
p Should focus on testing the functionality of objects or methods.
£ Component testing
p Several individual units are integrated to create composite
components.
p Should focus on testing component interfaces.
£ System testing
p Some or all of the components in a system are integrated and
the system is tested as a whole.
p Should focus on testing component interactions.
17
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Unit testing
£ Is the process of testing individual components in
isolation.
£ Is a defect testing process.
£ Units may be:
p Individual functions or methods within an object
p Object classes with several attributes and methods
p Composite components with defined interfaces used to
access their functionality.
18
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Object class testing
£ Complete test coverage of a class involves
p Testing all operations associated with an object
p Setting and interrogating all object attributes
p Exercising the object in all possible states.
£ Inheritance makes it more difficult to design object
class tests as the information to be tested is not
localised.
19
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- The weather station object interface
WeatherStation
identifier
reportWeather ( )
reportStatus ( )
powerSave (instruments)
remoteControl (commands)
reconfigure (commands)
restart (instruments)
shutdown (instruments)
20
CuuDuongThanCong.com https://fb.com/tailieudientucntt
nguon tai.lieu . vn