You are on page 1of 33

Bitte decken Sie die schraffierte Fläche mit einem Bild ab.

Please cover the shaded area with a picture.


(24,4 x 11,0 cm)

Sunroof
System and function overview

Software testing - Laboratory 2


Sunroof

Purpose and Scope

›This document contains an overview upon Sunroof systems and existing


functionality regarding it.

›This collection is addressed for students who are attending Software Testing
course and want to understand the process of creating and perform tests based on
system requirements.

Continental IASI Sunday, June 06, 2021


Public 2
Sunroof
Function overview
Sunroof is a fixed or operable (venting or sliding) opening in an automobile roof which allows light
and/or fresh air to enter the passenger compartment.

Sunroofs may be manually operated or motor driven and are available in many shapes, sizes and
styles.

Continental IASI Sunday, June 06, 2021


Public 3
Sunroof
System overview
The system elements of a sunroof are mentioned in the picture below:
- Electronic Control Unit;
- Harness with Motors (used for to connect the motors to the electronic control unit, and the
electronic to the car);
- Mechanic (Glass Panel, Sun Blind).

Continental IASI Sunday, June 06, 2021


Public 4
Sunroof
Roof types concept

 Roof with 1 motor: Glass Panel as moving element or Sun Blind as moving element (canvas).
 Roof with 2 motors: Glass and Sun Blind as moving elements;

* Variant used for this


seminary’s purpose

 Roof with 3 motors: Glass and 2 Blinds as moving elements;


 Roof with 4 motors: 2 glass and 2 Blinds as moving elements.

Continental IASI Sunday, June 06, 2021


Public 5
Sunroof
Generic functions: example of block diagram

*SRE Inputs *SRE = Sun Roof Electronics *SRE Outputs

Continental IASI Sunday, June 06, 2021


Public 6
Sunroof with two motors
User Interface requirements

 The user can control the sun roof via Switch and Remote(LIN):
 Switch (5 states switch):

Continental IASI Sunday, June 06, 2021


Public 7
Sunroof with two motors
Block Diagram

Continental IASI Sunday, June 06, 2021


Public 8
Sunroof with two motors
User Interface requirements

 Remote Control(LIN):

 Car key: Open or Close the Sun Roof with the car key
 Voice control: Open or Close the Sun Roof with voice commands
 Air handling: Close(if Open or Intermediary Open) the Sun Roof when Air Circulation is
on

 Roof movements can be:

 Manual: movement is started as long as the switch is kept pressed


 This behavior happens when the motor position is not known(Reference Position invalid)
or Reference Field is invalid
 Automatic: movement is started automatically (switch is pressed in 1 st state and released)
 Quick Automatic: both motors movements are started (switch is pressed in 2 nd state and
released)

 User interface movements are executed according with customer description(State machine):

 Will start from certain position;


 Will stop in a certain position depending by:
 user command;
 start position;
Continental IASI Sunday, June 06, 2021
Public 9
Sunroof with two motors
System diagram

Continental IASI Sunday, June 06, 2021


Public 10
Sunroof with two motors

User Interface requirements

Continental IASI Sunday, June 06, 2021


Public 11
Sunroof with two motors (6/16)
Aditional functions – short description

Function Description

Reference field Recorded force profile of mechanical system during initialization. When expected
force level is exceeded, a pinch event is detected and motor is doing a reverse.
Reference position Refers to the known 0 position which usually is the closing mechanical block.
Motor position is known and calculated referring to the position 0.
Position counting Hall sensor position counting (2 Hall system) -> detect changes in position;
conversion to absolute position
Stall / Block detection No Hall pulses in one direction for a certain time (see e.g. below for close
movements)

BC Close Tilt Open

*Mechanical limits
Authorization Used to inhibit start/ongoing roof movement, except special
movements(reversal);
Can be: Hardware or LIN/CAN
Sleep mode ECU goes in low power mode to reduce current consumption

Continental IASI Sunday, June 06, 2021


Public 12
Initialization and Re Initialization

› Initialization (RP & RF Invalid)


1. Press CLOSE Switch (Close 1st state or Close 2nd state) -> Glass Panel will move to Mechanic Block Close and after motor stall it will move
directly to Soft Stop Close(SSC), after that Sun Blind will move to Mechanics Block Close and after motor stall it will move directly to Soft Stop
Close(SSC)
2. Within switch Release Time release CLOSE Switch and reactivate CLOSE Switch within Teaching Timeout -> Glass Panel and Sun Blind will
move to Soft Stop Open(Open position) simultaneously, then Glass Panel moves to Soft Stop Close(Close) and after that Sun Blind moves to
Soft Stop Close
3. Release CLOSE Switch
› Re Initialization (RP & RF valid)
1. Move Glass Panel and Sun Blind to fully closed position (Soft Stop Close) and release CLOSE Switch (either Close 1st or Close 2nd), if
pressed
2. Press CLOSE Switch for De-Init Time, Glass Panel will move to Mechanic Block Close and after motor stall it will move to Soft Stop
Close(Close) directly, then Sun Blind will move to Mechanic Block Close and after motor stall it will move to Soft Stop Close(Close position)
directly
3. Within Switch Release Time, release CLOSE Switch. Within following Teaching Timeout, reactivate CLOSE Switch
4. Wait for Teach Delay Time, Glass Panel and Sun Blind will move to Soft Stop Open(Open position) simultaneously, then the glass panel will
move Soft Stop Close(Close position) and after that the Sun Blind will move to Soft Stop Close(Close position)
5. Release CLOSE Switch
› If the sequence is not executed accordingly, the RP shall keep its validity, the RF shall be withdrawn. If the system is outside of valid
environmental conditions (voltage, temperature, authorization), the initialization shall not be started or executed

Switch Release Timer = 5[s]


InitTimer = Teach Delay = 5[s]
De Init Switch Timer = Re Init Timer = 10 [s] – kept pressed in close position

Continental IASI Sunday, June 06, 2021


Public 13
Initialization and Re Initialization – test cases
Test Test Name Precondition Procedure Expected result
ID
Test_ Initialization: RP and RF invalid DefaultSettings() 1. Press FrontSwitch SACkp 1. GP movement is started to Close Block, RP is
01 and GP and SB in Close SetMotorPosition(GP, GPClose) (switch automatic close kept) learned and relaxes to Close position
position SetMotorPosition(SB, SBClose) SB movement is started to Close Block, RP
SetRp(GP, invalid) is learned and relaxes to Close position
SetRf(GP, invalid)
SetRp(SB, invalid) 2. No movement is started
SetRf(SB, invalid)
2. Release FrontSwitch SACkp 3. GP and SB movements are started towards
within SwReleaseTimer Open and stops in Open position
3. Press FrontSwitch SACkp After Open position is reached, GP and SB
again within InitTimer movements are started towards Close and
stops in Close position

Test_ ReInitialization: RP and RF valid DefaultSettings() 1. Press FrontSwitch SACkp 1. No movement is started
02 and GP and SB in Close SetMotorPosition(GP, GPClose)
position SetMotorPosition(SB, SBClose) 2. Wait(reInitSwTimer) 2. GP movement is started to Close Block, RP is
learned and relaxes to Close position
SB movement is started to Close Block, RP is
learned and relaxes to Close position
3. Release FrontSwitch SACkp 3. No movement is started
within SwReleaseTimer
4. GP and SB movements are started towards
4. Press FrontSwitch SACkp again Open and stops in Open position
within InitTimer After Open position is reached, GP and SB
movements are started towards Close and stops
in Close position
5. RP and RF valid for GP and SB
5. Check RP and RF for GP and SB

Continental IASI Sunday, June 06, 2021


Public 14
Initialization and Re Initialization - test cases
Test Test Name Precondition Procedure Expected result
ID
Test_ Initialization: Fast DefaultSettings() 1. Press FrontSwitch SAC 2. No movement is started
03 Initialization procedure SetMotorPosition(GP, GPClose)
SetMotorPosition(SB, SBClose) 2. Press FrontSwitch SAC 2. No movement is started
SetParametersNewFlashed
3. Press FrontSwitch SAC 3. Initialization procedure is done
4. After fast initialization is 4. RP and RF are valid
done, check RP and RF
Note: The Switch should be
pressed 3 times within 5[s]

Test_ Initialization: Procedure DefaultSettings() 1. Press FrontSwitch SACkp 1. a. GP movement is started to Close Block, RP is
04 interrupted by SetMotorPosition(GP, GPClose) learned and relaxes to Close position
SetEnableRoof(OFF) SetMotorPosition(SB, SBClose) b. SB movement is started to Close Block, RP is
SetRp(GP, invalid) learned and relaxes to Close position
SetRf(GP, invalid)
SetRp(SB, invalid) 2. Release FrontSwitch 2. No movement is started
SetRf(SB, invalid) SACkp within
SwReleaseTimer
3. GP and SB movements are started towards Open
3. Press FrontSwitch SACkp
again within InitTimer
4. GP and SB movements are interrupted
4. During movement in
Open, SetEnableRoof(OFF) 5. No movement is started
5. SetEnableRoof(ON) 6. RP is valid and RF invalid
6. Release FrontSwitch
SACkp and check RP and RF

Continental IASI Sunday, June 06, 2021


Public 15
Initialization and Re Initialization – process operation

Continental IASI Sunday, June 06, 2021


Public 16
Initialization, Re Initialization and Fast initialization
mechanical limits

Continental IASI Sunday, June 06, 2021


Public 17
Sunroof with two motors User Interface – Tilt movements
 Tilt movements decision table
FROM CLOSE TO TILT Sun Blind at movement start
DIRECTION
Close ~ Tilt ~ Open
(TiltArea) (SlideArea)

1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd

Glass GP - Tilt - Tilt Tilt Tilt Tilt


Panel Close
at SB Tilt - Tilt - - - -
movem
ent GP - Tilt - Tilt Tilt Tilt Tilt
start ~
(TiltArea) SB Tilt - Tilt - - - -

GP - - - - -
Tilt
SB - - - - -

GP Tilt Tilt Tilt Tilt Tilt


~
(SlideArea) SB Tilt Tilt - - -

GP Tilt Tilt Tilt Tilt Tilt


Open
SB Tilt Tilt - - -

E.g.: Preconditions: - GP(Glass Panel) and SB(Sun Blind) Closed * 1 – first position target reached
st

2nd – second position target reached


Steps: - Press FrontSwitch Tilt and release it to idle
Expected: SB moves to Tilt(1st). After the Tilt position is reached by SB(1st), GP moves to Tilt(2nd) T10

Continental IASI Sunday, June 06, 2021


Public 18
Sunroof with two motors User Interface – Tilt movements

FROM TILT TO CLOSE Sun Blind at movement start


DIRECTION Close ~ Tilt ~ Open
1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd

GP - - - - -   -   -  
Close
SB - - - - -   -   -  

     
GP Close - Close - Close Close Close
~
     
SB - - - - - - -
Glass T11
         
Panel at GP Close Close Close Close Close
Tilt
moveme          
SB - - - - -
nt start
GP -   -   -   -   -  
~
SB -   -   -   -   -  

GP -   -   -   -   -  
Open
SB -   -   -   -   -  

Continental IASI Sunday, June 06, 2021


Public 19
Sunroof with two motors
User Interface – Tilt movements
 Tilt movements state chart

Continental IASI Sunday, June 06, 2021


Public 20
Sunroof with two motors (9/16) IV – test cases

Test ID Test Name Precondition Procedure Expected result

Test_10 User Interface: Tilt DefaultSettings() Press FrontSwitch Tilt SB movement is started towards Tilt and stops
request when GP and SetMotorPosition(GP, in Tilt position
SB in Close position GPClose) After Tilt position is reached by SB, GP
SetMotorPosition(SB, SBClose) movement is started towards Tilt and stops in
Tilt position

Test_11 User Interface: Tilt DefaultSettings() Press FrontSwitch Tilt GP movement is started towards Close and
request when GP and SetMotorPosition(GP, GPTilt) stops in Close position
SB in Tilt position SetMotorPosition(SB,
SBIntermediary)

Continental IASI Sunday, June 06, 2021


Public 21
Sunroof with two motors (10/16)
Automatic movements
If the Auto switch is pressed(1st detent), the movement is started automatically
according with the following tables:

Sun Blind at movement start Sun Blind at movement start


Auto Open Close ~ Tilt ~ Open Auto Close Close ~ Tilt ~ Open
1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd
GP - - - - Open GP - - - - -
Close Close
SB Open Open Open Open - SB - Close Close Close Close

GP - - - - Open GP Close Close Close Close Close


~ ~
SB Open Open Open Open - SB - - - - -
Glass Glass
Panel at GP - - - - Open GP Close Close Close Close Close
Panel at
Tilt Tilt
movement movement
SB Open Open Open Open - SB - - - - -
start start
GP - - - - Open GP Close Close Close Close Close
~ ~
SB Open Open Open Open - SB - - - - -

GP - - - - - GP Close Close Close Close Close


Open Open
SB Open Open Open Open - SB - - - - -

E.g.: Preconditions: - GP(Glass Panel) and SB(Sun Blind) Closed


Steps: - Press FrontSwitch SAO (Switch pressed in 1st state and relased to idle)
Expected: SB moves to Open Automatically T05

Continental IASI Sunday, June 06, 2021


Public 22
Sunroof with two motors (10/16) II
User Interface – Automatic movements
 Automatic movements state chart

Continental IASI Sunday, June 06, 2021


Public 23
Sunroof with two motors (10/16) III

Test ID Test Name Precondition Procedure Expected result

Test_05 User Interface: DefaultSettings() Press FrontSwitch SAO GP movement is started automatically
Automatic Open SetMotorPosition(GP, towards Open and stops in Open position
request when GP GPClose)
and SB in Close SetMotorPosition(SB,
position SBClose)

Test_06 User Interface: DefaultSettings() Press FrontSwitch SAC GP movement is started automatically
Automatic Close SetMotorPosition(GP, towards Close and stops in Close position
request when GP in GPIntermediary)
Intermediary Area SetMotorPosition(SB,
and SB in Open SBOpen)
position

Test_07 User Interface: DefaultSettings() Press FrontSwitch SAC SB movement is started towards Close
Automatic Close SetMotorPosition(GP, automatically and stops in Close position
request when SB in GPClose)
Intermediary Area SetMotorPosition(SB,
and GP in Close Intermediary)
position

Continental IASI Sunday, June 06, 2021


Public 24
Sunroof with two motors (11/16)
Quick movements

› If the Quick switch is pressed(2nd detent), the movement is started automatically


according with the following tables:

Sun Blind at movement start Sun Blind at movement start


Quick Open Close ~ Tilt ~ Open Quick Close Close ~ Tilt ~ Open
1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd 1st 2nd
GP - Open - Open Open Open Open GP - - - - -
Close Close
SB Tilt Open Tilt Open Open Open - SB - Close Close Close Close

GP - Open - Open Open Open Open GP Close Close - Close Close Close
~ ~
SB Tilt OPen Tilt Open Open Open - SB - - Close Close Close Close
Glass Glass
Panel at GP - Open - Open Open Open Open Panel at GP Close Close - Close Close Close
Tilt Tilt
movement movement
SB Tilt OPen Tilt Open Open Open - SB - - Close Close Close Close
start start
GP - Open - Open Open Open Open GP Close Close - Tilt Close Tilt Close Tilt Close
~ ~
SB Tilt OPen Tilt Open Open Open - SB - - Close - Close Tilt Close Tilt Close

GP - - - - - GP Close Close - Tilt Close Tilt Close Tilt Close


Open Open
SB Open Open Open Open - SB - - Close - Close Tilt Close Tilt Close

E.g.: Preconditions: - GP(Glass Panel) and SB(Sun Blind) Closed


Steps: - Press FrontSwitch SQO (Switch pressed in 2nd state and relased to idle)
Expected: SB moves to Tilt(1st). After the Tilt position is reached by SB(1st), both motors are moving towards Open
T08

Continental IASI Sunday, June 06, 2021


Public 25
Sunroof with two motors (11/16) I
User Interface – Switch Quick movements
 Quick Automatic movements state chart (this is a little hidden by the picture)

Continental IASI Sunday, June 06, 2021


Public 26
Sunroof with two motors (11/16) II – test cases

Test ID Test Name Precondition Procedure Expected result

Test_08 User Interface: DefaultSettings() Press FrontSwitch SQO SB movement is started towards Open.
Quick Open SetMotorPosition(GP, GPClose) When SB reaches the Tilt position, GP
request when GP SetMotorPosition(SB, SBClose) movement is started towards Open, also.
and SB in Close Both motors moves to Open afterwads and
position stops in Open position

Test_09 User Interface: DefaultSettings() Press FrontSwitch SQC SB and GP movements are started towards Tilt.
Quick Close SetMotorPosition(GP, When GP reaches the Tilt position, stops and
request when GP GPIntermediary) wait for SB motor.
in Intermediary SetMotorPosition(SB, SBOpen) After SB reaches the Tilt position, both motors
Area and SB in moves to Close afterwads and stops in Close
Open position position

Continental IASI Sunday, June 06, 2021


Public 27
Block events(12/16)

› In case of a block / pinch event during a movement, the movement should stop and
reverse for reversal distance:
› Block during Close movements:
* x - position where block is performed:
Close ≤ x < Tilt -> movement reverse to Tilt
Tilt ≤ x ≤ Open -> movement reverse to Open
› Block during Open movements:
* x - position where block is performed:
Close ≤ x < Tilt -> relax for relax distance towards Close direction
Tilt ≤ x ≤ Open -> relax for relax distance towards Tilt direction

Continental IASI Sunday, June 06, 2021


Public 28
Block events(12/16) I – test cases
Test Test Name Precondition Procedure Expected result
ID
Test_ Block/Pinch Events: Block event DefaultSettings() 1. Press FrontSwitch SAC 1. GP movement is started towards Close direction
12 during Close movement in Tilt SetMotorPosition(GP, GPTilt)
Area on GP SetMotorPosition(SB, SBOpen) 2. During movement, 2. When Block is performed, GP stops and reverse to Tilt
SetBlockClose(GP, TiltArea) position

Test_ Block/Pinch Events: Block event DefaultSettings() 1. Press FrontSwitch SAC 1. GP movement is started towards Close direction
13 during Close movement in SetMotorPosition(GP,
Intermediary Area on GP GPIntermediary) 2. During movement, 2. When Block is performed, GP stops and reverse to
SetMotorPosition(SB, SBOpen) SetBlockClose(GP, Open position
IntermediaryArea)

Test_ Block/Pinch Events: Block event DefaultSettings() 1. Press FrontSwitch SAO 1. SB movement is started towards Open direction
14 during Open movement in SetMotorPosition(GP, GPClose)
Intermediary Area on SB SetMotorPosition(SB, SBClose) 2. During movement, 2. When Block is performed, GP stops and relaxes to
SetBlockOpen(GP, Close position for Relax distance
IntermediaryArea)

Test_ Block/Pinch Events: Override DefaultSettings() 1. Press FrontSwitch SAC 1. GP movement is started towards Close direction
15 Anti-pinch function - only SetMotorPosition(GP, GPOpen)
manual movement allowed SetMotorPosition(SB, SBOpen) 2. During movement, 2. When Block is performed, GP stops and reverse to
during override mode SetBlockClose(GP, Open position
IntermediaryArea)
3. GP movement is started towards Close direction
3. Press FrontSwitch SACkp,
within IcebreakerTimer 4. GP movement is stopped
4. Release FrontSwitch SACkp 5. GP movement is started towards Close direction and
stops in Close position
5. Press FrontSwitch SAC

Continental IASI Sunday, June 06, 2021


Public 29
Additional functions (13/16)

› Override Anti-pinch function


› If the Glass Panel is closed via CLOSE switch and either an 'antipinch reversal'
movement happens, a timer of 4 seconds shall be started.
› If a new activation is started in close direction by switch, while the timer is not expired,
this new single movement shall be performed without pinch detection.
- The roller blind shall not enter override mode at all
- This movement is performed manually only (no automatic movement)
› Errors on LIN
› Stuck switch Err on LIN
› A switch kept pressed for more than a certain time -> switch becomes
stuck(ignored). The system should detect the switch error and publish on LIN
bus
› LIN request: Air handling
› When request is set to active -> the movement is started towards Close

Continental IASI Sunday, June 06, 2021


Public 30
Additional functions (13/16) I – errors on LIN – test cases
Test Test Name Precondition Procedure Expected result
ID

Test_ Stuck switch: Stuck Switch for DefaultSettings() 1. Press FrontSwitch SACkp 1. GP movement is started towards Close and stops
16 Auto Close for GP -> Err SetMotorPosition(GP, GPOpen) when StuckSwTime is exceeded
published on LIN SetMotorPosition(SB, SBOpen)
SetParameter(GP, StuckSw, 2. 2. LIN_MotorError: SwitchErr
StuckSwTime) CheckMotorError(GP,Switch
Err) on LIN

Test_ Stuck switch: Stuck Switch for DefaultSettings() 1. Press FrontSwitch SQOkp 1. GP movement is started towards Open and stops
17 Quick Open for GP -> Err SetMotorPosition(GP, GPClose) when StuckSwTime is exceeded
published on LIN SetMotorPosition(SB, SBOpen)
SetParameter(GP, StuckSw, 2. 2. LIN_MotorError: SwitchErr
StuckSwTime) CheckMotorError(GP,Switch
Err) on LIN

Test_ Stuck switch: Other request DefaultSettings() 1. Press FrontSwitch SAOkp 1. GP movement is started towards Open and stops
18 during Stuck Switch Err for GP SetMotorPosition(GP, GPClose) when StuckSwTime is exceeded
SetMotorPosition(SB, SBOpen)
SetParameter(GP, StuckSw, 2. Press FrontSwitch SACkp 2. No movement is started
StuckSwTime)

Continental IASI Sunday, June 06, 2021


Public 31
Additional functions (13/16) II – air handling request –
test cases
Test Test Name Precondition Procedure Expected result
ID

Test_ Air handling[LIN]: Auto Close DefaultSettings() SetAirHandling(AutoClose) No movement is started


19 request when GP in Close SetMotorPosition(GP, GPClose)
position and SB in Slide Area SetMotorPosition(SB,
SBIntermediary)

Test_ Air handling[LIN]: Auto Close DefaultSettings() SetAirHandling(AutoClose) GP movement is started towards Close and stops in
20 request when GP in Tilt Area SetMotorPosition(GP, GPTiltArea) Close position
and SB in Open position SetMotorPosition(SB, SBOpen)

Test_ Air handling[LIN]: Auto Close DefaultSettings() SetAirHandling(AutoClose) GP movement is started towards Close and stops in
21 request when GP and SB in SetMotorPosition(GP, GPOpen) Close position
Open position SetMotorPosition(SB, SBOpen)

Continental IASI Sunday, June 06, 2021


Public 32
Tema de casa

› Sa se descrie cazurile de testare aferente conditiilor de start si comenzilor urmatoare:

› 1. se porneste din GP close si SB open; se da comanda Tilt.


› 2. se porneste din GP tilt si SB open; se dau comenzile Auto close, respectiv Auto open.
› 3. se porneste din GP open si SB open; se da comanda Automatic close interruption.

Continental IASI Sunday, June 06, 2021


Public 33

You might also like