ICSE 2017

68 papers accepted.

Updated on 2023-10-06.

You can find the lastest information here.


Semantically enhanced software traceability using deep learning techniques.

Can latent topics in source code predict missing architectural tactics?

Analyzing APIs documentation and code to detect directive defects.

An unsupervised approach for discovering relevant tutorial fragments for APIs.

Detecting user story information in developer-client conversations to generate extractive summaries.

Clone refactoring with lambda expressions.

Characterizing and detecting anti-patterns in the logging code.

Automated refactoring of legacy Java software to default methods.

Supporting software developers with a holistic recommender system.

Recommending and localizing change requests for mobile apps based on user reviews.

Machine learning-based detection of open source license exceptions.

Software development waste.

Becoming agile: a grounded theory of agile transitions in practice.

From diversity by numbers to diversity as process: supporting inclusiveness in software development teams with brainstorming.

Classifying developers into core and peripheral: an empirical study on count and network metrics.

Decoding the representation of code in the brain: an fMRI study of code review and expertise.

Understanding the impressions, motivations, and barriers of one time code contributors to FLOSS projects: a survey.

Search-driven string constraint solving for vulnerability detection.

A guided genetic algorithm for automated crash reproduction.

Stochastic optimization of program obfuscation.

ZenIDS: introspective intrusion detection for PHP applications.

Statically checking web API requests in JavaScript.

On cross-stack configuration errors.

Efficient detection of thread safety violations via coverage-guided generation of concurrent tests.

RClassify: classifying race conditions in web applications via deterministic replay.

Repairing event race errors by controlling nondeterminism.

Making malory behave maliciously: targeted fuzzing of android execution environments.

A SEALANT for inter-app security holes in android.

An efficient, robust, and scalable approach for analyzing interacting android apps.

LibD: scalable and precise third-party library detection in android markets.

Analysis and testing of notifications in Android wear applications.

Adaptive unpacking of Android apps.

Performance diagnosis for inefficient loops.

How do developers fix cross-project correlated bugs?: a case study on the GitHub scientific python ecosystem.

Feedback-based debugging.

Learning syntactic program transformations from examples.

Precise condition synthesis for program repair.

Heuristically matching solution spaces of arithmetic formulas to efficiently reuse solutions.

Exploring API embedding for API usages and applications.

Unsupervised software-specific morphological forms inference from informal discussions.

SPAIN: security patch analysis for binaries towards understanding the pain and pills.

Travioli: a dynamic analysis for detecting data-structure traversals.

ProEva: runtime proactive performance evaluation based on continuous-time markov chains.

Glacier: transitive class immutability for Java.

Challenges for static analysis of Java reflection: literature review and empirical study.

Machine-learning-guided selectively unsound static analysis.

How good is a security policy against real breaches?: a HIPAA case study.

Adaptive coverage and operational profile-based testing for reliability improvement.

RADAR: a lightweight tool for requirements and architecture decision analysis.

PEoPL: projectional editing of product lines.

Do developers read compiler error messages?

A general framework for dynamic stub injection.

An empirical study on mutation, statement and branch coverage fault revelation that avoids the unreliable clean program assumption.

Evaluating and improving fault localization.

Syntactic and semantic differencing for combinatorial models of test designs.

Balancing soundness and efficiency for practical testing of configurable systems.

Automatic text input generation for mobile testing.

A test-suite diagnosability metric for spectrum-based fault localization approaches.

Automated transplantation and differential testing for clones.

Code defenders: crowdsourcing effective tests and subtle mutants with a mutation testing game.

Optimizing test placement for module-level regression testing.

Learning to prioritize test programs for compiler testing.

What causes my test alarm?: automatic cause analysis for test alarms in system and integration testing.

Symbolic model extraction for web application verification.

UML diagram refinement (focusing on class- and use case diagrams).

Fuzzy fine-grained code-history analysis.

To type or not to type: quantifying detectable bugs in JavaScript.

The evolution of continuous experimentation in software product development: from data to a data-driven organization at scale.