Rx Project Overview:

The RxProject is an effort to take the current DvrExerciser OCAP Xlet and refactor it into a frame work which provides the following:

  1. A library of functionality, OcapAppDriver, which aggregates OCAP API calls into functional building blocks provided by RI Stack & PC Platform. 
  2. A scripting interface, RiScriptlet, which allows automation of testing of these functional building blocks.
  3. A "Guide" Type OCAP Xlet which is referred to as the RiExerciser which supports functional/application level testing and development through a GUI.

Rx Project Purpose:

QUESTION: We already have a bunch of existing test frameworks (CTP, Swak, DvrTest, etc.), why are we inventing another one?

ANSWER:  

  1. DvrExerciser is our current "guide type application" and widely used by RI developer.  It is also used to support DLNA CTT and UPnP CTT tests.  As part of the rewrite, we needed ability to verify its functionality which will be done through this framework.  What better way to test RiExerciser? 
  2. RiExerciser which is an ad hoc tool which is currently used by RI developers.  Developers put the effort in to adding additional functionality to DvrExerciser so features can be tested at a functional level.  Why not leverage the results of developer testing?  This framework allows for automation without much additional effort.  An example is the need for automated integration type tests for HN Streaming and Resource Contention Handling.
  3. RxProject will be part of the open source so outside contributors will be able to write bean shell scripts to illustrate issues and also demonstrate fixes (can’t do this with the CTP framework).
  4. Currently have a multiple of Xlets in the QA directory.  Each are required to implement Xlet and there is much redundant code.  If we used the Rx framework instead, could either utilize common utilities already found in OcapAppDriver or add to the common functionality (Rx framework is better than writing individual xlet and duplicating existing code).
  5. For HN, we need a framework where tests can be run to verify robustness in a network environment with many devices. HN CTP tests assume an isolated network.

QUESTION: Because of the limitations placed on the OcapAppDriver interface, no callbacks, only simple type calling parameters, minimal thread support, it will never meet the needs of RI developers for testing, can it?  
ANSWER: 

  1. If the framework needs additional concurrency support, we could leverage some existing code such as the Concurrency Utils Scott D recommended, DvrTest or Swak framework classes, etc.  
  2. The purpose of this framework is to meet the majority of our integration type test needs.  We will adhere to our existing rules and keep the framework simple to meet the needs of the majority of our tests.  Test cases which are so complex that can’t be performed in this framework, will need to be performed elsewhere.

Rx Project Phases:

The Rx Project has been divided into the following phases along with proposed dates for completion:

Phase 0: Minimal Functionality required to demonstrate the POC UC (Completion Date: Monday, Dec. 5, 2011):

* Proof Of Concept Use Case (POC UC):
  1. Tune
  2. Make a 30 sec recording
  3. Publish recording to CDS
  4. Playback the remote recording

Phase 1: Implement all current functionality that is in DvrExerciser (Completion Date: Monday, Feb. 13, 2012)

Rx Project Requirements:

High Level Requirements and Requested Features

RxProject Follow On Work & Suggestions

Rx Design & User Documentation:

"How It Works" Design Documentation

"How to Add A New Function" Design Documentation

"How the GUI Works" User Documentation

"Regression Testing" Users Guide

How to use the RiScriptlet to run a script

Rx Script Guidelines

Rx Project Testing:

Nightly Testing Strategy

Rx Project Related Documentation:

Power Point presentation describing initial architecture proposal

Power Point presentation of Existing set of features of DVR Exerciser

"Existing Features of DVRExerciser"