Jeff Tian's Research in Software Testing

Testing is an important activity within the software development process. It represents 1) great opportunities for delivering high quality software products to delighted customers, as well as 2) substantial share of the total development cost, typically exceeding 40% of the total.

Testing serves two main functions: 1) quality assurance as the direct goal, and 2) defect detection and removal as a side benefit of the activity. My interests are more closely identified with the former goal above, including the following research topics:

Testing Techniques and Applications

Testing can be done using different techniques depending how the testing model is constructed (black-box testing based on external specifications and white-box testing based on internal product information) and how test cases are generated and the test process is managed (coverage-based testing that attempts to cover as many states, transitions and paths as possible, as compared to usage-based testing that simulate the usage of some target customers) or executed (deterministic vs. random order).

My research focuses on usage-based, black-box, random testing, closely identified with reliability analysis and modeling, which are generally suitable for large software systems. With the wide-spread use of Internet and object technology, specific testing techniques that are applicable and effective for the web and OO software are some one of my key research interests in the testing area. This work is described in more detail in a dedicated page on usage-based statistical testing and applications.

Testing Tools

With the increasingly larger and more complex software systems being built today, automated tool support for testing is more a necessity than luxury. Test execution support and result checking are generally more product specific and can only be done with close collaboration with specific product groups.

My main interests in this area is to build new tools and enhance existing ones for test model construction and test case generation based on different techniques, and tools for test result analysis. This work is described in connection with statistical testing as well as integrated tools or tool suites for multiple purposes in connection with software measurement and analysis, reliability modeling.

Testing Management and Process Improvement

Recently, I have developed a new approach that combines testing progress tracking, reliability analysis, and tree-based risk identification and remedial actions in an integrated process. This approach aims at the optimal combination of maximized product quality and minimized cost and cycle-time.

This work is described in the following papers (you can also see the abstracts for some of these and other recent papers):

Testing Defect and Reliability Analysis

I am interested in defect analysis in conjunction with analysis of other software engineering data (see my research in software measurement and analysis) to help improve defect detection and removal efficiencies. On the quality assurance side, the main concern is the assessment, prediction, and control of various quality aspects of software products. The most important aspect is reliability, a measure of quality from a customer's perspective.

See more details about this topic in my related research: software reliability engineering and software measurement and analysis.


Prepared by Jeff Tian (tian@engr.smu.edu). Last update: May 1, 2003.

Back to Jeff Tian's home page