You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 66 Next »

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 which aggregates OCAP API calls into functional building blocks provided by RI Stack & PC Platform. 
  2. A scripting interface which allows automation of testing of these functional building blocks.
  3. A "Guide" Type OCAP Xlet which is referred to as the RxExerciser 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 Management:

Current Project Overall Status:

Finish UI implementation for Phase 1 and work on RiScriptlet scripts, focusing on HN streaming tests, completion date is Monday, Feb. 13th, 2012

Meeting Agenda & Minutes for Monday, Dec. 12th

  1. Progress on the smoke test rework – launching, monitoring and reporting of bean shell scripts framework – Parthi & Steve A 
    1. Parthi completed rework
    2. Steve A has telnet method call in place, has a couple questions for Marcin
    3. Steve A to explore using java stack trace to support logging of call chain
  2. Current status of RiExerciser  - Nicolas
    1. Nicolas has addressed issues identified last week, continuing with implementation
  3. Current status of automating HN Streaming Tests – Parthi
    1. Parthi will continue to work on this, get Cherie up to speed this week 
    2. Talked about various apis needed to support tests such as getMediaTime(), setting title, etc.
  4. java.security.AccessControlException: access denied issue with RiScriptlet
    1. Steve A & Nicolas will review Xlet methods - constructor, initXlet(), startXlet(), determine cause of this exception
  5. LOGGING- The Logging EC will be implemented soon..I noticed RIScriptlet uses log4j (which is available because it's in the apps classpath)...to get ready for it, I'd suggest changing Logger in the apps/qa folder to have a getLogger static method that just calls getInstance..then any app
    1. App classes except xlet: - Declare loggers using a NON-STATIC declaration: Logger log = Logger.getLogger(Classname.class);
    2. Xlet: Don't define ANY classes, including app classes, as static Define the logger but don't initialize it In initXlet:First initialize the logging framework: propertyconfigurator.configure(blah);- AND THEN define the logger:log = Logger.getLogger(Classname.class);
    3. Steve M will follow up with Scott D on suggestions
  6. Other Xlet advice:
    1. Don't reuse existing util classes like OcapTuner (it's used by other xlets and doesn't leverage log4j) Don't run long-running tasks on the UI thread
    2. Then there's lazy initialization of singletons: don't do it...either avoid singletons and pass the helper in, make all the methods static, or declare and initialize your private instance at the same time.
  7. Ocap Tuner Reuse
    1. Discuss this in 2 PM meeting today
  8. Hidden Content Testing
    1. Scott A gave overview, will setup another meeting to discuss in more detail
  9. Dogfooding - using our own software - RiScriptlet scripts to test software changes
Current Action Items
  1. Follow up on logging change suggestions - Steve M
  2. Complete telnet i/f shutdown - Steve A
  3. Investigate using java stack trace to support calling chain logging - Steve A
  4. Setup crucible reviews for code check-ins for RxProject - Lori 

Rx Project Weekly Monday Meeting Agenda & Notes

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

How to use the RiScriptlet to run a script

"Existing Features of DVRExerciser"

Rx Project Testing:

Nightly Testing Strategy
UI Testing Strategy

Rx Project Related Documentation:

Power Point presentation describing initial architecture proposal

Existing set of features of DVR Exerciser

  • No labels