Que vous soyez développeur ou entrepreneur, découvrez le projet STAMP piloté par Inria, l'institut national de recherche dédié aux sciences du numérique.
Optimizing AI for immediate response in Smart CCTV
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
1.
2. Comment améliorer la qualité de vos logiciels avec
STAMP ?
2
27/02/2019
Benoit Baudry
Project Coordinator and Scientific Leader
KTH, Sweden
Caroline Landry
Project Technical Manager
INRIA, France
3. •4 research
institutions
•5 companies
•1 open source
consortium
•Automated Testing
in DevOps
This work was partially supported by the EU Project
STAMP ICT-16-10 No.731529
4. DevOps
4
•High degrees of automation in software
development, deployment and operations
•Objectives
• Better quality
• Shorter release cycles
• Continuous feedback from Ops to Dev
21. DevOps – Testing in Dev
21
Continuous Integration
- Unit, integration testing
- Coverage, mutation
Automatic test improvement
- Test amplification
- Test fixing
IDE
- Linters
- Completion
28. STAMP’s concept: amplification
Amplify (v.): to increase the size or effect of
something
https://dictionary.cambridge.org/dictionary/english/amplify 28
29. STAMP’s concept: amplification
Amplify (v.): to increase the size or effect of
something
Test amplification: Increase the effect of test
assets
29https://dictionary.cambridge.org/dictionary/english/amplify
30. STAMP’s concept: amplification
Amplify (v.): to increase the size or effect of
something
Test amplification: Increase the effect of test
assets
Test assets: test cases, configuration files, production logs
Effect metrics: mutation score, feature interactions
Automatic amplification
30https://dictionary.cambridge.org/dictionary/english/amplify
39. 39
@Test
public void html() {
Attribute attr = new Attribute("key", "value &");
assertEquals("key="value &"", attr.html());
assertEquals(attr.html(), attr.toString());
}
DSpot
Original
test case
40. 40
@Test
public void html_add33() throws Exception {
Attribute attr = new Attribute("key", "value &");
Assert.assertEquals("key="value &"", attr.html());
Assert.assertEquals("key="value &"", attr.toString());
Assert.assertEquals("key", attr.getKey());
Assert.assertEquals("value &", attr.getValue());
}
@Test
public void html() {
Attribute attr = new Attribute("key", "value &");
assertEquals("key="value &"", attr.html());
assertEquals(attr.html(), attr.toString());
}
DSpot
Original
test case
Generated
test case
41. 41
DSpot
Automatic Test Improvement with DSpot: a Study with Ten Mature Open-Source Projects. B. Danglot, O. Luis Vera-Pérez, B. Baudry, M. Monperrus. Submitted to EMSE.
57. 3
Pull request
● Maven/Gradle
● Dspot
● Descartes
● CI System-tests
● CAMP
STAMP tools
DEV
Proactive
Release
User
● Create issues
● Botsing
STAMP will help us improve our CI cycle:
● more tests added to our test suite
● better bug/regression detection
58. 4
CAMP for configuration testing
Proactive
Release
User
● CI System-tests
● CAMP => Generate different Proactive configurations
for database support