Ishan Banerjee
VMware
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Ishan Banerjee.
automated software engineering | 2003
Atif M. Memon; Ishan Banerjee; Adithya Nagarajan
Test designers widely believe that the overall effectiveness and cost of software testing depends largely on the type and number of test cases executed on the software. In this paper we show that the test oracle used during testing also contributes significantly to test effectiveness and cost. A test oracle is a mechanism that determines whether software executed correctly for a test case. We define a test oracle to contain two essential parts: oracle information that represents expected output; and an oracle procedure that compares the oracle information with the actual output. By varying the level of detail of oracle information and changing the oracle procedure, a test designer can create different types of test oracles. We design 11 types of test oracles and empirically compare them on four software systems. We seed faults in software to create 100 faulty versions, execute 600 test cases on each version, for all 11 types of oracles. In all, we report results of 660,000 test runs on software. We show (1) the time and space requirements of the oracles, (2) that faults are detected early in the testing process when using detailed oracle information and complex oracle procedures, although at a higher cost per test case, and (3) that employing expensive oracles results in detecting a large number of faults using relatively smaller number of test cases.
automated software engineering | 2014
Bao N. Nguyen; Bryan Robbins; Ishan Banerjee; Atif M. Memon
Most of today’s software applications feature a graphical user interface (GUI) front-end. System testing of these applications requires that test cases, modeled as sequences of GUI events, be generated and executed on the software. We term GUI testing as the process of testing a software application through its GUI. Researchers and practitioners agree that one must employ a variety of techniques (e.g., model-based, capture/replay, manually scripted) for effective GUI testing. Yet, the tools available today for GUI testing are limited in the techniques they support. In this paper, we describe an innovative tool called GUITAR that supports a wide variety of GUI testing techniques. The innovation lies in the architecture of GUITAR, which uses plug-ins to support flexibility and extensibility. Software developers and quality assurance engineers may use this architecture to create new toolchains, new workflows based on the toolchains, and plug in a variety of measurement tools to conduct GUI testing. We demonstrate these features of GUITAR via several carefully crafted case studies.
international symposium on software reliability engineering | 2012
Stephan Arlt; Andreas Podelski; Cristiano Bertolini; Martin Schäf; Ishan Banerjee; Atif M. Memon
GUI testing is an active research area. The open challenge is the judicious generation of event sequences (an event sequence encodes a user interaction). A major advance in this direction is the use of a black-box model to systematically generate event sequences that are executable on the GUI. The black-box model can be, e.g., an Event Flow Graph (EFG) or an Event Sequence Graph (ESG). In this paper we propose a new approach to select relevant event sequences among the event sequences generated by a black-box model. We express the relevance of an event sequence by a precisely defined dependency between a fixed number of events in the event sequence. Departing from a pure black-box approach we apply a static analysis to the byte code of the application. This allows us to infer a dependency graph, which we call Event Dependency Graph (EDG). We use the EDG together with a black-box model to construct a set of relevant event sequences among the executable ones. We have implemented our approach in a new tool. We evaluate the approach on four open source GUI applications. With the specific choice of a lightweight static analysis, the approach scales to large applications and, at the same time, leads to an informed selection of event sequences. Using our approach we are able to find previously undetected bugs.
Advances in Computers | 2017
Ishan Banerjee
The Graphical User Interface (GUI) is an integral component of contemporary computer software. A stable and reliable GUI is necessary for correct functioning of software applications. Comprehensive verification of the GUI is a routine part of most software development life cycles. The input space of a GUI is typically large, making exhaustive verification difficult. GUI defects are often revealed by exercising parts of the GUI that interact with each other. In recent years, model-based methods, which target specific GUI interactions, have been developed. These methods create a formal model of the GUIs input space from specification of the GUI, visible GUI behaviors and static analysis of the GUIs program code, and dynamic analysis of interactions between the GUI and its program code. This chapter discusses recent advances in testing GUI-based software. It describes techniques that generate testcases for GUI-based applications. Some popular methods are described, specifically ones that create a model of the GUI and generate testcases based on the GUI model.
Archive | 2016
Ishan Banerjee
Title of Dissertation: EVENT-CODE INTERACTION DIRECTED TEST CASES Ishan Banerjee, Doctor of Philosophy, 2016 Dissertation directed by: Professor Atif M. Memon, Department of Computer Science The Graphical User Interface (GUI) is an integral component of contemporary computer software. A stable and reliable GUI is necessary for correct functioning of software applications. Comprehensive verification of the GUI is a routine part of most software development life-cycles. The input space of a GUI is typically large, making exhaustive verification difficult. GUI defects are often revealed by exercising parts of the GUI that interact with each other. It is challenging for a verification method to drive the GUI into states that might contain defects. In recent years, model-based methods, that target specific GUI interactions, have been developed. These methods create a formal model of the GUI’s input space from specification of the GUI, visible GUI behaviors and static analysis of the GUI’s program-code. GUIs are typically dynamic in nature, whose user-visible state is guided by underlying program-code and dynamic program-state. This research extends existing model-based GUI testing techniques by modelling interactions between the visible GUI of a GUI-based software and its underlying program-code. The new model is able to, efficiently and effectively, test the GUI in ways that were not possible using existing methods. The thesis is this: Long, useful GUI testcases can be created by examining the interactions between the GUI of a GUI-based application and its program-code. To explore this thesis, a model-based GUI testing approach is formulated and evaluated. In this approach, program-code level interactions between GUI event handlers will be examined, modelled and deployed for constructing long GUI testcases. These testcases are able to drive the GUI into states that were not possible using existing models. Implementation and evaluation has been conducted using GUITAR, a fully-automated, open-source GUI testing framework. EVENT-CODE INTERACTION DIRECTED TEST CASES
working conference on reverse engineering | 2003
Atif M. Memon; Ishan Banerjee; Adithya Nagarajan
international conference on software maintenance | 2003
Atif M. Memon; Ishan Banerjee; Nada Hashmi; Adithya Nagarajan
Information & Software Technology | 2013
Ishan Banerjee; Bao N. Nguyen; Vahid Garousi; Atif M. Memon
Archive | 2010
Yury Baskakov; Alexander Thomas Garthwaite; Jesse Pool; Carl A. Waldspurger; Rajesh Venkatasubramanian; Ishan Banerjee
virtual execution environments | 2015
Fei Guo; Seongbeom Kim; Yury Baskakov; Ishan Banerjee