|
|
Core Test Cases
|
|
|
===============
|
|
|
|
|
|
This page lists the tests which must succeed in order to release AF3.
|
|
|
|
|
|
Constraints
|
|
|
-----------
|
|
|
|
|
|
1. Output ports can not be read.
|
|
|
2. A port cannot have multiple incoming channels.
|
|
|
|
|
|
Online help
|
|
|
-----------
|
|
|
|
|
|
1. Test in final RCP image to be uploaded to the homepage, if the
|
|
|
online help is working (*Menu >Help >AF3 Help*)
|
|
|
2. Some plugins contribute their own help contents that integrates with
|
|
|
the contents provided in the `org.fortiss.af3.rcapplication` plugin.
|
|
|
Test if the links within the following contributed help modules
|
|
|
work:
|
|
|
- DSE / `org.fortiss.af3.exploration.ui`
|
|
|
\# Where to test
|
|
|
- Online version:
|
|
|
http://download.fortiss.org/public/projects/af3/help/dse/dse\_perspective.html
|
|
|
- Test in AF3 help
|
|
|
\# What to test
|
|
|
- *Menu >Help >AF3 Help<s><span
|
|
|
style="text-align:right;">Code generation, deployment and scheduling
|
|
|
synthesis</span></s>>DSE perspective*
|
|
|
- In particular, if links in `dse_perspective.html` (not the help
|
|
|
menu on the left-hand side) work (e.g, *DSE Dashboard*, *DSE
|
|
|
Constraint Modeling*, …)
|
|
|
\# Test, if help button in *DSE Perspective* works
|
|
|
|
|
|
Hints
|
|
|
-----
|
|
|
|
|
|
Consider using https://eclipse.org/rcptt/: very easy testing tool!
|
|
|
|
|
|
Modeling and simulation Test Cases
|
|
|
----------------------------------
|
|
|
|
|
|
### Test Case: System Architecture Modeling
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an AF3 project with a Component Architecture
|
|
|
2. Open the Component Architecture
|
|
|
3. Add two components to this architecture
|
|
|
4. Connect the components by a channel
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Component Architecture is created
|
|
|
- Two Components are added
|
|
|
- Components are connected by a channel
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Data Modeling
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Right-click on the project
|
|
|
3. Add Data Dictionary to this project
|
|
|
4. Open Data Dictionary (double-click on it)
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Data Dictionary is open
|
|
|
- Model Elements view allows to add Expressions
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Requirements Analysis → Glossary
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Right-click on the project
|
|
|
3. Add Requirements Analysis to this project
|
|
|
4. Open Requirements Analysis (double-click on it)
|
|
|
5. Select Requirement Analysis and right-click on it
|
|
|
6. Select Glossary and click on it
|
|
|
7. Select Glossary and right-click on it
|
|
|
8. Select Entry and click on it
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Requirements Analysis is open
|
|
|
- Glossary is open
|
|
|
- New Entry is open
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Requirements Analysis → Requirements
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Right-click on the project
|
|
|
3. Add Requirements Analysis to this project
|
|
|
4. Open Requirements Analysis (double-click on it)
|
|
|
5. Select Requirement Analysis and right-click on it
|
|
|
6. Select Requirements from the context menu and click on it
|
|
|
7. Select Requirements and right-click on it
|
|
|
8. Select Requirements Package and right-click on it
|
|
|
9. Select Requirement and right-click on it
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Requirements Analysis is open
|
|
|
- Requirements is open
|
|
|
- Requirements Package is open
|
|
|
- New Requirement is open
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Creating a Code Specification for a Component
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Add Component Architecture to this Project
|
|
|
3. Add at least a Component to this Component Architecture
|
|
|
4. Open Component Architecture
|
|
|
5. Drag&Drop the Code Specification from Model Elements section onto a
|
|
|
Component
|
|
|
6. Double-click onto this Component
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Code Specification view is open
|
|
|
- It has a return statement already inside
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Creating a Mode Automaton
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Add Component Architecture to this Project
|
|
|
3. Add at least a Component to this Component Architecture
|
|
|
4. Open Component Architecture
|
|
|
5. Drag&Drop the Mode Switch Specification from Model Elements section
|
|
|
onto a Component
|
|
|
6. Double-click onto this Component
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Mode Automaton view is open
|
|
|
- It has an Init state already inside
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Creating an Operator Panel
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Add Component Architecture to this Project
|
|
|
3. Add at least a Component to this Component Architecture
|
|
|
4. Open Component Architecture
|
|
|
5. Drag&Drop the Operator Panel from Model Elements section onto a
|
|
|
Component
|
|
|
6. Double-click onto this Component
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Operator Panel view is open
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Creating a State Automaton
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Add Component Architecture to this Project
|
|
|
3. Add at least a Component to this Component Architecture
|
|
|
4. Open Component Architecture
|
|
|
5. Drag&Drop the Automaton Specification from Model Elements section
|
|
|
onto a Component
|
|
|
6. Double-click onto this Component
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- State Automaton view is open
|
|
|
- It has an Init state already inside
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Creating a FMU Specification
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Add Component Architecture to this Project
|
|
|
3. Add at least a Component to this Component Architecture
|
|
|
4. Open Component Architecture
|
|
|
5. Drag&Drop the FMU Specification from Model Elements section onto a
|
|
|
Component
|
|
|
6. Double-click onto this Component
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- FMU Specification view is open
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Creating a Simulink Specification
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Add Component Architecture to this Project
|
|
|
3. Add at least a Component to this Component Architecture
|
|
|
4. Open Component Architecture
|
|
|
5. Drag&Drop the Simulink Specification from Model Elements section
|
|
|
onto a Component
|
|
|
6. Double-click onto this Component
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Simulink Specification view is open
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Defining a Platform Architecture
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Create an empty AF3 Project
|
|
|
2. Add a Platform Architecture to this Project
|
|
|
3. Open the Platform Architecture
|
|
|
4. Drag&Drop Generic\_ECU onto the canvas
|
|
|
5. Drag&Drop Generic\_Bus onto the canvas
|
|
|
6. Drag&Drop a Generic\_Actuator onto the Generic\_ECU
|
|
|
7. Drag&Drop a Generic\_Sensor onto the Generic\_ECU
|
|
|
8. Drag&Drop a Generic\_BusController onto the Generic\_ECU
|
|
|
9. Drag&Drop a Generic\_BusController onto the Generic\_Bus
|
|
|
10. Draw a connection between the Generic\_BusController contained by
|
|
|
Generic\_Bus and the one contained by the Generic\_ECU
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Platform Architecture contains at least a Generic\_ECU and a
|
|
|
Generic\_Bus
|
|
|
- Generic\_ECU contains at least a Generic\_Actuator, a
|
|
|
Generic\_Sensor and a Generic\_BusController
|
|
|
- Generic\_Bus contains at least a Generic\_BusController
|
|
|
- Generic\_ECU and Generic\_Bus are connected to each other via
|
|
|
Generic\_BusController
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Open the Simulation (On Quick Access (Ctrl-3) enter ‘Simulator’)
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
- ACC Example is loaded
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Right-click onto Component Architecture in the Model Navigator View
|
|
|
2. Select the Run Simulator entry
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Simulation View is opened
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Creating a Library Entry
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Click the L+ icon on the top-left of AF3 to create a Library (cf.
|
|
|
user documentation)
|
|
|
2. Add a New Package to the library
|
|
|
3. Switch back to the Projects by clicking on the L symbol
|
|
|
4. Create a Component Architecture with at least a Component
|
|
|
5. Open Component Architecture
|
|
|
6. Right-Click on the Component and choose the Add to Library entry
|
|
|
7. Select the appropriate Package
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Library entry is visible in the Model Element Section
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Code Generation
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
- ACC Example is loaded
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
\# Right-click on the Project in the Model Navigator
|
|
|
|
|
|
\# Add a new “Allocations” model
|
|
|
|
|
|
\# Right-click on the just created Allocation element
|
|
|
|
|
|
\# Add a “Component —>Hardware” allocation table
|
|
|
|
|
|
\# In the editor, allocate the sub-components of the
|
|
|
AdaptiveCruiseControl to the HeadUnitECU and the PowertrainECU
|
|
|
|
|
|
\* Right-click on the “Component —>Hardware” allocation table
|
|
|
|
|
|
1. Select the Bare Metal Generator Entry
|
|
|
2. Create and select a folder in the AF3-Project-Directory and click Ok
|
|
|
3. Switch to Storage View (right top in AF3)
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- In the Navigator view two Folders are created (HeadUnitECU &
|
|
|
PowertrainECU)
|
|
|
- Those folders contain source files
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: DSE Perspective
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Load the ACC model from the set of examples in the file menu
|
|
|
2. Switch to the DSE Perspective (right-top corner)
|
|
|
3. Click “Select AF3 Project”
|
|
|
4. Select the ACC model and follow the import wizard
|
|
|
5. Click on Synthesis icon and select Deployment Synthesis
|
|
|
6. Click the Optimize button
|
|
|
7. Click on the Visualisation icon
|
|
|
8. Select the Table view from the Visualisation methods and click
|
|
|
“Export”
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- The generated Allocation Table and additional artefacts should be
|
|
|
visible in the modeling view of the ACC model
|
|
|
|
|
|
**Status:** Running
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
### Test Case: Safety Argumentation Package
|
|
|
|
|
|
**Precondition:**
|
|
|
|
|
|
- Freshly Started AF3
|
|
|
- New Project is created
|
|
|
|
|
|
**Test Steps:**
|
|
|
|
|
|
1. Right-click onto the project
|
|
|
2. Select Assurance Package
|
|
|
|
|
|
**Postcondition:**
|
|
|
|
|
|
- Assurance Package is added to the Project
|
|
|
|
|
|
**Status:** Running
|
|
|
|