Dan Granahan Saagar Patel Shen Li Rob Williams

advertisement
Dan Granahan
Saagar Patel
Shen Li
Rob Williams
Test Cases
Create a framework with which users can stream media (live and static)
to a handheld



Two way communication flushed out
Stream switching functioning
Pause/Resume stream functioning
 Device Boot
○ Device launches application, attempts to contact server
○ Server waits for contact from device, spawns service thread
 Device Shutdown
○ Device sends termination message to server, kills processes
○ Server kills service thread, waits for new clients
 User Toggles Input Source
○ Device sends request to server  Server feeds new source into stream
 User Pauses Stream
○ Device sends request to server  Server pauses stream (buffering new data)
 Communication Failure
○ Server kills service thread, client attempts to re-establish communication
 Device / Server Side Failure
○
○
If server is widowed  Kill service thread, wait for new clients
If client is widowed  Display error, attempt to reconnect
Performance Tests






Source toggle to display
Initial contact to display
Failure/Brief outage to recovery
Some streams are relatively time-sensitive (e.g. baby monitor)
Some streams are extremely time-sensitive (e.g. “24”)
Some users are impatient (e.g. everyone I’ve ever met ever)
 Run “source-toggle” script on the device to trigger N source swaps,
measure total time, divide by N
 Create and tear-down connection from device to server, measure time
from initial contact to feed display in each (then average)
 Simulate failures from either end by intentionally dropping messages,
losing connections, & killing streams
Testing Process
 Integrate software “hooks” into device and server side software
 Write scripts that link into these hooks, each one exercising a set of test
cases (and a certain classification of test)
○ Device drops network data
○ Device toggles desired source
○ Server ignores device requests
○ Server pauses feed
○ Server “loses” feed
○ etc.
 Most tests do not require a user-generated workload
○
Many require users to verify/validate
Looking Ahead
 Interfacing with a TV tuner
 Switching inputs quickly (from a user’s perspective)
 Separating independent variables


Campus network has arbitrary dead spots in buildings
Flushing server-side buffers is a good idea
Download