Title: SE 754NT
1SE 754-NT Object-Oriented Testing and
Reliability Robert Oshana Lecture
23 For more information, please
contact NTU Tape Orders NTU Media
Services (970) 495-6455
oshana_at_airmail.net
tapeorders_at_ntu.edu
2Where we are
- Introduction
- The testing perspective
- Planning for testing
- Testing analysis and design models
- Class testing basics
- Testing interactions
- Testing class hierarchies
- Testing distributed objects
- Testing systems
- Components, frameworks, product lines
3Testing Distributed Objects (tests for the
generic distribution model)
4Language dependence issues
- Specific tests should be designed where two
components written in different languages
interface even through the infrastructure - Inspectors should verify that correct mappings
are used through guided inspection - Return objects handled correctly
5Platform independence issues
- All of the models of distribution are independent
of the platform on which they run - Deployment environment still makes a difference
- Available memory
- Processor speed
- Deployment tests with product release
6Infrastructure tests
- Infrastructure delivered from a vendor is
trusted code - No detailed testing
- Default implementations of stubs and skeletons
may be edited - No longer trusted and must be tested
- Test all modified code
7Compatibility tests
- Performed with each new version of infrastructure
- Compatibility tests should be run to determine if
application has to be modified - Also done for new versions of frameworks and tools
8Testing the recovery of failures
- Big difference in distributed systems is partial
failure due to one of the machines failing - Build a test infrastructure using a main machine
for locator and server - Test driver for application to contact
non-existent server - Must be able to handle successfully
9Dynamic modification of infrastructure
- CORBA infrastructure can be modified during
execution - These modifications can change the configuration
of the system - Timing changes
- Execution path
- Must construct tests for these configurations
10Different sequences of events
- Asynchronous messages between processes cause
events to occur in a variety of sequences - Try to test as many possible combinations as
possible - Statistical sampling techniques can be used
11Requested object unavailable
- Many systems provide ability for users to enter
names of providers and resources - Test objective is to determine whether the
exception is caught in an appropriate location in
the requestor - Will operation abort gracefully
12Test case summary
- Use the test suite giving the following coverages
- Every method of each standard I/F
- Every SYN-path
- Every logical control path
- Apply test suite repeatedly using following
variations - Load of applications using same systems
- Load of user input into overall system
- Connections between machines
- Configurations of the infrastructure
13The internet
- Very large and dynamic distributed system
- Web pages include data and behavior
- Testing a web page
- testing that the intended display is presented to
the user - Input accepted and forwarded correctly
- All actions perform as intended
14The internet
- Display failures
- Incorrect fonts displayed
- Mismatch of coordinates (figure not visible)
- Wrong language used
- Mismatch between platform configuration and
browser attributes
15The internet
- Script testing
- Incorrect/insufficient permissions to execute
code - Inability to create a file when needed
- Computing the wrong answer
- Inability to locate resources
- Very difficult to tests for all combinations
(focus on uses that make sense)
16Web servers
- Servers are generic vendor applications (trusted)
- Designed to be modular
- Testing these systems
- Do scripts do what is intended?
- Is the current data correct and in the form
expected by the application?
17Web server architecture
18Life cycle testing of internet applications
- Testing across a set of user transactions
- Selected to utilize a complete set of backend
applications - Life cycle perspective
- Users system
- Web site
- Supplier applications
19Life cycle testing of internet applications
- 1. Presentation to the user
- 2. Acceptance of input (customer order)
- 3. Modification of input (order)
- Significant interaction testing in two dimensions
- Stress test the web site
20Summary
- One of the principle differences between
distributed and nondistributed systems is the
importance of timing - Temporal logic can be used as a means of being
expressive - Instrumentation to allow the investigation of the
effects of various sequences
21Testing systems
22Where we are
- Introduction
- The testing perspective
- Planning for testing
- Testing analysis and design models
- Class testing basics
- Testing interactions
- Testing class hierarchies
- Testing distributed objects
- Testing systems
- Components, frameworks, product lines
23Introduction
- System testing can be classified as the testing
of a completed application to determine that it
provides all of the behaviors required for the
application - Change from searching for defects that cause
program failures to search for variances between
operation and system requirements
24Defining the system test plan
- A more formal and comprehensive document
- Features tested and not tested
- Some validation at each increment
- Test suspension criteria and resumption
requirements - System testers are not developers or debuggers
25Strategies for selecting test cases use profile
- Traditional approach is based on operational
profiles - A use profile is an accurate estimate of the
operational profile - Priority rather than the frequency
- Consider criticality as well as frequency
26SE 754-NT Object-Oriented Testing and
Reliability Robert Oshana End of
lecture For more information, please
contact NTU Tape Orders NTU Media
Services (970) 495-6455
oshana_at_airmail.net
tapeorders_at_ntu.edu