Abhijeet Banerjee

dblp:131/0481 · DBLP profile ↗
← Back
5ranked-venue papers
5as first author
0since 2021 · last 2018
0000-0003-1441-4995ORCID · corroborated

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

Software engineering, systems software and programming languages · 3 · 3 first-authorSystems, architecture and hardware · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 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
4 papers
Software testing · 54% Program analysis · 28% Debugging and program repair · 18%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Energy-efficient computing · 47% Embedded and real-time systems · 27% Memory systems · 27%

Topics — the 10 heaviest of 12, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.422014
Static analysis driven performance and energy testing · SIGSOFT FSE 2014
Static Analysis Driven Cache Performance Testing · RTSS 2013
Software testing › fault detection
energy bug detection
0.312018
EnergyPatch: Repairing Resource Leaks to Improve Energy-Efficiency of Android Apps · IEEE Trans. Software Eng. 2018
Debugging and program repair
program repair
0.312018
EnergyPatch: Repairing Resource Leaks to Improve Energy-Efficiency of Android Apps · IEEE Trans. Software Eng. 2018
Software testing
test generation
0.222014
Detecting energy bugs and hotspots in mobile apps · SIGSOFT FSE 2014
Static Analysis Driven Cache Performance Testing · RTSS 2013
Software testing › test generation
automated test generation
0.212014
Detecting energy bugs and hotspots in mobile apps · SIGSOFT FSE 2014
Program analysis › static analysis
cache analysis
0.212013
Static Analysis Driven Cache Performance Testing · RTSS 2013
Memory systems › cache
cache behavior
0.212013
Static Analysis Driven Cache Performance Testing · RTSS 2013
Embedded and real-time systems
real-time software
0.212013
Static Analysis Driven Cache Performance Testing · RTSS 2013
Energy-efficient computing › mobile device energy management
mobile app energy efficiency
0.112018
EnergyPatch: Repairing Resource Leaks to Improve Energy-Efficiency of Android Apps · IEEE Trans. Software Eng. 2018
Software testing
mobile application testing
0.112014
Detecting energy bugs and hotspots in mobile apps · SIGSOFT FSE 2014

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

static analysis · 1.0dynamic analysis · 1.0test case generation · 0.7automated test generation · 0.4static cache analysis · 0.3dynamic test generation · 0.3WCET analysis · 0.3
YearPublicationVenuePosition
2018 EnergyPatch: Repairing Resource Leaks to Improve Energy-Efficiency of Android Apps
abstract
Increased usage of mobile devices, such as smartphones and tablets, has led to widespread popularity and usage of mobile apps. If not carefully developed, such apps may demonstrate energy-inefficient behaviour, where one or more energy-intensive hardware components (such as Wifi, GPS, etc) are left in a high-power state, even when no apps are using these components. We refer to such kind of energy-inefficiencies as energy bugs. Executing an app with an energy bug causes the mobile device to exhibit poor energy consumption behaviour and a drastically shortened battery life. Since mobiles apps can have huge input domains, therefore exhaustive exploration is often impractical. We believe that there is a need for a framework that can systematically detect and fix energy bugs in mobile apps in a scalable fashion. To address this need, we have developed EnergyPatch, a framework that uses a combination of static and dynamic analysis techniques to detect, validate and repair energy bugs in Android apps. The use of a light-weight, static analysis technique enables EnergyPatch to quickly narrow down to the potential program paths along which energy bugs may occur. Subsequent exploration of these potentially buggy program paths using a dynamic analysis technique helps in validations of the reported bugs and to generate test cases. Finally, EnergyPatch generates repair expressions to fix the validated energy bugs. Evaluation with real-life apps from repositories such as F-droid and Github, shows that EnergyPatch is scalable and can produce results in reasonable amount of time. Additionally, we observed that the repair expressions generated by EnergyPatch could bring down the energy consumption on tested apps up to 60 percent.
Abhijeet Banerjee, Lee Kee Chong, Clément Ballabriga, Abhik Roychoudhury
IEEE Trans. Software Eng.1
2014 Static analysis driven performance and energy testing
abstract
Software testing is the process of evaluating the properties of a software. Properties of a software can be divided into two categories: functional properties and non-functional properties. Properties that influence the input-output relationship of the software can be categorized as functional properties. On the other hand, properties that do not influence the input-output relationship of the software directly can be categorized as non-functional properties. In context of real-time system software, testing functional as well as non functional properties is equally important. Over the years considerable amount of research effort has been dedicated in developing tools and techniques that systematically test various functional properties of a software. However, the same cannot be said about testing non-functional properties. Systematic testing of non-functional properties is often much more challenging than testing functional properties. This is because non-functional properties not only depends on the inputs to the program but also on the underlying hardware. Additionally, unlike the functional properties, nonfunctional properties are seldom annotated in the software itself. Such challenges provide the objectives for this work. The primary objective of this work is to explore and address the major challenges in testing non-functional properties of a software.
Abhijeet Banerjee
SIGSOFT FSE1
2014 Detecting energy bugs and hotspots in mobile apps
abstract
Over the recent years, the popularity of smartphones has increased dramatically. This has lead to a widespread availability of smartphone applications. Since smartphones operate on a limited amount of battery power, it is important to develop tools and techniques that aid in energy-efficient application development. Energy inefficiencies in smartphone applications can broadly be categorized into energy hotspots and energy bugs. An energy hotspot can be described as a scenario where executing an application causes the smartphone to consume abnormally high amount of battery power, even though the utilization of its hardware resources is low. In contrast, an energy bug can be described as a scenario where a malfunctioning application prevents the smartphone from becoming idle, even after it has completed execution and there is no user activity. In this paper, we present an automated test generation framework that detects energy hotspots/bugs in Android applications. Our framework systematically generates test inputs that are likely to capture energy hotspots/bugs. Each test input captures a sequence of user interactions (e.g. touches or taps on the smartphone screen) that leads to an energy hotspot/bug in the application. Evaluation with 30 freely-available Android applications from Google Play/F-Droid shows the efficacy of our framework in finding hotspots/bugs. Manual validation of the experimental results shows that our framework reports reasonably low number of false positives. Finally, we show the usage of the generated results by improving the energy-efficiency of some Android applications.
Abhijeet Banerjee, Lee Kee Chong, Sudipta Chattopadhyay 0001, Abhik Roychoudhury
SIGSOFT FSE1
2013 Precise micro-architectural modeling for WCET analysis via AI+SAT
abstract
Hard real-time systems are required to meet critical deadlines. Worst case execution time (WCET) is therefore an important metric for the system level schedulability analysis of hard real-time systems. However, performance enhancing features of a processor (e.g. pipeline, caches) makes WCET analysis a very difficult problem. In this paper, we propose a novel approach to combine abstract interpretation (AI) and satisfiability (SAT) checking (hence the name AI+SAT) for different varieties of micro-architectural modeling. Our work in this paper is inspired by the research advances in program flow analysis(e.g. infeasible path analysis). We show that the accuracy of WCET estimates can be improved in a scalable fashion by using SAT checkers to integrate infeasible path analysis results into micro-architectural modeling. Our modeling is implemented on top of the Chronos WCET analysis tool and we improve the accuracy of WCET estimates for instruction cache, data cache, branch predictors and shared caches.
Abhijeet Banerjee, Sudipta Chattopadhyay 0001, Abhik Roychoudhury
IEEE Real-Time and Embedded Technology and Applications Symposium1
2013 Static Analysis Driven Cache Performance Testing
abstract
Real-time, embedded software are constrained by several non-functional requirements, such as timing. With the ever increasing performance gap between the processor and the main memory, the performance of memory subsystems often pose a significant bottleneck in achieving the desired performance for a real-time, embedded software. Cache memory plays a key role in reducing the performance gap between a processor and main memory. Therefore, analyzing the cache behaviour of a program is critical for validating the performance of an embedded software. In this paper, we propose a novel approach to automatically generate test inputs that expose the cache performance issues to the developer. Each such test scenario points to the specific parts of a program that exhibit anomalous cache behaviour along with a set of test inputs that lead to such undesirable cache behaviour. We build a framework that leverages the concepts of both static cache analysis and dynamic test generation to systematically compute the cache-performance stressing test inputs. Our framework computes a test-suite which does not contain any false positives. This means that each element in the test-suite points to a real cache performance issue. Moreover, our test generation framework provides an assurance of the test coverage via a well-formed coverage metric. We have implemented our entire framework using Chronos worst case execution time (WCET) analyzer and LLVM compiler infrastructure. Several experiments suggest that our test generation framework quickly converges towards generating cache-performance stressing test cases. We also show the application of our generated test-suite in design space exploration and cache performance optimization.
Abhijeet Banerjee, Sudipta Chattopadhyay 0001, Abhik Roychoudhury
RTSS1