SlideShare una empresa de Scribd logo
1 de 10
On Evaluating Recommender Systems for API Usages Fachbereich Informatik  |  Software Technology Group  |  Marcel Bruch  | bruch@cs.tu-darmstadt.de International Workshop on  Recommendation Systems for Software Engineering Marcel Bruch Thorsten Schäfer Mira Mezini
Goals of a Code Recommender Evaluation ,[object Object],[object Object],[object Object],[object Object]
Requirements of a Code Recommender Evaluation ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sample Usage of a Code Recommender ... Code Recommender Recommendations Calls: <init> setText setFont setLayoutData «refine » Type: Text Calls:  ??? widget Incomplete Code « predict » « send » Type: Text Calls: <init> setText setLayoutData widget Resulting Code « inspect & use » Query Calls for Type= Text  ? « create »
General Process of Training & Evaluating Code Recommenders c Code Observations 1. Code Analysis Recommender Training Data 2. Training Artifact Processing Step Legend: Visualization Performance  Measures 5. Automated Reports Queries Test Data Expected Recommendations 3. Automated Query Creation Recommendations 4.  Query Phase
Sample Evaluation Scenario 2. Training 5. Reports 3. Automated Query Creation ... 4. Query  Phase  Recommender Query Calls for Type= Text  ? Recommendations Calls: <init> setText setFont setLayoutData Expected  Recommendations Calls: <init> setText setLayoutData Type: Text Calls: <init> setText setLayoutData widget Test Data « send » « predict » «refine » « compare »
Measuring Performance 5. Reports ... Recommendations Calls: <init> setText setFont setLayoutData Expected  Recommendations Calls: <init> setText setLayoutData e.g., ranking-based e.g., set-based 
Sample Evaluation Results
Summary ... 4. Query  Phase  Recommender 2. Training 3. Automated Query Creation 5. Reports ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Query Calls for Type= Text  ? Recommendations Calls: new Text setText setFont setLayoutData Expected  Recommendations Calls: new Text setText setLayoutData Type: Text Calls: new Text setText setLayoutData instance01 Test Data «query » «predict » «compare »
Q & A ,[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

Similar a On Evaluating Code Recommender Systems for API Usages

So Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test BlackboardSo Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test Blackboard
Steve Feldman
 
sotware testing curriculum
sotware testing curriculumsotware testing curriculum
sotware testing curriculum
Cassandra Allen
 
Test_Automation_-_Let's_Talk_Business.ppt
Test_Automation_-_Let's_Talk_Business.pptTest_Automation_-_Let's_Talk_Business.ppt
Test_Automation_-_Let's_Talk_Business.ppt
Gopi Raghavendra
 

Similar a On Evaluating Code Recommender Systems for API Usages (20)

Test Automation
Test AutomationTest Automation
Test Automation
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
 
Neotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting ZongNeotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting Zong
 
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web TestingThe Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
 
Introduction to Parasoft C++TEST
Introduction to Parasoft C++TEST Introduction to Parasoft C++TEST
Introduction to Parasoft C++TEST
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Test Driven Development with PHPUnit
Test Driven Development with PHPUnitTest Driven Development with PHPUnit
Test Driven Development with PHPUnit
 
SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
So Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test BlackboardSo Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test Blackboard
 
Backend Development - Django
Backend Development - DjangoBackend Development - Django
Backend Development - Django
 
LMS TESTING SERVICES
LMS TESTING SERVICESLMS TESTING SERVICES
LMS TESTING SERVICES
 
sotware testing curriculum
sotware testing curriculumsotware testing curriculum
sotware testing curriculum
 
Workshop quality assurance for php projects - phpdublin
Workshop quality assurance for php projects - phpdublinWorkshop quality assurance for php projects - phpdublin
Workshop quality assurance for php projects - phpdublin
 
Agile Testing - Challenges
Agile Testing - ChallengesAgile Testing - Challenges
Agile Testing - Challenges
 
Test Automation Frameworks Final
Test Automation Frameworks   FinalTest Automation Frameworks   Final
Test Automation Frameworks Final
 
Test_Automation_-_Let's_Talk_Business.ppt
Test_Automation_-_Let's_Talk_Business.pptTest_Automation_-_Let's_Talk_Business.ppt
Test_Automation_-_Let's_Talk_Business.ppt
 
Agile Metrics
Agile MetricsAgile Metrics
Agile Metrics
 
Pull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptxPull_Request_PAW_Shared_Rohit.pptx
Pull_Request_PAW_Shared_Rohit.pptx
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 

On Evaluating Code Recommender Systems for API Usages

  • 1. On Evaluating Recommender Systems for API Usages Fachbereich Informatik | Software Technology Group | Marcel Bruch | bruch@cs.tu-darmstadt.de International Workshop on Recommendation Systems for Software Engineering Marcel Bruch Thorsten Schäfer Mira Mezini
  • 2.
  • 3.
  • 4. Sample Usage of a Code Recommender ... Code Recommender Recommendations Calls: <init> setText setFont setLayoutData «refine » Type: Text Calls: ??? widget Incomplete Code « predict » « send » Type: Text Calls: <init> setText setLayoutData widget Resulting Code « inspect & use » Query Calls for Type= Text ? « create »
  • 5. General Process of Training & Evaluating Code Recommenders c Code Observations 1. Code Analysis Recommender Training Data 2. Training Artifact Processing Step Legend: Visualization Performance Measures 5. Automated Reports Queries Test Data Expected Recommendations 3. Automated Query Creation Recommendations 4. Query Phase
  • 6. Sample Evaluation Scenario 2. Training 5. Reports 3. Automated Query Creation ... 4. Query Phase Recommender Query Calls for Type= Text ? Recommendations Calls: <init> setText setFont setLayoutData Expected Recommendations Calls: <init> setText setLayoutData Type: Text Calls: <init> setText setLayoutData widget Test Data « send » « predict » «refine » « compare »
  • 7. Measuring Performance 5. Reports ... Recommendations Calls: <init> setText setFont setLayoutData Expected Recommendations Calls: <init> setText setLayoutData e.g., ranking-based e.g., set-based 
  • 9.
  • 10.

Notas del editor

  1. 6. Juni 2009 | | To ease framework understanding, tools have been developed that analyze existing framework instantiations to extract API usage patterns and present them to the user. However, detailed quantitative evaluations of such recommender systems are lacking. In this paper we present an automated evaluation process which extracts queries and expected results from existing code bases. This enables the validation of recommendation systems with large test beds in an objective manner by means of precision and recall measures.