CSSequencer Proposed Solution
The following class descriptions represent a first design approach for the CSSequencer package:
- CSListObj
- Handles hierarchical structured list elements
- Each list element defines, for example, one test step
- List Elements could also handle sequences instead of single test steps
- List Elements can be restructured for editing the order of sequential execution
- CSSeqExec
- Querries CSListObj for Test Steps
- Triggers Test Step and waits for result
- Controls order of execution depending on test step result:
- loops, break conditions and branches (structural elements)
- editable via scripting tool
- Easy to replace sequence of test steps by connecting CSSeqExec to another List object
- CSProxy
- locks and unlocks any BaseProcess object for exclusive access via event driven communication
- avoids the interaction of parallel running sequencers that use the same device object
- CSDuT (Device under Test)
- Each HW device that belongs to a single test step can be connected additionally to a DUT object:
- Defining sequence of events for device object
- Using CSProxy class for locking mechanism
- Defining test Input and expected reaction
- Defining ways for analysis
- Defining conditions for test result (failed/successful)
- class diagramm:
more detailled class definitions
- CSDuT
- serves as parent class for any DuT object
- inludes the following functionality for the developer
- classname.ProcStimulate.vi: defines how to stimulate the device object
- data types of data to sent
- classname.ProcRespond.vi: defines how to work its respond
- data types of received data
- next step in sequence
- finish test if desired
- decision for test result (successful or failed?)
- classname.ProcSequence.vi: defines sequence
- multiple sequences possible
- groups events into event arrays
- defines order of execution for event arrays
- loop function for event array
- defines call type for each event
- handles locking mechanism (CSProxy)
After discussing several possible test scenarios during the last meetings a first approach concerning the
design of the CSSequencer basic classes has been accomplished. The following UML diagramms should present the outcome
of these discussions.
- interface between any device process and CSSequencer classes:
- multiple DuTs in one elementary sequence:
- USB Interface Test Scenario:
--
MaximilianKugler - 23 Mar 2006