Rahul Kumar 0002

dblp:92/5081-2 · DBLP profile ↗
← Back
15ranked-venue papers
2as first author
1since 2021 · last 2021
—ORCID · conflict

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

Software engineering, systems software and programming languages · 11 · 2 first-author · 1 since 2021Theory of computation · 4 · 1 first-authorSystems, architecture and hardware · 2Computer networks · 2Artificial intelligence and machine learning · 1Databases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 1

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
9 papers
Software maintenance and evolution · 41% Software testing · 23% Debugging and program repair · 12%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Distributed systems · 72% Cloud and datacenter computing · 28%

Topics — the 21 heaviest of 25, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing
regression testing
0.512021
Data-driven test selection at scale · ESEC/SIGSOFT FSE 2021
Software testing › regression testing
test selection
0.512021
Data-driven test selection at scale · ESEC/SIGSOFT FSE 2021
Empirical software engineering › mining software repositories › version history analysis
co-change analysis
0.412020
Rex: Preventing Bugs and Misconfiguration in Large Services Using Correlated Change Analysis · NSDI 2020
Software maintenance and evolution
code change analysis
0.412020
Rex: Preventing Bugs and Misconfiguration in Large Services Using Correlated Change Analysis · NSDI 2020
Software maintenance and evolution › software configuration
misconfiguration detection
0.412020
Rex: Preventing Bugs and Misconfiguration in Large Services Using Correlated Change Analysis · NSDI 2020
Software maintenance and evolution
software configuration management
0.412020
Rex: Preventing Bugs and Misconfiguration in Large Services Using Correlated Change Analysis · NSDI 2020
Software maintenance and evolution
code review
0.412019
WhoDo: automating reviewer suggestions at scale · ESEC/SIGSOFT FSE 2019
Debugging and program repair
fault localization
0.412019
Orca: Differential Bug Localization in Large-Scale Services · USENIX ATC 2019
Software maintenance and evolution › code review
reviewer recommendation
0.412019
WhoDo: automating reviewer suggestions at scale · ESEC/SIGSOFT FSE 2019
Software testing › test optimization
test case reduction
0.412019
FastLane: test minimization for rapidly deployed large-scale online services · ICSE 2019
Debugging and program repair › fault localization
bug localization
0.312018
Orca: Differential Bug Localization in Large-Scale Services · OSDI 2018
Program analysis
static analysis
0.222013
The economics of static analysis tools · ESEC/SIGSOFT FSE 2013
The Static Driver Verifier Research Platform · CAV 2010
Data mining
anomaly detection
0.212014
Adtributor: Revenue Debugging in Advertising Systems · NSDI 2014
Empirical software engineering › software economics
software cost modeling
0.212013
The economics of static analysis tools · ESEC/SIGSOFT FSE 2013
Program analysis › static analysis
static analysis tools
0.212013
The economics of static analysis tools · ESEC/SIGSOFT FSE 2013
Software maintenance and evolution › release engineering
continuous integration
0.112021
Data-driven test selection at scale · ESEC/SIGSOFT FSE 2021
Program analysis › static analysis
interprocedural analysis
0.112012
Parallelizing top-down interprocedural analyses · PLDI 2012
Program analysis › static analysis
modular analysis
0.112012
Parallelizing top-down interprocedural analyses · PLDI 2012
Software maintenance and evolution › release engineering
continuous integration and deployment
0.112019
FastLane: test minimization for rapidly deployed large-scale online services · ICSE 2019
Distributed systems
fault tolerance
0.112014
Adtributor: Revenue Debugging in Advertising Systems · NSDI 2014
Program verification › model checking
software model checking
0.012012
Parallelizing top-down interprocedural analyses · PLDI 2012

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

machine learning · 0.8commit log analysis · 0.8test selection models · 0.5recommender systems · 0.4attribution analysis · 0.4empirical model · 0.2case study · 0.2top-down analysis · 0.1parallelization · 0.1bottom-up analysis · 0.1
YearPublicationVenuePosition
2021 Data-driven test selection at scale
abstract
Large-scale services depend on Continuous Integration/Continuous Deployment (CI/CD) processes to maintain their agility and code-quality. Change-based testing plays an important role in finding bugs, but testing after every change is prohibitively expensive at a scale where thousands of changes are committed every hour. Test selection models deal with this issue by running a subset of tests for every change.
Sonu Mehta, Farima Farmahinifarahani, Ranjita Bhagwan, Suraj Guptha, Sina Jafari, Rahul Kumar 0002, Vaibhav Saini, Anirudh Santhiar
ESEC/SIGSOFT FSE6
2020 Angelic Checking within Static Driver Verifier: Towards high-precision defects without (modeling) cost
abstract
Microsoft's Static Driver Verifier (SDV) pioneered the use of software model checking for ensuring that device drivers correctly use operating system (OS) APIs.However, the verification methodology has been difficult to extend in order to support either (a) new classes of drivers for which SDV does not already have a harness and stubs, or (b) memory-corruption properties.Any attempt to apply SDV out-of-the-box results in either false alarms due to the lack of environment modeling, or scalability issues when finding deeply nested bugs in the presence of a very large number of memory accesses.In this paper, we describe our experience designing and shipping a new class of checks known as angelic checks through SDV with the aid of angelic verification (AV) [1] technology, over a period of 4 years.AV pairs a precise inter-procedural assertion checker with automatic inference of likely specifications for the environment.AV helps compensate for the lack of environment modeling and regains scalability by making it possible to find deeply nested bugs, even for complex memorycorruption properties.These new rules have together found over a hundred confirmed defects during internal deployment at Microsoft, including several previously unknown high-impact potential security vulnerabilities.AV considerably increases the reach of SDV, both in terms of drivers as well as rules that it can support effectively.
Shuvendu K. Lahiri, Akash Lal, Sridhar Gopinath, Alexander Nutz, Vladimir Levin, Rahul Kumar 0002, Nate Deisinger, Jakob Lichtenberg, Chetan Bansal
FMCAD6
2020 Rex: Preventing Bugs and Misconfiguration in Large Services Using Correlated Change Analysis
Sonu Mehta, Ranjita Bhagwan, Rahul Kumar 0002, Chetan Bansal, Chandra Shekhar Maddila, Balasubramanyan Ashok, Sumit Asthana, Christian Bird
NSDI3
2019 FastLane: test minimization for rapidly deployed large-scale online services
abstract
Today, we depend on numerous large-scale services for basic operations such as email. These services, built on the basis of Continuous Integration/Continuous Deployment (CI/CD) processes, are extremely dynamic: developers continuously commit code and introduce new features, functionality and fixes. Hundreds of commits may enter the code-base in a single day. Therefore one of the most time-critical, yet resource-intensive tasks towards ensuring code-quality is effectively testing such large code-bases. This paper presents FastLane, a system that performs data-driven test minimization. FastLane uses light-weight machine-learning models built upon a rich history of test and commit logs to predict test outcomes. Tests for which we predict outcomes need not be explicitly run, thereby saving us precious test-time and resources. Our evaluation on a large-scale email and collaboration platform service shows that our techniques can save 18.04%, i.e., almost a fifth of test-time while obtaining a test outcome accuracy of 99.99%.
Adithya Abraham Philip, Ranjita Bhagwan, Rahul Kumar 0002, Chandra Shekhar Maddila, Nachiappan Nagappan
ICSE3
2019 WhoDo: automating reviewer suggestions at scale
abstract
Today's software development is distributed and involves continuous changes for new features and yet, their development cycle has to be fast and agile. An important component of enabling this agility is selecting the right reviewers for every code-change - the smallest unit of the development cycle. Modern tool-based code review is proven to be an effective way to achieve appropriate code review of software changes. However, the selection of reviewers in these code review systems is at best manual. As software and teams scale, this poses the challenge of selecting the right reviewers, which in turn determines software quality over time. While previous work has suggested automatic approaches to code reviewer recommendations, it has been limited to retrospective analysis. We not only deploy a reviewer suggestions algorithm - WhoDo - and evaluate its effect but also incorporate load balancing as part of it to address one of its major shortcomings: of recommending experienced developers very frequently. We evaluate the effect of this hybrid recommendation + load balancing system on five repositories within Microsoft. Our results are based around various aspects of a commit and how code review affects that. We attempt to quantitatively answer questions which are supposed to play a vital role in effective code review through our data and substantiate it through qualitative feedback of partner repositories.
Sumit Asthana, Rahul Kumar 0002, Ranjita Bhagwan, Christian Bird, Chetan Bansal, Chandra Shekhar Maddila, Sonu Mehta, Balasubramanyan Ashok
ESEC/SIGSOFT FSE2
2019 Orca: Differential Bug Localization in Large-Scale Services
Ranjita Bhagwan, Rahul Kumar 0002, Chandra Shekhar Maddila, Adithya Abraham Philip
USENIX ATC2
2018 Orca: Differential Bug Localization in Large-Scale Services
Ranjita Bhagwan, Rahul Kumar 0002, Chandra Shekhar Maddila, Adithya Abraham Philip
OSDI2
2016 CloudSDV Enabling Static Driver Verifier Using Microsoft Azure
Rahul Kumar 0002, Thomas Ball 0001, Jakob Lichtenberg, Nate Deisinger, Apoorv Upreti, Chetan Bansal
IFM1
2014 Online learning versus blended learning: an exploratory study
abstract
Due to the recent emergence of massive open online courses (MOOCs), students and teachers are gaining unprecedented access to high-quality educational content. However, many questions remain on how best to utilize that content in a classroom environment. In this small-scale, exploratory study, we compared two ways of using a recorded video lecture. In the online learning condition, students viewed the video on a personal computer, and also viewed a follow-up tutorial (a quiz review) on the computer. In the blended learning condition, students viewed the video as a group in a classroom, and received the follow-up tutorial from a live lecturer. We randomly assigned 102 students to these conditions, and assessed learning outcomes via a series of quizzes. While we saw significant learning gains after each session conducted, we did not observe any significant differences between the online and blended learning groups. We discuss these findings as well as areas for future work.
Balasubramanyan Ashok, Srinath Bala, Edward Cutrell, Naren Datha, Rahul Kumar 0002, Viraj Kumar, P. Madhusudan, Siddharth Prakash, Sriram K. Rajamani, Satish Sangameswaran, William Thies
L@S6
2014 MUX: algorithm selection for software model checkers
abstract
With the growing complexity of modern day software, software model checking has become a critical technology for ensuring correctness of software. As is true with any promising technology, there are a number of tools for software model checking. However, their respective performance trade-offs are difficult to characterize accurately – making it difficult for practitioners to select a suitable tool for the task at hand. This paper proposes a technique called MUX that addresses the problem of selecting the most suitable software model checker for a given input instance. MUX performs machine learning on a repository of software verification instances. The algorithm selector, synthesized through machine learning, uses structural features from an input instance, comprising a program-property pair, at runtime and determines which tool to use.
Varun Tulsian, Aditya Kanade 0001, Rahul Kumar 0002, Akash Lal, Aditya V. Nori
MSR3
2014 Adtributor: Revenue Debugging in Advertising Systems
Ranjita Bhagwan, Rahul Kumar 0002, Ramachandran Ramjee, George Varghese, Surjyakanta Mohapatra, Hemanth Manoharan, Piyush Shah
NSDI2
2013 The economics of static analysis tools
abstract
Static analysis tools have experienced a dichotomy over the span of the last decade. They have proven themselves to be useful in many domains, but at the same time have not (in general) experienced any notable concrete integration into a development environment. This is partly due to the inherent complexity of the tools themselves, as well as due to other intangible factors. Such factors usually tend to include questions about the return on investment of the tool and the value the tool provides in a development environment. In this paper, we present an empirical model for evaluating static analysis tools from the perspective of the economic value they provide. We further apply this model to a case study of the Static Driver Verier (SDV) tool that ships with the Windows Driver Kit and show the usefulness of the model and the tool.
Rahul Kumar 0002, Aditya V. Nori
ESEC/SIGSOFT FSE1
2012 Parallelizing top-down interprocedural analyses
abstract
Modularity is a central theme in any scalable program analysis. The core idea in a modular analysis is to build summaries at procedure boundaries, and use the summary of a procedure to analyze the effect of calling it at its calling context. There are two ways to perform a modular program analysis: (1) top-down and (2) bottomup. A bottom-up analysis proceeds upwards from the leaves of the call graph, and analyzes each procedure in the most general calling context and builds its summary. In contrast, a top-down analysis starts from the root of the call graph, and proceeds downward, analyzing each procedure in its calling context. Top-down analyses have several applications in verification and software model checking. However, traditionally, bottom-up analyses have been easier to scale and parallelize than top-down analyses.
Aws Albarghouthi, Rahul Kumar 0002, Aditya V. Nori, Sriram K. Rajamani
PLDI2
2010 The Static Driver Verifier Research Platform
Thomas Ball 0001, Ella Bounimova, Vladimir Levin, Rahul Kumar 0002, Jakob Lichtenberg
CAV4
2010 SLAM2: Static driver verification with under 4% false alarms
Thomas Ball 0001, Ella Bounimova, Rahul Kumar 0002, Vladimir Levin
FMCAD3