Research

Cogent

(Under the advisement of Dr. Bruce Childers and Dr. Daniel Mosse)

Publications

N/A

Links

Jazz

(Under the advisement of Dr. Bruce Childers and Dr. Mary Lou Soffa)

My research involves dynamic software testing through the use of fast breakpoints. Current applications include structural testing such as branch coverage, with new applications on the way. More information can be found by going to these websites:

http://www.cs.pitt.edu/copa/int3.html

http://www.cs.pitt.edu/copa/eclipse.html

or by contacting me.

Publications

Demand-driven structural testing with dynamic instrumentation
Jonathan Misurda, James Clause, Juliya L. Reed, Bruce R. Childers, Mary Lou Soffa
ACM SIGSOFT Int'l. Conference on Software Engineering (ICSE'05), May 2005

Abstract

Producing reliable and robust software has become one of the most important software development concerns in recent years. Testing is a process by which software quality can be assured through the collection of information about software. While testing can improve software reliability, current tools typically are inflexible and have high overheads, making it challenging to test large software projects. In this paper, we describe a new scalable and flexible framework for testing programs with a novel demand-driven approach based on execution paths to implement testing coverage. This technique uses dynamic instrumentation on the binary code that can be inserted and removed on-the-fly to keep performance and memory overheads low. We describe and evaluate implementations of the framework for branch, node and def-use testing of Java programs. Experimental results for branch testing show that our approach has, on average, a 1.6 speed up over static instrumentation and also uses less memory.

The paper is available online from the CoCo web site.

 

Instrumentation in Software Dynamic Translators for Self-Managed Systems
Naveen Kumar, Jonathan Misurda, Bruce R. Childers, and Mary Lou Soffa
ACM SIGSOFT Workshop on Self-Managed Systems, during the ACM SIGSOFT 2004 12th Int'l. Symp. on the Foundations of Software Engineering, October 31-November 1, 2004.

Abstract

Self-managed software requires monitoring and code changes to an executing program. One technology that enables such self management is software dynamic translation (SDT), which allows a program's execution to be intercepted and controlled by a separate software layer. SDT has been used to build many useful applications, including software security checkers that check for code vulnerabilities, dynamic code optimizers, and program introspection tools. While these systems use program instrumentation, the instrumentation is usually tailored to a specific application and infrastructure. What is missing is a single scalable and flexible instrumentation framework that can be used in different self-managed SDT infrastructures. In this paper, we describe such a framework, called FIST. that can be used and targeted by different algorithms and tools to enable instrumentation applications that are portable across SDTs and machine platforms. Our interface supports multiple levels of granularity from source level constructs to the instruction and machine level. We describe and evaluate FIST's capabilities in the Strata system for the SPARC and the Jikes Research Virtual Machine for Java on the Intel x86.

The paper is not yet available online

 

FIST: A framework for instrumentation in software dynamic translators
N. Kumar, J. Misurda, B. Childers, and M. L. Soffa
Department of Computer Science, Technical Report TR-03-106, September 2003.

Abstract

Software dynamic translators (SDT) typically monitor, profile, and affect the execution of a program. Such systems have been used to build many useful applications, including dynamic code optimizers for binary machine code and Java bytecode, software security checkers, binary translators, code profilers and program introspection tools. While all of these systems use program instrumentation, the instrumentation is usually tailored to a specific application and infrastructure. What is missing is a single scalable and flexible instrumentation framework that can be used in different SDT infrastructures. In this paper, we describe such a new framework, called "FIST," that can be used and targeted by different algorithms and tools to enable instrumentation applications that are portable across SDTs and machine platforms. Our interface supports multiple levels of granularity from source level constructs to the instruction and machine level. We demonstrate FIST's flexibility and evaluate it in the Strata SDT system for the SPARC and the Jikes Research Virtual Machine for Java on the Intel x86. To show the framework.s scalability, we describe new instrumentation applications to prototype dynamic optimization techniques and apply software tests to Java programs.

Paper is available online from the COPA web site

 

SoftTest: A framework for software testing of Java programs
B. R. Childers, M. L. Soffa, J. Beaver, L. Ber, K. Cammarata, T. Kane, J. Litman, and J. Misurda
Eclipse Technology Exchange Workshop during the ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'03), Anaheim, California, October 27, 2003.

Abstract

Producing reliable and robust software has become one of the most important software development concerns in recent years. Testing is a process by which software quality can be assured through the collection of information about software. While testing can improve software reliability, current tools typically are inflexible and have high overheads, making it challenging to test large software projects. In this paper, we describe a new scalable and flexible framework, called SoftTest, for testing Java programs with a novel path-based approach to coverage testing. We describe an initial implementation of the framework for branch coverage testing and demonstrate the feasibility of our approach.

Paper is available online from the COPA web site.

Links
Miscellany
ACM COPYRIGHT NOTICE.
"Copyright © 1999,2000,2001,2002,2003 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept., ACM, Inc., fax +1 (212) 869-0481, or permissions@acm.org."