Current Projects

Development of a Software Quality Analysis Tool

Project Participants: David Rice, Thane Richard

For guidance on implementing this software, visit the Documentation page

Testing Deep Neural Network (MLP architecture) for Disease Type Prediction

Project Participants: Faqeer Rehman

It is very challenging to test Machine Learning (ML) systems that learn from the data where we don’t know the correct answer. Due to the absence of test oracle, one way to test these applications is to use the Metamorphic testing technique. I am currently working on applying the metamorphic relations (MRs) on the DNN based system (MLP architecture with regularization, having 5 layers) that learns and predicts cancer type given patient somatic SNPs data. These MRs are originally proposed by Xiaoyuan Xie in the paper ( for testing ML-based systems. The main goal of my study is to identify how the metamorphic testing technique can be effectively used to identify faults in systems having non-deterministic nature like DNNs.

PIQUE Software Quality Analysis Tool

Project Participants: David Rice, Thane Richard

PIQUE, or Platform for Investigative Software Quality Understanding and Evaluation, is a software quality analysis tool with intent and design changes off of the QATCH model. For a more detailed introduction and building/running instructions, visit the PIQUE GitHub page.

PIQUE-CSHARP uses the PIQUE QA platform to derive a quality model and run quality assessment. The PIQUE-CSHARP GitHub page can be found here.

Past Projects

Decay, Grime and Technical Debt

Project Participants: Isaac Griffith, Derek Reimanis

Analysis of the Structural and Behavioral Characteristics of Design Patterns

Project Participants: Derek Reimanis

We are working towards a more complete understanding of the structural properties and vulnerabilities associated with design patterns. These vulnerabilities are manifested as design pattern grime and design pattern rot. Through a more complete understanding we intend to identify methods by which we can assign a technical debt value to the identified vulnerabilities in a design pattern instantiation.

Along with technical debt measurement associated with design pattern issues we are also interested in the use of refactoring as a means to reduce or remove these debts, the development of simulation techniques to artificially insert grime and rot into pattern instances, and the development of a taxonomy that addresses the types of debts associated with design patterns.

Along this path we will be developing several tools which will help automate the data collection process as well as form a base set of empirical software engineering tools for researchers.