my research interests

my research interests include component techniques, testing, and innovative teaching...
Automated Software Testing Research PDF Print E-mail

My current research activities include work in automated software testing and in providing built-in test support for software components.

Software testing is the process of exercising a piece of software (large or small) in a way that is likely to reveal defects through its (mis)behavior. It is viewed as boring, tedious, and uncreative by practitioners and receives little formal treatment in undergraduate programs. Practical techniques for automating aspects of this quality assurance mechanism are sought after, and can have significant impact once proven effective.

My early interest in design approaches that promote quality has expanded to encompass assessment techniques, including software testing. I have developed an automated approach for generating test cases, empirically investigated its effectiveness, and supervised an M.S. student who documented an easy manual method that programmers can use to generate comprehensive sets of tests for their own software.

Because of my interest in software components, I am also concerned with how component authors can package and distribute the software tests they create during development for use by their customers. If you are purchasing components to build a larger application, then buying a component that comes along with a set of its own tests may make it easier for you to test it in situ once you have connected it to other parts of your specific application.

This unsolved problem is growing in importance as the component marketplace expands, and was cited as a key research goal by Mary Jean Harrold as she laid out a roadmap for future testing research in an invited talk at a recent international conference. As part of my ongoing research, I am investigating packaging mechanisms that will allow a component developer to distribute software test cases and the infrastructure necessary to assess proper behavior as part of a traditional code library. This mechanism also allows the component provider to distribute run-time monitoring code that continuously watches the software as it runs, looking for internal failures. Unlike existing approaches, the new approach I have developed allows such run-time monitoring code to be distributed in compiled form, rather than requiring the vendor to make program source code available?a critical feature when considering commercially distributed software. Finally, I have devised a strategy for combining these elements into a built-in self-test capability that a component vendor can bundle with their products. With this technology, a component-aware development environment could allow a programmer to visually combine several components together, and then have one-click access to run self-tests on the assembled product using the pre-bundled tests provided for each component being used. My work in software testing has resulted in two journal articles, one conference paper, and four workshop papers.

{content:include title_alias="BITWiki" show="complete"/}

Related Publications

Student Research Projects and Opportunities

Nothing related