Brittany Johnson

Brittany Johnson, Ph.D.

Postdoctoral Researcher, LASER

Amherst, MA

bjohnson@cs.umass.edu

(413) 461-0373


Skills

Empirical SE

90%

Human Factors

75%

Data Science

60%

Software Development

50%


Programming Languages

Java

Python

R



Projects

Fast Feedback Static 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. For this project, I conducted 20 interactive, participatory interviews with industry software developers in the hopes of learning how they use static analysis tools, what they expect from a static analysis tool and how current tools live up to these expectations.

Study Materials
Expressive and Scalable Tool Notifications

The goal of this research is to understand how expressive and scalable current tools are, how these traits can be increased, and how increased expressiveness and scalability affect a developer's ability to create software. For this project, I integrated this research with an intro level Java programming course at NC State (CSC216) and also conducted one-on-one sessions with students and expert developers. At the conclusion of this research, we hope to have a better understanding of how programmers with varying levels of expertise use and understand program analysis tool notifications and what can be done to alleviate any difficulties they may come across.

Study Materials
Augmenting Program Analysis Tool Intelligence

The goal of this research is to discover how to model programmer knowledge and use such a model to more effectively communicate with programmers. For this research, I am analyzing student and professional developer GitHub repositories, evaluate the effectiveness of notification adaptations, and evaluate the ability of my prototype to determine the appropriate adaptation for a given programmer. At the conclusion of this research, we hope to have be able to provide information, frameworks, and even tools that help developers interpret and resolve tool notifications.

Study Materials
Fairness and Causal Testing

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 a new testing discipline that will help developers identify, trace, and compare passing and failing test executions to build better, fairer software.

Publications

Conference Papers (Peer-Reviewed)
  • "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. [] []

Short Papers (Peer-Reviewed)
  • "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. (to appear) [] []
  • “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. [] []

Journal Papers (Peer-Reviewed)
  • “Comparing Approaches to Analyze Refactoring Activity on Software Repositories,” Soares, G., Gheyi, R., Murphy-Hill, E., Johnson, B. and Massoni, T., Journal of Systems and Software, 2013. [] []

Education

North Carolina State University
2011-2017

Doctor of Philosophy in Computer Science


College of Charleston
2007 - 2011

Bachelor of Arts in Computer Science