18649 - Unit Test Log


18649 Spring 2010
Group 7 - Justin Ray/justinr2

Unit Test Status

The table describes the unit tests and summarizes the current unit test results.  For each submission, these results must be consistent with the code and test files submitted with that version of the portfolio.  Be sure to include all information listed in the project handouts.

Controller Name
Controller File
Message Injector File
States / Transitions Tested
Number of passed assertions
Number of failed assertions
Test Results
Notes
ButtonControl
buttoncontrol.cf
button_control_1.mf S2.1 IDLE, S2.5 FLASH_ON, S2.4 FLASH_OFF, S2.2 EMPTY, S2.3 VEND**
T2.1, T2.4, T2.5, {T2.2, T2.3} from FLASH_OFF
18
0
injection-button_control_1.mf-0.stats
This test identified the issues discussed in #8 in the issue log.
ButtonControl buttoncontrol.cf button_control_2.mf S2.1 IDLE, S2.5 FLASH_ON, S2.4 FLASH_OFF, S2.2 EMPTY, S2.3 VEND**
T2.1, T2.4, {T2.2, T2.3} from FLASH_ON
14
0
injection-button_control_2.mf-0.stats

ButtonControl buttoncontrol.cf button_control_3.mf S2.1 IDLE, S2.2 EMPTY
T2.6, T2.7
8
0
injection-button_control_3.mf-0.stats

CoinControl
coincontrol.cf
coincontrol_1.mf
S3.1 IDLE, S3.2 COIN_IN_1, S3.3 COIN_IN2, S3.4 OVERPAY
T3.1, T3.2, T3.3, T3.4, T3.5
16
0
injection-coincontrol_1.mf-0.stats
coincontrol_1-0.out
Cannot verify the OVERPAY, OVERPAY_STRETCH  or COIN_IN_1 states with automated testing.
Manual Verifiations:of coincontrol_1-0.out:  (See Note 1)
  • 1.2s: COIN_IN_1 state and an output of CoinCount=1 and CoinOut = false
  • 2.2s: COIN_IN_1 state and an output of CoinCount=2 and CoinOut = false
  • 2.2s: COIN_IN_1 state and an output of CoinCount=3 and CoinOut = false
  • 3.8s. OVERPAY state and an output of CoinCount=2 and CoinOut = true
  • 3.9s. OVERPAY_STRETCH state and an output of CoinCount=2 and CoinOut = true
CoinControl coincontrol.cf coincontrol_2.mf S3.1 IDLE, S3.2 COIN_IN_1, S3.3 COIN_IN2, S3.7 VEND
T3.1, T3.2, T3.3, T3.10, T3.11
14
0
injection-coincontrol_2.mf-0.stats
coincontrol_2-0.out
This test identified the issue discussed in #9 in the issue log.

Cannot verify the COIN_IN_1 state with automated testing.
Manual Verifiations:of coincontrol_2-0.out: (See Note 1)
  • 1.2s: COIN_IN_1 state and an output of CoinCount=1 and CoinOut = false
  • 2.2s: COIN_IN_1 state and an output of CoinCount=2 and CoinOut = false
CoinControl coincontrol.cf coincontrol_3.mf S3.1 IDLE, S3.2 COIN_IN_1, S3.3 COIN_IN2, S3.5 RETURN_1, S3.6 RETURN_2
T3.1, T3.2, T3.3, T3.6, T3.7, T3.8, T3.9
12
0
injection-coincontrol_3.mf-0.stats
Cannot verify the COIN_IN_1, RETURN_1, RETURN_2 states with automated testing.
Manual Verifiations:of coincontrol_3-0.out: (See Note 1)
  • 1.2s: COIN_IN_1 state and an output of CoinCount=1 and CoinOut = false
  • 2.2s: COIN_IN_1 state and an output of CoinCount=2 and CoinOut = false
  • 3.2: RETURN_1 state and an output of CoinCount=1 and CoinOut = TRUE
  • 3.3: RETURN_STRETCH state and an output of CoinCount=1 and CoinOut = TRUE
  • 3.4: RETURN_2 state and an output of CoinCount=1 and CoinOut = FALSE
  • 3.5: RETURN_1 state and an output of CoinCount=0 and CoinOut = TRUE
  • 3.6: RETURN_STRETCH state and an output of CoinCount=0 and CoinOut = TRUE
  • 3.7: RETURN_2 state and an output of CoinCount=0 and CoinOut = FALSE
VendControl
vendcontrol.cf
vendcontrol_1.mf
S4.1 IDLE, S4.2 VEND
T4.1, T4.2
12
0
injection-vendcontrol_1.mf-0.stats
This test identified the issue discussed in #10 in the issue log.
VendPositionControl
vendpositioncontrol.cf
vendpositioncontrol_1.mf
S5.1 IDLE, S5.2 MOVE
T5.1, T5.2 (mVendButton[s] ← TRUE  AND  mVendPosition[s] ← TRUE condition)
10
0
injection-vendpositioncontrol_1.mf-0.stats

VendPositionControl vendpositioncontrol.cf vendpositioncontrol_2.mf S5.1 IDLE, S5.2 MOVE
T5.1, T5.2 (mVendPositon[1] ← TRUE AND VendMotor ← LEFT condition)
8
0
injection-vendpositioncontrol_2.mf-0.stats
This test identified issue #11 in the issue log.
VendPositionControl vendpositioncontrol.cf vendpositioncontrol_3.mf S5.1 IDLE, S5.2 MOVE
T5.1, T5.2 (mVendPositon[8] ← TRUE AND VendMotor ← RIGHT condition)
8
0
injection-vendpositioncontrol_3.mf-0.stats


Note 1:  Because of the short duration pulse of the CoinOut output and the pulse detector implemented by COIN_IN_1 and COIN_IN_2, these states must be tested manually.  See the discussion notes for the SodaMachine example for further discussion.
To have a test like this (where all assertions do not reliably pass), you must obtain TA approval.  It should not be necessary for the elevator because the elevator does not have any pulse outputs.  In any case, it is in your best interest to avoid them because you will have to manually verify them and save the output every time you run your tests.
**Note 2:  By testing FLASH_ON and FLASH_OFF, we fully test the superstate VEND

Unit Test Peer Review Status

Add your unit test peer reviews here.  Be sure to include all information listed in the project handouts.
NOTE:  the review and author are the same in this example, but in your project they must be different.

Controller Name
Reviewer name/andrewID
Is each statechart arc exercised?
Is each statechart state exercised?
If there are multiple OR branches in an ard, are they exercised?
Are all the inputs and outputs mentioned in the behavioral requirements exercised?
ButtonControl
Justin Ray/justinr2
yes
yes yes
yes
CoinControl
Justin Ray/justinr2 yes yes (with manual verification)
yes yes
VendControl
Justin Ray/justinr2 yes yes yes yes
VendPositionControl
Justin Ray/justinr2 yes yes yes yes