Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleJuly 2024
Java JIT Testing with Template Extraction
Proceedings of the ACM on Software Engineering (PACMSE), Volume 1, Issue FSEArticle No.: 51, Pages 1129–1151https://doi.org/10.1145/3643777We present LeJit, a template-based framework for testing Java just-in-time (JIT) compilers. Like recent template-based frameworks, LeJit executes a template---a program with holes to be filled---to generate concrete programs given as inputs to Java JIT ...
- research-articleJuly 2024
ExLi: An Inline-Test Generation Tool for Java
FSE 2024: Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software EngineeringJuly 2024, Pages 652–656https://doi.org/10.1145/3663529.3663817We present ExLi, a tool for automatically generating inline tests, which were recently proposed for statement-level code validation. ExLi is the first tool to support retrofitting inline tests to existing codebases, towards increasing adoption of this ...
- research-articleMay 2024
JOG: Java JIT Peephole Optimizations and Tests from Patterns
ICSE-Companion '24: Proceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion ProceedingsApril 2024, Pages 11–15https://doi.org/10.1145/3639478.3640040We present JOG, a framework for developing peephole optimizations and accompanying tests for Java compilers. JOG allows developers to write a peephole optimization as a pattern in Java itself. Such a pattern contains code before and after the desired ...
- research-articleFebruary 2024
Object Graph Programming
ICSE '24: Proceedings of the IEEE/ACM 46th International Conference on Software EngineeringMay 2024, Article No.: 20, Pages 1–13https://doi.org/10.1145/3597503.3623319We introduce Object Graph Programming (OGO), which enables reading and modifying an object graph (i.e., the entire state of the object heap) via declarative queries. OGO models the objects and their relations in the heap as an object graph thereby ...
- research-articleNovember 2023
Multilingual Code Co-evolution using Large Language Models
ESEC/FSE 2023: Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software EngineeringNovember 2023, Pages 695–707https://doi.org/10.1145/3611643.3616350Many software projects implement APIs and algorithms in multiple programming languages. Maintaining such projects is tiresome, as developers have to ensure that any change (e.g., a bug fix or a new feature) is being propagated, timely and without errors, ...
-
- research-articleJuly 2023
Extracting Inline Tests from Unit Tests
ISSTA 2023: Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and AnalysisJuly 2023, Pages 1458–1470https://doi.org/10.1145/3597926.3598149We recently proposed inline tests for validating individual program statements; they allow developers to provide test inputs, expected outputs, and test oracles immediately after a target statement. But, existing code can have many target statements. ...
- research-articleJuly 2023
More Precise Regression Test Selection via Reasoning about Semantics-Modifying Changes
ISSTA 2023: Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and AnalysisJuly 2023, Pages 664–676https://doi.org/10.1145/3597926.3598086Regression test selection (RTS) speeds up regression testing by only re-running tests that might be affected by code changes. Ideal RTS safely selects all affected tests and precisely selects only affected tests. But, aiming for this ideal is often ...
- research-articleJuly 2023
Pattern-Based Peephole Optimizations with Java JIT Tests
ISSTA 2023: Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and AnalysisJuly 2023, Pages 64–75https://doi.org/10.1145/3597926.3598038We present JOG, a framework that facilitates developing Java JIT peephole optimizations alongside JIT tests. JOG enables developers to write a pattern, in Java itself, that specifies desired code transformations by writing code before and after the ...
- research-articleJuly 2023
pytest-Inline: An Inline Testing Tool for Python
ICSE '23: Proceedings of the 45th International Conference on Software Engineering: Companion ProceedingsMay 2023, Pages 161–164https://doi.org/10.1109/ICSE-Companion58688.2023.00046We present pytest-inline, the first inline testing framework for Python. We recently proposed inline tests to make it easier to test individual program statements. But, there is no framework-level support for developers to write inline tests in ...
- research-articleJuly 2023
JAttack: Java JIT Testing Using Template Programs
ICSE '23: Proceedings of the 45th International Conference on Software Engineering: Companion ProceedingsMay 2023, Pages 6–10https://doi.org/10.1109/ICSE-Companion58688.2023.00014We present JAttack, a framework that enables compiler testing using templates. JAttack allows compiler developers to write a template program that describes a set of concrete programs to be used to test compilers. Such a template-based approach ...
- research-articleJuly 2023
Learning Deep Semantics for Test Completion
ICSE '23: Proceedings of the 45th International Conference on Software EngineeringMay 2023, Pages 2111–2123https://doi.org/10.1109/ICSE48619.2023.00178Writing tests is a time-consuming yet essential task during software development. We propose to leverage recent advances in deep learning for text and code generation to assist developers in writing tests. We formalize the novel task of test ...
- research-articleNovember 2022
Parla: a Python orchestration system for heterogeneous architectures
- Hochan Lee,
- William Ruys,
- Ian Henriksen,
- Arthur Peters,
- Yineng Yan,
- Sean Stephens,
- Bozhi You,
- Henrique Fingler,
- Martin Burtscher,
- Milos Gligoric,
- Karl Schulz,
- Keshav Pingali,
- Christopher J. Rossbach,
- Mattan Erez,
- George Biros
SC '22: Proceedings of the International Conference on High Performance Computing, Networking, Storage and AnalysisNovember 2022, Article No.: 51, Pages 1–15Python's ease of use and rich collection of numeric libraries make it an excellent choice for rapidly developing scientific applications. However, composing these libraries to take advantage of complex heterogeneous nodes is still difficult. To simplify ...
- research-articleNovember 2022
Python-by-contract dataset
ESEC/FSE 2022: Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software EngineeringNovember 2022, Pages 1652–1656https://doi.org/10.1145/3540250.3558917Design-by-contract as a programming technique is becoming popular in Python community as various tools have been developed for automatically testing the code based on the contracts. However, there is no sufficiently large and representative Python ...
- research-articleJanuary 2023Distinguished Paper
Compiler Testing using Template Java Programs
ASE '22: Proceedings of the 37th IEEE/ACM International Conference on Automated Software EngineeringOctober 2022, Article No.: 23, Pages 1–13https://doi.org/10.1145/3551349.3556958We present JAttack, a framework that enables template-based testing for compilers. Using JAttack, a developer writes a template program that describes a set of programs to be generated and given as test inputs to a compiler. Such a framework enables ...
- research-articleJanuary 2023
CoditT5: Pretraining for Source Code and Natural Language Editing
ASE '22: Proceedings of the 37th IEEE/ACM International Conference on Automated Software EngineeringOctober 2022, Article No.: 22, Pages 1–12https://doi.org/10.1145/3551349.3556955Pretrained language models have been shown to be effective in many software-related generation tasks; however, they are not well-suited for editing tasks as they are not designed to reason about edits. To address this, we propose a novel pretraining ...
Inline Tests
ASE '22: Proceedings of the 37th IEEE/ACM International Conference on Automated Software EngineeringOctober 2022, Article No.: 57, Pages 1–13https://doi.org/10.1145/3551349.3556952Unit tests are widely used to check source code quality, but they can be too coarse-grained or ill-suited for testing individual program statements. We introduce inline tests to make it easier to check for faults in statements. We motivate inline tests ...
- research-articleOctober 2022
PyKokkos: performance portable kernels in Python
ICSE '22: Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion ProceedingsMay 2022, Pages 164–167https://doi.org/10.1145/3510454.3516827As modern supercomputers have increasingly heterogeneous hardware, the need for writing parallel code that is both portable and performant across different hardware architectures increases. Kokkos is a C++ library that provides abstractions for writing ...
- research-articleJuly 2022
Comparing and combining analysis-based and learning-based regression test selection
AST '22: Proceedings of the 3rd ACM/IEEE International Conference on Automation of Software TestMay 2022, Pages 17–28https://doi.org/10.1145/3524481.3527230Regression testing---rerunning tests on each code version to detect newly-broken functionality---is important and widely practiced. But, regression testing is costly due to the large number of tests and the high frequency of code changes. Regression ...
- research-articleJuly 2022
Comparing and combining file-based selection and similarity-based prioritization towards regression test orchestration
AST '22: Proceedings of the 3rd ACM/IEEE International Conference on Automation of Software TestMay 2022, Pages 115–125https://doi.org/10.1145/3524481.3527223Test case selection (TCS) and test case prioritization (TCP) techniques can reduce time to detect the first test failure. Although these techniques have been extensively studied in combination and isolation, they have not been compared one against the ...
- research-articleJune 2022
Dynamic generation of python bindings for HPC kernels
ASE '21: Proceedings of the 36th IEEE/ACM International Conference on Automated Software EngineeringNovember 2021, Pages 92–103https://doi.org/10.1109/ASE51524.2021.9678726Traditionally, high performance kernels (HPKs) have been written in statically typed languages, such as C/C++ and Fortran. A recent trend among scientists---prototyping applications in dynamic languages such as Python---created a gap between the ...