Automating Control-Flow Graph Generation from Source Code ; Earning Trust: Popularizing Autonomous Vehicles in the United States
Le, Kenneth, School of Engineering and Applied Science, University of Virginia
Praphamontripong, Upsorn, EN-Comp Science Dept, University of Virginia
Norton, Peter, EN-Engineering and Society, University of Virginia
How can software be developed more reliably? Rushed software development can create faulty programs. The costs of software failures are high by many metrics. In 2017, the costs exceeded 1.7 trillion USD. Between 1985 and 1987, at least six Canadian cancer patients were overexposed to dangerous radiation. In 2015, a Spanish military cargo plane crashed, killing four crew members (Airbus, 2015). Software failures caused both of these incidents, and many more.
How can software testing be expedited? Testing ensures more reliable software, but manual software testing is slow and costly. The quality of hand-designed tests depends significantly on the test writers. Hence, in this project a means of reducing the time spent writing tests while ensuring their effectiveness was developed. I have built a prototype that can generate useful tests for simple Java programs from source code. Expansions of this project may include expanding the pool of subjects outside of simple Java programs or developing a more efficient algorithm for creating these tests.
How do automakers and tech companies promote autonomous vehicles (AVs)? Promotional efforts can exaggerate system reliability, at a cost to safety. AVs have captured the tech spotlight. Recent crashes during testing have caused safety concerns. Automakers and their partners seek to persuade the U.S. public that autonomous vehicles will be safe through press releases and public relations. However, in areas where other street users are endangered by vehicles, these techniques may be dangerous.
BS (Bachelor of Science)
Control-Flow Graph, Software Testing, Automation, Autonomous Vehicles
School of Engineering and Applied Science
Bachelor of Science in Computer Science
Technical Advisor: Upsorn Praphamontripong
STS Advisor: Peter Norton
Technical Team Members: None