SlideShare a Scribd company logo
1 of 18
Download to read offline
Software Testing Amplification
Benoit Baudry, INRIA
22 March 2017
DevOps
● Software development practices
– To reduce time between releases
– To favor feedback from production into development
● Emphasizes automation
– Testing, build, deployment, configuration, monitoring
Test automation
● Test execution
– Unit, UI, performance
● Quality metrics
– Static metrics, test coverage
● Improve quality
– Reduce regressions, detect bugs early
Test automation
● Test development
– Hard, time consuming
– Unit tests have limited coverage and some are flaky
● Configuration testing
– Little support for automation
– Very limited sampling among all configurations
Test amplification
Automatically transform existing
test assets in order to detect
regression bugs before production
and drive down the cost of software
testing.
Example
6
public void testSearch() {
final ArrayStack<E> stack = makeObject();
stack.push(((E)("First Item")));
stack.push(((E)("Second Item")));
assertEquals("Top item is 'Second Item'", 1, stack.search("Second Item"));
assertEquals("Next Item is 'First Item'", 2, stack.search("First Item"));
assertEquals("Cannot find 'Missing Item'", -1, stack.search("Missing Item"));}
Example
7
public void testSearch() {
final ArrayStack<E> stack = makeObject();
stack.push(((E)("First Item")));
stack.push(((E)("Second Item")));
assertEquals("Top item is 'Second Item'", 1, stack.search("Second Item"));
assertEquals("Next Item is 'First Item'", 2, stack.search("First Item"));
assertEquals("Cannot find 'Missing Item'", -1, stack.search("Missing Item"));}
public void testSearch_cf5() {
final ArrayStack<E> stack = makeObject();
stack.push(((E)("First Item")));
stack.push(((E)("Second Item")));
E o_5 = stack.peek();
assertFalse(((java.lang.String)o_5).isEmpty());
E o_6 = stack.pop();
assertFalse(((java.lang.String)o_6).isEmpty());
Object o_7_0 = stack.search("Second Item");
Object o_9_0 = stack.search("First Item");
assertEquals("Cannot find 'Missing Item'", -1, stack.search("Missing Item"));
assertEquals(((java.lang.String)o_5).length(), 11);
assertEquals(((java.lang.String)o_6).length(), 11);}
new calls and asserts
extracted from asserts
new asserts
Focus on regressions
● Amplified tests
– Embedd regression oriented
oracles
– Detect behavioral differences
between two versions of a program
9
STAMP in DevOps
● Focus on regression bugs in the continuous integration phase
● Reduce configuration bugs before application deployment
● Identify more operation bugs in edge cases with semantic
logging
STAMP objectives
● Reduce time for manual writing of test
cases, while increasing coverage
● Test the application in multiple
deployment configurations
● Analyze program behavior to re-inject
production test cases in continuous
testing
11
DSpot: JUnit Test Suites
Amplification
Amplified Test
Suite
Original Test Suite
for Program P
Update in the Program
Under Test
12
P
TS
P'
TS+
se arch -b ase d
input sp ace
amp lifica tion
obse rva tion
sp ace
amp lifica tion
ru n and look
for differe nce s
TS++
DSpot: JUnit Test Suites
Amplification
github.com/STAMP-project/dspot
13
14
Descartes Engine for PIT
● Mutation Testing
– Inject faults into a program to determine if the test cases can
detect them.
● PIT: mutation testing system for Java
– Many fine-grained fault models
– But does not scale to large code bases
● Descartes
– STAMP’s adaption of PIT with extreme mutation operators
– Empty the body of methods github.com/STAMP-project/pitest-descartes
Example
15
public void setValue(int x) {
if(x<10){
a:=x;
}
}
public void setValue(int x) {
}
●
Original method
●
Mutant
16
STAMP Use Cases
ProActive Workflows and
Scheduling
ATOS FIWARE Smart City
Ecosystem
TelluCloud e-health
XWiki hybrid Open
Source business/project
OW2 Software
Quality Platform
17
● Project Long Name: Software Testing AMPlification
– A consortium of nine European members
● The STAMP project has received funding from the
EU H2020 research and innovation programme
– Start: December 1, 2016
– End: November 31, 2019
– EU program: Horizon 2020 ICT-10-2016-RIA
STAMP at a Glance
18
STAMP Useful Links
Web Site
www.stamp-project.eu
Twitter
@stamp_project
SlideShare
www.slideshare.net/
stamp-project
Web Site
www.stamp-project.eu
Forge
gitlab.ow2.org/stamp
github.com/STAMP-project

More Related Content

What's hot

Atpg design rule checking project
Atpg design rule checking projectAtpg design rule checking project
Atpg design rule checking project
Minh Anh Nguyen
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsight
chiportal
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Dharmalingam Ganesan
 
Tutorial ranorex
Tutorial ranorexTutorial ranorex
Tutorial ranorex
radikalzen
 
TEST_AUTOMATION_CASE_STUDY_(2)2[1]
TEST_AUTOMATION_CASE_STUDY_(2)2[1]TEST_AUTOMATION_CASE_STUDY_(2)2[1]
TEST_AUTOMATION_CASE_STUDY_(2)2[1]
Clive Dall
 
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in IndustryAssessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Dharmalingam Ganesan
 
Interface-Implementation Contract Checking
Interface-Implementation Contract CheckingInterface-Implementation Contract Checking
Interface-Implementation Contract Checking
Dharmalingam Ganesan
 

What's hot (20)

Automated Testing for Embedded Software in C or C++
Automated Testing for Embedded Software in C or C++Automated Testing for Embedded Software in C or C++
Automated Testing for Embedded Software in C or C++
 
1803_STAMP_OpenCloudForum2018
1803_STAMP_OpenCloudForum20181803_STAMP_OpenCloudForum2018
1803_STAMP_OpenCloudForum2018
 
Unit testing on embedded target with C++Test
Unit testing on embedded  target with C++TestUnit testing on embedded  target with C++Test
Unit testing on embedded target with C++Test
 
Atpg design rule checking project
Atpg design rule checking projectAtpg design rule checking project
Atpg design rule checking project
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsight
 
Automated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in ActionAutomated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in Action
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
 
SANER 2015 ERA track: Differential Flame Graphs
SANER 2015 ERA track: Differential Flame GraphsSANER 2015 ERA track: Differential Flame Graphs
SANER 2015 ERA track: Differential Flame Graphs
 
Tutorial ranorex
Tutorial ranorexTutorial ranorex
Tutorial ranorex
 
Qa process 2012
Qa process 2012Qa process 2012
Qa process 2012
 
How To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test AutomationHow To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test Automation
 
TEST_AUTOMATION_CASE_STUDY_(2)2[1]
TEST_AUTOMATION_CASE_STUDY_(2)2[1]TEST_AUTOMATION_CASE_STUDY_(2)2[1]
TEST_AUTOMATION_CASE_STUDY_(2)2[1]
 
Improving software quality and devop automation with STAMP, OW2con'16, Paris.
Improving software quality and devop automation with STAMP, OW2con'16, Paris. Improving software quality and devop automation with STAMP, OW2con'16, Paris.
Improving software quality and devop automation with STAMP, OW2con'16, Paris.
 
Test execution may_04_2006
Test execution may_04_2006Test execution may_04_2006
Test execution may_04_2006
 
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in IndustryAssessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
 
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
Interface-Implementation Contract Checking
Interface-Implementation Contract CheckingInterface-Implementation Contract Checking
Interface-Implementation Contract Checking
 
CD
CDCD
CD
 
Comparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
Comparing Functionalities of PVS-Studio and CppCat Static Code AnalyzersComparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
Comparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
 

Similar to STAMP at Open Cloud Forum by OW2 2017

ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
Yogindernath Gupta
 
PramodMishra_Profile
PramodMishra_ProfilePramodMishra_Profile
PramodMishra_Profile
Pramod Mishra
 
Testing Attributes
Testing AttributesTesting Attributes
Testing Attributes
Abiha Naqvi
 
Regression Optimizer
Regression OptimizerRegression Optimizer
Regression Optimizer
Shradha Singh
 
Qtp questions and answers
Qtp questions and answersQtp questions and answers
Qtp questions and answers
Ramu Palanki
 
May: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and ChallengesMay: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and Challenges
TriTAUG
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
ShivareddyGangam
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test Complete
Vartika Saxena
 

Similar to STAMP at Open Cloud Forum by OW2 2017 (20)

ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
 
ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2
 
PramodMishra_Profile
PramodMishra_ProfilePramodMishra_Profile
PramodMishra_Profile
 
Testing Attributes
Testing AttributesTesting Attributes
Testing Attributes
 
Automated Developer Testing: Achievements and Challenges
Automated Developer Testing: Achievements and ChallengesAutomated Developer Testing: Achievements and Challenges
Automated Developer Testing: Achievements and Challenges
 
Regression Optimizer
Regression OptimizerRegression Optimizer
Regression Optimizer
 
Test planning.ppt
Test planning.pptTest planning.ppt
Test planning.ppt
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
Qtp questions and answers
Qtp questions and answersQtp questions and answers
Qtp questions and answers
 
Test-Driven-Development.pptx
Test-Driven-Development.pptxTest-Driven-Development.pptx
Test-Driven-Development.pptx
 
May: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and ChallengesMay: Automated Developer Testing: Achievements and Challenges
May: Automated Developer Testing: Achievements and Challenges
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
 
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process OverviewSTX Next - Scrum Development Process Overview
STX Next - Scrum Development Process Overview
 
Unit testing
Unit testing Unit testing
Unit testing
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
CV_pavan_
CV_pavan_CV_pavan_
CV_pavan_
 
Google test training
Google test trainingGoogle test training
Google test training
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test Complete
 

More from STAMP Project

More from STAMP Project (9)

STAMP Descartes Presentation
STAMP Descartes PresentationSTAMP Descartes Presentation
STAMP Descartes Presentation
 
Mutation Testing Workshop at Ericsson, Kista, Sweden
Mutation Testing Workshop at Ericsson, Kista, SwedenMutation Testing Workshop at Ericsson, Kista, Sweden
Mutation Testing Workshop at Ericsson, Kista, Sweden
 
STAMP Project at Telecom Valley 6 Dec. 2018
STAMP Project at Telecom Valley 6 Dec. 2018STAMP Project at Telecom Valley 6 Dec. 2018
STAMP Project at Telecom Valley 6 Dec. 2018
 
STAMP ActiveEon Use Case at Telecom Valley Dec. 2018
STAMP ActiveEon Use Case at Telecom Valley Dec. 2018STAMP ActiveEon Use Case at Telecom Valley Dec. 2018
STAMP ActiveEon Use Case at Telecom Valley Dec. 2018
 
20181106 arie van_deursen_testday2018
20181106 arie van_deursen_testday201820181106 arie van_deursen_testday2018
20181106 arie van_deursen_testday2018
 
Mutation Testing at BzhJUG
Mutation Testing at BzhJUGMutation Testing at BzhJUG
Mutation Testing at BzhJUG
 
Mutation @ Spotify
Mutation @ Spotify Mutation @ Spotify
Mutation @ Spotify
 
Mutate and Test your Tests with STAMP, Caroline Landry, Inria, Paris Open Sou...
Mutate and Test your Tests with STAMP, Caroline Landry, Inria, Paris Open Sou...Mutate and Test your Tests with STAMP, Caroline Landry, Inria, Paris Open Sou...
Mutate and Test your Tests with STAMP, Caroline Landry, Inria, Paris Open Sou...
 
Mutate and Test your Tests
Mutate and Test your TestsMutate and Test your Tests
Mutate and Test your Tests
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 

STAMP at Open Cloud Forum by OW2 2017

  • 1. Software Testing Amplification Benoit Baudry, INRIA 22 March 2017
  • 2. DevOps ● Software development practices – To reduce time between releases – To favor feedback from production into development ● Emphasizes automation – Testing, build, deployment, configuration, monitoring
  • 3. Test automation ● Test execution – Unit, UI, performance ● Quality metrics – Static metrics, test coverage ● Improve quality – Reduce regressions, detect bugs early
  • 4. Test automation ● Test development – Hard, time consuming – Unit tests have limited coverage and some are flaky ● Configuration testing – Little support for automation – Very limited sampling among all configurations
  • 5. Test amplification Automatically transform existing test assets in order to detect regression bugs before production and drive down the cost of software testing.
  • 6. Example 6 public void testSearch() { final ArrayStack<E> stack = makeObject(); stack.push(((E)("First Item"))); stack.push(((E)("Second Item"))); assertEquals("Top item is 'Second Item'", 1, stack.search("Second Item")); assertEquals("Next Item is 'First Item'", 2, stack.search("First Item")); assertEquals("Cannot find 'Missing Item'", -1, stack.search("Missing Item"));}
  • 7. Example 7 public void testSearch() { final ArrayStack<E> stack = makeObject(); stack.push(((E)("First Item"))); stack.push(((E)("Second Item"))); assertEquals("Top item is 'Second Item'", 1, stack.search("Second Item")); assertEquals("Next Item is 'First Item'", 2, stack.search("First Item")); assertEquals("Cannot find 'Missing Item'", -1, stack.search("Missing Item"));} public void testSearch_cf5() { final ArrayStack<E> stack = makeObject(); stack.push(((E)("First Item"))); stack.push(((E)("Second Item"))); E o_5 = stack.peek(); assertFalse(((java.lang.String)o_5).isEmpty()); E o_6 = stack.pop(); assertFalse(((java.lang.String)o_6).isEmpty()); Object o_7_0 = stack.search("Second Item"); Object o_9_0 = stack.search("First Item"); assertEquals("Cannot find 'Missing Item'", -1, stack.search("Missing Item")); assertEquals(((java.lang.String)o_5).length(), 11); assertEquals(((java.lang.String)o_6).length(), 11);} new calls and asserts extracted from asserts new asserts
  • 8. Focus on regressions ● Amplified tests – Embedd regression oriented oracles – Detect behavioral differences between two versions of a program
  • 9. 9 STAMP in DevOps ● Focus on regression bugs in the continuous integration phase ● Reduce configuration bugs before application deployment ● Identify more operation bugs in edge cases with semantic logging
  • 10. STAMP objectives ● Reduce time for manual writing of test cases, while increasing coverage ● Test the application in multiple deployment configurations ● Analyze program behavior to re-inject production test cases in continuous testing
  • 11. 11 DSpot: JUnit Test Suites Amplification Amplified Test Suite Original Test Suite for Program P Update in the Program Under Test
  • 12. 12 P TS P' TS+ se arch -b ase d input sp ace amp lifica tion obse rva tion sp ace amp lifica tion ru n and look for differe nce s TS++ DSpot: JUnit Test Suites Amplification github.com/STAMP-project/dspot
  • 13. 13
  • 14. 14 Descartes Engine for PIT ● Mutation Testing – Inject faults into a program to determine if the test cases can detect them. ● PIT: mutation testing system for Java – Many fine-grained fault models – But does not scale to large code bases ● Descartes – STAMP’s adaption of PIT with extreme mutation operators – Empty the body of methods github.com/STAMP-project/pitest-descartes
  • 15. Example 15 public void setValue(int x) { if(x<10){ a:=x; } } public void setValue(int x) { } ● Original method ● Mutant
  • 16. 16 STAMP Use Cases ProActive Workflows and Scheduling ATOS FIWARE Smart City Ecosystem TelluCloud e-health XWiki hybrid Open Source business/project OW2 Software Quality Platform
  • 17. 17 ● Project Long Name: Software Testing AMPlification – A consortium of nine European members ● The STAMP project has received funding from the EU H2020 research and innovation programme – Start: December 1, 2016 – End: November 31, 2019 – EU program: Horizon 2020 ICT-10-2016-RIA STAMP at a Glance
  • 18. 18 STAMP Useful Links Web Site www.stamp-project.eu Twitter @stamp_project SlideShare www.slideshare.net/ stamp-project Web Site www.stamp-project.eu Forge gitlab.ow2.org/stamp github.com/STAMP-project