Increasing software sophistication in everything from mobiles phones and computers to vehicles, and smart appliances offers greater convenience and capabilities to consumers. Advances in technology also give way to software bugs that are increasingly difficult to find and fix. Jeremy Bradbury, PhD, Associate Professor and Graduate Program Director of Computer Science, leads Canada’s first research into automatic bug detection and repair. He heads UOIT’s Software Quality Research Lab, and has developed algorithms to automatically locate the most likely places in code where a bug exists, then modify the program to ensure the software continues to perform optimally.
A software testing and analysis expert, Dr. Bradbury’s research success means that his work remains undetected and is aimed at automatic repair of concurrency bugs, analysis of open source projects, learning debugging through games, prediction of mutation scores, testing of concurrent software using clone detection, and visualization of thread interleavings.
Many of today’s computers still run software that was written over a decade ago. Despite the release of faster processors, outdated software slows down overall computer use. Dr. Bradbury’s core research focuses on improving the quality of multicore processors to enable concurrent software to operate more efficiently. He also co-developed UOIT’s Human-Centred Computing Lab, designed for conducting controlled experiments that allow researchers to better understand and evaluate how people interact with leading-edge computer technology.
Dr. Bradbury joined UOIT 2007 as an Assistant Professor, and was appointed Undergraduate Program Director of Computer Science from 2011-13 where he developed a Computer Science program relevant to current technology and related to industry application and partners. For his work, he was named Associate Professor in 2013. In the classroom, Dr. Bradbury uses innovative technology and online platforms such as Slack and YouTube to engage students in computer science education.
Fascinated by the nature of problem-solving and computer-based applications, Dr. Bradbury received his Bachelor of Science in Computer Science and Mathematics, First Class Honours with Distinction in 2000 from Mount Allison University in Sackville, New Brunswick. He earned his Master of Science in Computing and Information Science and his Doctorate in Computer Science both from Queen’s University in Kingston in 2002 and 2007, respectively.
Industry Expertise (4)
Areas of Expertise (12)
Software Quality Assurance
Software Model Checking
Empirical Software Engineering
Teaching Representative, UOIT Board of Governors (professional)
Dr. Bradbury has been elected as a Teaching Representative on UOIT's Board of Governors for a three-year term from 2015-18.
RAISE 2012 Best Paper Award (professional)
Dr. Bradbury received the award for his paper Predicting Mutation Score Using Source Code and Test Suite Metrics, at the Workshop on Realizing Artificial Intelligence Synergies in Software Engineering.
Consortium for Software Enginnering Research (CSER) 2011 Best Poster Award (professional)
Awarded one of three Best Poster Awards at the 2011 CSER Fall Meeting for his work Eclipticon: Eclipse Plugin for Concurrency Testing.
SoftVis’10 Best Poster Award (professional)
Dr. Bradbury received this award for his poster An Interactive Visualization of Thread Interleavings at the 5th ACM Symposium on Software Visualization (SoftVis'10).
School of Computing Award for Excellence in Teaching Assistance (professional)
Dr. Bradbury received this award for his contributions to teaching at Queen's University from 2002-03.
Ian A. Macleod Award (personal)
Given to the graduate student who has made the greatest contribution to the intellectual and social spirit of the School of Computing, Queen's University, 2002-03
Queen's University: PhD, Computer Science 2007
Queen's University: MSc, Computing and Information Science 2002
Mount Allison University: BSc, Computer Science and Mathematics 2000
First Class Honours with Distinction
- Association of Computing Machinery (ACM)
- ACM Special Interest Group on Software Engineering
- Institute of Electrical & Electronics Engineers (IEEE)
- IEEE Computer Society
- Consortium of Software Engineering
Event Appearances (4)
Automatically Repairing Concurrency Bugs with ARC
1st International Conference on Multicore Software Engineering, Performance, and Tools Saint Petersburg, Russia
Effectively Using Search-Based Software Engineering Techniques Within Model Checking and its Applications
2013 1st International Workshop on Combining Modelling and Search-Based Software Engineering San Francisco, California
Using Combinatorial Benchmark Construction to Improve the Assessment of Concurrency Bug Detection Tools
International Symposium on Software Testing and Analysis Minneapolis, Minnesota
Predicting Mutation Score Using Source Code and Test Suite Metrics
2012 First International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering Zurich, Switzerland
Research Grants (2)
Testing and Analysis of Concurrent and Heterogeneous Computing Software
NSERC Discovery Grant $75000
This collaborative five-year research grant expands upon previous research in software testing and analysis in several key areas. This project aims to improve the quality of concurrent and heterogeneous (multicore + manycore) software, and develop better tools to improve the speed and accuracy of assessing this software through automatic testing and analysis techniques. Another key area of this project builds on creating enhanced algorithms for automatic bug detection and repair, as well as automatic debugging in which an algorithm can automatically locate code with the highest probability for a bug to exist.
Laboratory for Human-Centred Computer Science Research
Canada Foundation for Innovation Leaders Opportunity Fund $21152
Dr. Bradbury is principal investigator of this research in UOIT’s Human-Centred Control (HCC) Lab, which was designed for conducting controlled experiments that allow researchers to better understand and evaluate how people interact with leading-edge computer technology. Research in this lab falls under three main themes: information visualization, software engineering and computer security. In all three themes, a novel research approach focuses on the usability perspective of innovative prototypes and tools in new and emerging environments (e.g., mobile devices, large touch displays).
Wireless Sensor Networks (WSNs) monitor environment phenomena and in some cases react in response to the observed phenomena. The distributed nature of WSNs and the interaction between software and hardware components makes it difficult to correctly design and develop WSN systems. One solution to the WSN design challenges is system modeling. In this paper, we present a survey of nine WSN modeling techniques and show how each technique models different parts of the system such as sensor behavior, sensor data and hardware. Furthermore, we consider how each modeling technique represents the network behavior and network topology. We also consider the available supporting tools for each of the modeling techniques. Based on the survey, we classify the modeling techniques and derive examples of the surveyed modeling techniques by using SensIV system.