Home Research Publications Teaching
Brittany Johnson

Brittany Johnson, Ph.D.

Assistant Professor
Dept. of Computer Science
George Mason University

Fairfax, VA


(413) 461-0373

Interested in working with me as a student researcher or collaborating on a project? Feel free to contact me! Read more about the kind of work I do below.


Fairness, Transparency, and Accountability in AI Systems

Advances in machine learning have led to advances in the software and services we build and provide. However, despite ethical concerns that come with these advances, such as software fairness, our approach to building software has remained relatively the same. The goal of this research is to explore and improve ethical software development tools and practices.

Themis: Automatically testing software for discrimination (tool)
fairkit-learn: a machine learning model toolkit (tool)
Root Cause Debugging

Software testing is one method developers use to improve software quality and versatility. Current testing approaches help developers write and run tests, and may even present correlations to test failures. However, they do not attempt to point out the cause of a given test failure or unexpected result. The goal of this research is to create new testing techniques and tools that will help developers identify, trace, and compare passing and failing test executions and remove software defects.

Holmes: A Causal Testing Prototype (tool and user study materials)
Effects of Work Environments on Productivity

The physical work environment of software engineers can have various effects on their satisfaction and the ability to get the work done. The goal of this research is to explore the work environments technical workers are in and how those environments affect their productivity. For this research, I analyze various types of work environments and various environmental factors that can, and have, had an effect on productivity as well as the relationship between satisfaction with work environment and productivity. We provide concrete, actionably results that can be applied in real world setting, as well as drive further research on improving developer productivity

The Effect of Work Environments on Productivity & Satisfaction of Software Engineers (Study Materials)
Evaluating & Improving Program Analysis Tools

Building quality software products, with as few defects as possible, is an important goal for software developers. Static analysis tools have the potential to provide quick feedback to developers, helping them to eliminate defects early in the development process, when they are cheap to fix. Despite the potential benefits of using these tools, developers end up spending a lot of time figuring out the context of the defect and how to fix it and therefore do not make frequent use of these tools. Our research aims to find out why developers are or are not using static analysis tools and how we can help make using these tools easier and more efficient for the developer. One direction for improvement my research is exploring is the ability to use programmer knowledge and experience to improve tool output.

Why Don't Developers Use Static Analysis
A Cross-Tool Communication Study on Program Analysis Tool Notifications (Study Materials)