Test Manual
PAID Project
Network Team
Team Members
Orly Canlas
Adam Phelps
Will Ross
Barrett Trask
Anthony Watkins
15-413 Software Engineering Fall 98
Carnegie Mellon University
Pittsburgh, PA 15213
Table of Contents
Objectives
Document References
Test Summary
Testing Strategy
Test A
Test B
Test C
Test D
Testing Materials
Objectives
To describe the testing strategy, unit tests, integration tests, and system tests performed by the Network subsystem.
Document References
The following documents were produced during project development:
- Requirements Analysis Document (RAD) - clarifies and describes the requirements for the PAID system.
- System Design Document (SDD) - describes and explains the design decisions made for the PAID system.
- Object Design Document (ODD) - describes the implementation of the PAID system.
- Test Procedure:
- Testing with Network
- Testing with Network & Authentication
- Testing with Network & Database
- Testing with Network & Events
- Testing with Network & User Interface
- Testing with Network, Authentication, Database, Events, & User Interface
Test Summary
The following functions of the system were tested:
- Download Data - Clients should be able to download updates from a server as described by the problem statement.
- Percent of Download Complete - The percent of a download should be displayed as described by the problem statement.
- Kill Request - If a download is taking too long, the user cease a download as described by the problem statement.
- Network Down - If the physically network connect ever fails, the Network subsystem should warn the other subsystems and resume later as described by the problem statement.
Testing Strategy
- Authentication
- Strategy:
- Will Ross & Luis Alonso (Authentication) tested the integration of the Network and Authentication subsystems.
- Database
- Strategy:
- Will Ross & Tim Shirley (Database) tested the integration of the Network and Database subsystems.
- Events
- Strategy:
- Barrett & Wing Leung (Event Service) tested the integration of the Network and Event subsystems.
- User Interface
- Strategy:
- Will Ross & Stephane Zermatten (User Interface) tested the integration of the Network and User Interface subsystems.
Test A - Percent download
Tested the system's ability display the percentage of a download. Created a client & a server and has the client request a download. The client will continue to download data until completed.
Test Specification
- Client can request data from the server
- Server will transmit data to the client
- Client will display the current percentage of a download
- Tests the following methods:
- CClient.endXmit
- CClient.getNumObjects
- CClient.receiveObject
- CClient.request
- CClient.startXmit
- CClient.waitForNum
- CClient.waitForPct
- RemoteObjectManager.bind
- RemoteObjectManager.export
- RemoteObjectManager.lookup
- RemoteObjectManager.startup
- RemoteObjectManager.shutdown
Test Description
- Location of test: Test A source is in the CVS Repository in /edu/cmu/paid/network/test as TestAClient.java and TestServer.java
- Means of Control: Data is Database Objects with empty (default) fields
- Data
- Input Data: None
- Input Commands: java TestAClient
- Output Data: None
- System Messages: Request sent and percentage of data received
- Procedures:
- Run "java TestServer" from the /edu/cmu/paid/network/test/ directory
- Run "java TestAClient" from the /edu/cmu/paid/network/test/ directory
- TestAClient will automatically make a request, download the data, and display the percentage.
Test Analysis Report
- Function: CClient.waitForPct
- Performance: Took six seconds to transmit data 100% of the time (20/20)
- Data measures: Meets requirements of problem statement
Test B - Kill downloads
Tested the system's ability to kill a requested download. Created a client & a server and has the client request a download. The client will continue to download data until 50% complete when the download is killed.
Test Specification
- Client can request data from the server
- Server will transmit data to the client
- Client will display the current percentage of a download
- Client will kill a download at
- Tests the following methods:
- CClient.endXmit
- CClient.getNumObjects
- CClient.killDownload
- CClient.receiveObject
- CClient.request
- CClient.startXmit
- CClient.waitForNum
- CClient.waitForPct
- RemoteObjectManager.bind
- RemoteObjectManager.export
- RemoteObjectManager.lookup
- RemoteObjectManager.startup
- RemoteObjectManager.shutdown
Test Description
- Location of test: Test B is in the CVS Repository in /edu/cmu/paid/network/test/ as TestBClient.java and TestServer.java
- Means of Control: Data is Database Objects with empty (default) fields
- Data
- Input Data: None
- Input Commands: java TestBClient
- Output Data: None
- System Messages: Request sent, percentage of data received, and kill of download
- Procedures:
- Run "java TestServer" from the /edu/cmu/paid/network/test/ directory
- Run "java TestBClient" from the /edu/cmu/paid/network/test/ directory
- TestBClient will automatically make a request, download the data, display the percentage, and kill the download.
Test Analysis Report
- Function: CClient.killDownload
- Performance: Stopped the requested download 100% of the time (20/20)
- Data measures: Meets requirements of problem statement
Test C - Network failure
Tested the system's ability to recover from a network failure. Created a client & a server and has the client request a download. The client will continue to download data until the network connection is severed. The download will resume when the connection is restored.
Test Specification
- Client can request data from the server
- Server will transmit data to the client
- Client will display the current percentage of a download
- Network connection between the client and server will be severed
- Tests the following methods:
- CClient.endXmit
- CClient.getNumObjects
- CClient.killDownload
- CClient.receiveObject
- CClient.request
- CClient.startXmit
- CClient.waitForNum
- CClient.waitForPct
- RemoteObjectManager.bind
- RemoteObjectManager.export
- RemoteObjectManager.lookup
- RemoteObjectManager.startup
- RemoteObjectManager.shutdown
Test Description
- Location of test: Test A source is in the CVS Repository in /edu/cmu/paid/network/test as TestAClient.java and TestServer.java
- Means of Control: Data is Database Objects with empty (default) fields
- Data
- Input Data: None
- Input Commands: java TestAClient
- Output Data: None
- System Messages: Request sent, percentage of data received, and kill of download
- Procedures:
- Run "java TestServer" from the /edu/cmu/paid/network/test/ directory
- Run "java TestAClient" from the /edu/cmu/paid/network/test/ directory
- TestAClient will automatically make a request, download the data, and display the percentage.
- The tester will physically disconnect the client and server machines
- The tester will physically reconnect the client and server machines
- TestAClient will automatically resume the download of data and display the percentage.
Test Analysis Report
- Function: Network down
- Performance: Client will wait until reconnection & resume download 100% of the time (5/5)
- Data measures: Meets requirements of problem statement
Test D - Multicasting
Tested the system's ability to send messages to multiple clients from 1 server. Created 2 clients & a server that sends messages to each client.
Test Specification
- Server can send multicast messages to clients
- Tests the following methods:
- CNetwork_Api.addObjectToAgent
- CNetwork_Api.clientStartup
- CNetwork_Api.serverStartup
- CNetwork_Api.connectAgents
- CNetwork_Api.disconnectAgents
- CNetwork_Api.getNewMulticastAgent
- CNetwork_Api.getNewRemoteMulticastAgent
- CNetwork_Api.multicastMessage
- MulticastTestObject.receiveMessage
Test Description
- Location of test: Test D source is in the CVS Repository in /edu/cmu/paid/network/test as VoyagerStartup.java and MulticastTest.java which uses MulticastTestObject.java
- Means of Control: Data is Database Objects with empty (default) fields
- Data
- Input Data: None
- Input Commands: java edu.cmu.paid.network.test.MulticastTest
- Output Data: None
- System Messages: Displays when connected, when objects are added, and when messages are received
- Procedures:
- Telnet to java.se.cs.cmu.edu
- Run "java edu.cmu.paid.network.test.VoyagerStartup //java.se.cs.cmu.edu:8001" from the /edu directory
- Telnet to java.se.cs.cmu.edu
- Run "java edu.cmu.paid.network.test.VoyagerStartup //java.se.cs.cmu.edu:9001" from the /edu directory
- Run "java edu.cmu.paid.network.test.MulticastTest" from the /edu directory
- MulticastTest will automatically connect to clients, create multicast agents, and send messages to clients.
Test Analysis Report
- Function: Multicasting
- Performance: Server sends messages to client 100% of the time (5/5)
- Data measures: Meets requirements of problem statement
Test Materials
- A Linux machine connected to a network
- Voyager 2.0
- Access to Java Development Kit