Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5....
Transcript of Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5....
![Page 1: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/1.jpg)
Test Driven Development in Agile
Model-Based Design
Paul Urban
Marco Dragic
![Page 2: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/2.jpg)
2
Paul UrbanMarco Dragic
Senior Product Manager
Simulink Verification and Validation
Senior Product Manager
Simulink Platform
![Page 3: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/3.jpg)
3
Building Algorithms in Everything…
![Page 4: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/4.jpg)
4
Building Algorithms in Everything…
…but how do you deliver faster, meet
changing customer requirements,
and ensure quality?
![Page 5: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/5.jpg)
BACKLOGDEFINITION
OF DONEDELIVERY
1. Create a test
2. Implement enough for test to pass
3. Refactor
Test Driven Development Cycle
5
![Page 6: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/6.jpg)
Requirements
Simulink provides an integrated framework for TDD
Test
Implementation
6
![Page 7: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/7.jpg)
Starting with high level customer requirements
7
User Requirements:
• Both driver and passenger can control the window
• Window stops closing if an object is detected
• Window should have option to fully open and close
![Page 8: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/8.jpg)
Capturing requirements
8
![Page 9: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/9.jpg)
Viewing details
9
Requirement
Details
![Page 10: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/10.jpg)
Organizing and creating requirement hierarchies
10
Requirement
Hierarchies
![Page 11: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/11.jpg)
Specifying details
11
Description / Rationale Fields
Links
Pane
![Page 12: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/12.jpg)
1. Create a test
2. Implement enough for test to pass
3. Refactor
12
![Page 13: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/13.jpg)
Main Model
Test Harness
Component
under test
▪ Isolate Component Under Test
Test
Harnesses
▪ Author, manage, organize tests
Test
Manager
Test Browser
Test Results
Reports
▪ Specify test inputs, expected
outputs, and tolerances
Test
Authoring
Signal Editor
Temporal Assessments
Test Sequence
Time-Series Data
Develop, manage, and execute simulation-based testsSimulink Test
13
![Page 14: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/14.jpg)
Creating a Test Harness to isolate Component Under Test
14
![Page 15: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/15.jpg)
Specify properties of the Test Harness
15
![Page 16: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/16.jpg)
Specify inputs
16
Inputs
Test Sequence
MAT file (input)
Excel file (input)
Signal Editor
![Page 17: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/17.jpg)
Outputs
Specify outputs
17
AssessmentsMAT file Excel
![Page 18: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/18.jpg)
Created Test Harness to isolate Component Under Test
18
Test Harness
Main Model
![Page 19: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/19.jpg)
Authoring tests using Signal Editor
19
![Page 20: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/20.jpg)
Use templates and wizards to automate test case creation
20
![Page 21: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/21.jpg)
Use templates and wizards to automate test case creation
21
![Page 22: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/22.jpg)
Create Simulation Test and link to requirement
22
Link to requirements
Specify model to test
![Page 23: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/23.jpg)
Test fails due to compilation error
23
![Page 24: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/24.jpg)
1. Create a test
2. Implement enough for test to pass
3. Refactor
24
![Page 25: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/25.jpg)
Implement enough to get test to pass
25
![Page 26: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/26.jpg)
Linking implementation to requirements
26
![Page 27: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/27.jpg)
Managing artifacts with source control directly from Projects
27
![Page 28: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/28.jpg)
Scale and automate testing with Continuous Integration
▪ Schedule automatic code
and model testing
▪ Access MATLAB Plugin for
Jenkins
28
![Page 29: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/29.jpg)
Executing test with Test Manager
▪ Group into suites
and test files
▪ Execute individual
or batch
29
![Page 30: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/30.jpg)
Analyzing and debugging results with Test Manager
30
▪ View result summary
▪ Debug using Simulation
Data Inspector
▪ Archive, export, and
report results
![Page 31: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/31.jpg)
Executing all tests until they pass
31
![Page 32: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/32.jpg)
Measuring testing completeness with coverage
▪ Identify testing gaps
▪ Missing requirements
▪ Unintended functionality
▪ Design errors
32
Simulink
Stateflow
Code
![Page 33: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/33.jpg)
Generating test reports for audits and reviews
33
![Page 34: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/34.jpg)
1. Create a test
2. Implement enough for test to pass
3. Refactor
34
![Page 35: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/35.jpg)
Refactoring
▪ Refactoring is the process of changing software in such a way that it
does not alter the external behavior of the code yet improves its internal
structure
35
![Page 36: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/36.jpg)
Refactoring takes many shapes and forms
• Rearranging Layout
36
![Page 37: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/37.jpg)
Refactoring takes many shapes and forms
• Rearranging Layout
37
![Page 38: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/38.jpg)
Refactoring takes many shapes and forms
• Rearranging Layout
• Restructuring Hierarchy
38
![Page 39: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/39.jpg)
Refactoring takes many shapes and forms
• Rearranging Layout
• Restructuring Hierarchy
• Optimizing Implementation
39
![Page 40: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/40.jpg)
Refactoring takes many shapes and forms
• Rearranging Layout
• Restructuring Hierarchy
• Optimizing Implementation
• Project-wide Renaming
…. and many more!
40
![Page 41: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/41.jpg)
Refactor by consolidating redundant Stateflow chart
41
Driver and Passenger Controls are identical
![Page 42: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/42.jpg)
Detecting clones with Clone Detector App
42
![Page 43: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/43.jpg)
1. Create a test
2. Implement enough for test to pass
3. Refactor
Test Driven Development Cycle
43
![Page 44: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/44.jpg)
Conclusion and key takeaways
44
Simulink provides an integrated
framework for TDD
Systematically verify requirements
Automate testing to deliver working
systems faster
![Page 45: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/45.jpg)
Test Driven Development powered by MATLAB and Simulink
45
• Model-Based Design – Simulink and Stateflow
• Manage Requirements – Simulink Requirements
• Author and Execute Tests – Simulink Test
• Measure Test Completeness – Simulink Coverage
• Refactor and Verify Compliance – Simulink Check
• Continuous Integration – MATLAB Plug in for Jenkins
• Organize, Manage and Share – Projects
![Page 46: Test Driven Development in Agile Model-Based Design · Test Driven Development Cycle 5. Requirements Simulink provides an integrated framework for TDD Test Implementation 6. Starting](https://reader036.fdocuments.in/reader036/viewer/2022071217/604c356f1141116c73485633/html5/thumbnails/46.jpg)
Learn more
▪ Agile System Development with Model-Based Design
▪ Agile Model-Based Design: Accelerating Simulink Simulations in Continuous
Integration Workflows
▪ Verification, Validation, and Test Solution Page
▪ Continuous Integration Solution Page
46