Brittany Johnson

Brittany Johnson, Ph.D.

Postdoctoral Researcher, LASER

Amherst, MA

bjohnson@cs.umass.edu

(413) 461-0373



BLACK LIVES MATTER

Black in Computing: An Open Letter & Call to Action for the Computing Community


Want to help? Here's some ways you can:

Gamer Bundle for Racial Justice and Equality
Petition for racial data on coronavirus
Sign other racial justice and equity related petitions
Make donations (there's ways that don't require money!)


If nothing else, educate yourself. Like movies? Check out Netflix for films on racial injustice and the Black experience. Also, Google (please don't expect us to do it for you).
If you're non-Black, listen and don't criticize.
Be our allies not just in emails and private meetings, but in public and loudly.

The fight is far from over.

About Me

I am a Postdoctoral Fellow in the College of Information and Computer Sciences at the University of Massachusetts Amherst. In Fall 2020, I will be joining the faculty in the Department of Computer Science at George Mason University.

I received my Ph.D. in Computer Science from North Carolina State University (2017), after getting my B.A. in Computer Science from the College of Charleston (2011). My research focuses on improving developer productivity and satisfaction through evaluating and improving the tools and processes they use to develop software. My current focus is on software fairness and ethical software engineering practices. My research is interdisciplinary, cross-cutting with research in software engineering, human-computer interaction, and machine learning.

Outside of work, I enjoy doing anything that allows me to be creative. From painting on canvas to painting my nails, I love to express myself! I also have a passion for mentoring and encouraging others to reach for the stars (while never forgetting who you are or where you started).

Projects

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)

Publications

Conference Papers (Peer-Reviewed)
  • "Causal Testing: Understanding Defects' Root Causes," Johnson, B., Brun, Y., Meliou, A., 42nd International Conference on Software Engineering , 2020.[]
    ACM SIGSOFT Distinguished Artifact Award
  • "A Cross-Tool Communication Study on Program Analysis Tool Notifications," Johnson, B., Pandita, R., Smith, J., Ford, D., Elder, S., Murphy-Hill, E., Heckman, S., Sadowski, C., 24th International Symposium on the Foundations of Software Engineering, Seattle, WA, November 2016.[] []
  • "From Quick Fixes to Slow Fixes: Reimagining Static Analysis Resolutions to Enable Design Space Exploration," Barik, T., Song, Y., Johnson, B., Murphy-Hill, E., 32nd International Conference on Software Maintenance and Evolution, Raleigh, NC, October 2016. [] []
  • "Questions Developers Ask While Diagnosing Potential Security Vulnerabilities with Static Analysis," Smith, J., Johnson, B., Murphy-Hill, E., Chu, B., Lipford, H., 23rd International Symposium on the Foundations of Software Engineering, Bergamo, Italy, September 2015. [] []
  • "Why Don't Software Developers Use Static Analysis Tools to Find Bugs?," Johnson, B., Song, Y., Murphy-Hill, E., Bowdidge, R., 35th International Conference on Software Engineering, San Francisco, California, May 2013. [] []

Journal Papers (Peer-Reviewed)
  • "The Effect of Work Environments on Productivity and Satisfaction of Software Engineers," Johnson, B., Zimmermann, T., and Bird, C., IEEE Transactions on Software Engineering, March 2019.[] []
  • "How Developers Diagnose Potential Security Vulnerabilities with a Static Analysis Tool," Smith, J., Johnson, B., Murphy-Hill, E., Chu, B., Lipford, H., IEEE Transactions on Software Engineering, February 2018. [] []

Short Papers (Peer-Reviewed)
  • "Themis: Automatically testing software for discrimination," Angell, R., Johnson, B., Brun, Y., and Meliou, A., International Symposium on the Foundations of Software Engineering (FSE), Orlando, FL, November 2018. [] []
  • "Evaluating How Static Analysis Tools Can Reduce Code Review Effort," Singh, D., Ramachandra, V., Stolee, K., and Johnson, B., IEEE Symposium on Visual Languages and Human Centric Computing (VL/HCC), Raleigh, NC, October 2017. [] []
  • “Adapting Program Analysis Tool Notifications to the Individual Developer,” Johnson, B., IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Graduate Consortium, Atlanta, Georgia, October 2015. [] []
  • “Bespoke Tools: Adapted to the Concepts Developers Know,” Johnson B., Pandita, R., Murphy-Hill, E., Heckman, S., 22nd International Symposium on the Foundations on Software Engineering, New Ideas and Emerging Results Track, September 2015. [] []
  • “I Heart Hacker News: Expanding Qualitative Research Findings by Analyzing Social News Websites,” Barik, T., Johnson, B., Murphy-Hill, E., 22nd International Symposium on the Foundations on Software Engineering, New Ideas and Emerging Results Track, September 2015. [] []
  • “Compiler Error Messages Revisited: An interaction-first approach for helping developers more effectively comprehend and resolve compiler error messages,” Barik, T., Witschey, J., Johnson, B., Murphy-Hill, E., 36th International Conference on Software Engineering, New Ideas and Emerging Results Track, Hyderabad, India, May 2014. [] []
  • “Designing Interventions to Persuade Software Developers to Adopt Security Tools,” Jordan, B., Johnson, B., Witschey, J., Murphy-Hill, E., CCS Workshop on Security Information Workers, Scottsdale, Arizona, November 2014. [] []
  • “Enhancing Tools’ Intelligence for Improved Program Analysis Tool Usability,” Johnson, B., IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Graduate Consortium, Melbourne, Australia, July 2014. [] []

Education

North Carolina State University
2011-2017

Doctor of Philosophy in Computer Science

A Tool (Mis)communication Theory and Adaptive Approach for Supporting Developer Tool Use [] []


College of Charleston
2007 - 2011

Bachelor of Arts in Computer Science