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 >Code generation, deployment and scheduling synthesis;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. Select Requirement Analysis and right-click on it 5. Select Glossary and click on it 6. Select Glossary and right-click on it 7. 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. Select Requirement Analysis and right-click on it 5. Select Requirements from the context menu and click on it 6. Select Requirements and right-click on it 7. Select Requirements Package and right-click on it 8. 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: 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