Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Hesam Samimi

dblp:48/8244 · DBLP profile ↗
← Back
4ranked-venue papers
4as first author
0since 2021 · last 2013
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 4 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Software testing · 42% Debugging and program repair · 24% Requirements engineering and software design · 21%

Topics — the 6 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Requirements engineering and software design › specification
executable specification
0.212013
Declarative mocking · ISSTA 2013
Software testing › test process › test design
test specification
0.212013
Declarative mocking · ISSTA 2013
Debugging and program repair
automated program repair
0.112012
Automated repair of HTML generation errors in PHP applications using string constraint solving · ICSE 2012
Program verification › decision procedure
constraint solver
0.012013
Declarative mocking · ISSTA 2013
Program analysis
constraint solving
0.012013
Declarative mocking · ISSTA 2013
Debugging and program repair › automated program repair
test-based program repair
0.012012
Automated repair of HTML generation errors in PHP applications using string constraint solving · ICSE 2012

Methods — techniques the papers use, named apart from their topics

executable specification · 0.2constraint solving · 0.2string constraint solving · 0.1static analysis · 0.1dynamic analysis · 0.1
YearPublicationVenuePosition
2013 Declarative mocking
abstract
Test-driven methodologies encourage testing early and often. "Mock objects" support this approach by allowing a component to be tested before all depended-upon components are available. Today mock objects typically reflect little to none of an object's intended functionality, which makes it difficult and error-prone for developers to test rich properties of their code. This paper presents "declarative mocking", which enables the creation of expressive and reliable mock objects with relatively little effort. In our approach, developers write method specifications in a high-level logical language for the API being mocked, and a constraint solver dynamically executes these specifications when the methods are invoked. In addition to mocking functionality, this approach seamlessly allows data and other aspects of the environment to be easily mocked. We have implemented the approach as an extension to an existing tool for executable specifications in Java called PBnJ. We have performed an exploratory study of declarative mocking on several existing Java applications, in order to understand the power of the approach and to categorize its potential benefits and limitations. We also performed an experiment to port the unit tests of several open-source applications from a widely used mocking library to PBnJ. We found that more than half of these unit tests can be enhanced, in terms of the strength of properties and coverage, by exploiting executable specifications, with relatively little additional developer effort.
Hesam Samimi, Rebecca Hicks, Ari Fogel, Todd D. Millstein
ISSTA1
2012 Automated repair of HTML generation errors in PHP applications using string constraint solving
abstract
PHP web applications routinely generate invalid HTML. Modern browsers silently correct HTML errors, but sometimes malformed pages render inconsistently, cause browser crashes, or expose security vulnerabilities. Fixing errors in generated pages is usually straightforward, but repairing the generating PHP program can be much harder. We observe that malformed HTML is often produced by incorrect constant prints, i.e., statements that print string literals, and present two tools for automatically repairing such HTML generation errors. PHPQuickFix repairs simple bugs by statically analyzing individual prints. PHPRepair handles more general repairs using a dynamic approach. Based on a test suite, the property that all tests should produce their expected output is encoded as a string constraint over variables representing constant prints. Solving this constraint describes how constant prints must be modified to make all tests pass. Both tools were implemented as an Eclipse plugin and evaluated on PHP programs containing hundreds of HTML generation errors, most of which our tools were able to repair automatically.
Hesam Samimi, Max Schäfer, Shay Artzi, Todd D. Millstein, Frank Tip, Laurie J. Hendren
ICSE1
2011 Specification-based sketching with Sketch
abstract
We introduce a new tool employing the sketching synthesis technique in programs annotated with declarative contracts. While Sketch, the original sketching tool, reasons entirely on imperative code, Sketch# works on top of the full-fledged specification language Spec#. In such a language, high-level specifications in the form of pre- and postconditions annotate code, which can be formally verified using decision procedures. But once a given method's implementation is verified, there is no need to look inside its body again. An invocation of the method elsewhere simply implies its specified postcondition. The approach widens the scalability of the sketching technique, as reasoning can be done in a modular manner when specifications accompany implementations.
Hesam Samimi, Kaushik Rajan
FTfJP@ECOOP1
2010 Falling Back on Executable Specifications
Hesam Samimi, Ei Darli Aung, Todd D. Millstein
ECOOP1