verification tools in practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · timsort was...
TRANSCRIPT
![Page 1: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/1.jpg)
Verification Tools in Practice
Testing, Quality Assurance, and MaintenanceWinter 2017
Prof. Arie Gurfinkel
![Page 2: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/2.jpg)
2 22
Turing, 1949 Alan M. Turing. “Checking a large routine”, 1949
![Page 3: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/3.jpg)
3 3
Verification Competition
http://etaps2016.verifythis.org/
![Page 4: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/4.jpg)
4 4
Microsoft Visual Studio Products
Code Contracts• https://marketplace.visualstudio.com/items?itemName=RiSEResearchinSoftw
areEngineering.CodeContractsforNET• https://github.com/Microsoft/CodeContracts
• statically and dynamically checked method pre- and post-conditions
IntelliTest• https://www.visualstudio.com/en-us/docs/test/developer-testing/intellitest-
manual/introduction
• automated test generation by dynamic symbolic execution
![Page 5: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/5.jpg)
5 5
WHY3
http://why3.lri.fr/
![Page 6: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/6.jpg)
6 6
VeriFast
https://people.cs.kuleuven.be/~bart.jacobs/verifast/
![Page 7: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/7.jpg)
7 7
Viper
http://www.pm.inf.ethz.ch/research/viper.html
![Page 8: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/8.jpg)
8 8
Open JML
http://www.openjml.org/
![Page 9: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/9.jpg)
9 9
The KeY Project
https://www.key-project.org/
![Page 10: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/10.jpg)
10 10
http://envisage-project.eu/proving-android-java-and-python-sorting-algorithm-is-broken-and-how-to-fix-it/
![Page 11: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/11.jpg)
11 11
Frama-C
https://frama-c.com/
![Page 12: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/12.jpg)
12 12
SPARKPro
http://www.adacore.com/sparkpro/
![Page 13: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/13.jpg)
13 13
Amazon S2N
https://aws.amazon.com/blogs/security/automated-reasoning-and-amazon-s2n/
![Page 14: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/14.jpg)
14 14
IronClad and InronFleet
https://github.com/Microsoft/Ironclad
![Page 15: Verification Tools in Practiceagurfink/ece653w17/assets/pdf/... · 2017. 3. 22. · TimSort was first developed for Python, but later ported to Java (where it ap- pears as java.util.collections.sort](https://reader035.vdocument.in/reader035/viewer/2022071021/5fd55fab0090c77cc41842d6/html5/thumbnails/15.jpg)
15 15
Is Verification Enough
Can verified software fail?
Do we need both testing and verification?