CS590 Z Software Defect Analysis Xiangyu Zhang. CS590F Software Reliability What is Software Defect Analysis  Given a software program, with or without.

Slides:



Advertisements
Similar presentations
CSE 599F: Formal Verification of Computer Systems.
Advertisements

Lecture 11: Operating System Services. What is an Operating System? An operating system is an event driven program which acts as an interface between.
Programming Abstractions for Approximate Computing Michael Carbin with Sasa Misailovic, Hank Hoffmann, Deokhwan Kim, Stelios Sidiroglou, Martin Rinard.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
CSE , Autumn 2011 Michael Bond.  Name  Program & year  Where are you coming from?  Research interests  Or what’s something you find interesting?
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Troubleshooting SDN Control Software with Minimal Causal Sequences COLIN SCOTT, ANDREAS WUNDSAM, BARATH RAGHAVANAUROJIT PANDA, ANDREW OR, JEFFERSON LAI,EUGENE.
Testing and Analysis of Device Drivers Supervisor: Abhik Roychoudhury Author: Pham Van Thuan 1.
The Future of Correct Software George Necula. 2 Software Correctness is Important ► Where there is software, there are bugs ► It is estimated that software.
October 2003 What Does the Future Hold for Parallel Languages A Computer Architect’s Perspective Josep Torrellas University of Illinois
CIS700: Hardware Support for Security Professor Milo Martin
Introduction & Overview CS4533 from Cooper & Torczon.
CS252: Systems Programming Ninghui Li Final Exam Review.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Software faults & reliability Presented by: Presented by: Pooja Jain Pooja Jain.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
 Protect customers with more secure software  Reduce the number of vulnerabilities  Reduce the severity of vulnerabilities  Address compliance requirements.
Distributed Systems 1 CS- 492 Distributed system & Parallel Processing Sunday: 2/4/1435 (8 – 11 ) Lecture (1) Introduction to distributed system and models.
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
CS527: (Advanced) Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 23, 2011.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Cs498dm Software Testing Darko Marinov January 22, 2008.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Dynamic Analysis of Multithreaded Java Programs Dr. Abhik Roychoudhury National University of Singapore.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Verification and Validation Assuring that a software system meets a user's needs.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
O PERATING S YSTEM. What is an Operating System? An operating system is an event driven program which acts as an interface between a user of a computer,
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
CAPP: Change-Aware Preemption Prioritization Vilas Jagannath, Qingzhou Luo, Darko Marinov Sep 6 th 2011.
CS533 Concepts of Operating Systems Jonathan Walpole.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
Introduction to Software Analysis CS Why Take This Course? Learn methods to improve software quality – reliability, security, performance, etc.
CS527: (Advanced) Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 24, 2010.
Gauss Students’ Views on Multicore Processors Group members: Yu Yang (presenter), Xiaofang Chen, Subodh Sharma, Sarvani Vakkalanka, Anh Vo, Michael DeLisi,
Agenda  Quick Review  Finish Introduction  Java Threads.
Rely: Verifying Quantitative Reliability for Programs that Execute on Unreliable Hardware Michael Carbin, Sasa Misailovic, and Martin Rinard MIT CSAIL.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Cs498dm Software Testing Darko Marinov January 24, 2012.
A Framework For Trusted Instruction Execution Via Basic Block Signature Verification Milena Milenković, Aleksandar Milenković, and Emil Jovanov Electrical.
1 Active Random Testing of Parallel Programs Koushik Sen University of California, Berkeley.
Proposal for Term Project Compilers, Fall 2015 J. H. Wang Nov. 2, 2015.
Dynamic Bug Detection & Tolerance Kathryn S McKinley The University of Texas at Austin.
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Lecture 1: Operating System Services
YAHMD - Yet Another Heap Memory Debugger
CSC 591/791 Reliable Software Systems
Verification and Testing
Secure Software Development: Theory and Practice
runtime verification Brief Overview Grigore Rosu
Foundations of Programming Languages – Course Overview
CSC Classes Required for TCC CS Degree
Foundations of Programming Languages – Course Overview
CSCI1600: Embedded and Real Time Software
Mid Term II Review.
Software Verification and Validation
Software Verification and Validation
CS5103 Software Engineering
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 26, 2008.
Software Verification and Validation
Process Management -Compiled for CSIT
CS 8803 Topics in Program Analysis
Presentation transcript:

CS590 Z Software Defect Analysis Xiangyu Zhang

CS590F Software Reliability What is Software Defect Analysis  Given a software program, with or without inputs, identify and fix defects in the program. All sorts of defects: crashes, incorrect output, unreasonable use of resource, deadlock, data race, buffer overflow vulnerabilities, information leak,… Consists of techniques from : compilers, PL, program verification, hardware, OS, … >> debugging.

CS590F Software Reliability Requirements Design Programming Testing/Debugging Deployment

CS590F Software Reliability Why Is Defect Analysis Important?  One of the most prominent challenges for IT. Software bugs cost the U.S. economy about $59.5 billion each year (0.6% of the GDP) [NIST 02]. Companies.  Security is becoming a necessity. The worldwide economic loss caused by all forms of overt attacks is $226 billion. [CRS 03].  Software defects make programming so painful.  Stories The Role of Software in Spacecraft Accidents (

CS590F Software Reliability Why? (continued)  Almost all areas are open to defect analysis Software Engineering  covers all topics  conferences (FSE, ICSE, ASE, ISSTA, FASE, ICSM…) Programming Languages  language design, language support, program analysis  conferences (PLDI, POPL, OOPSLA,…) Computer Architecture  Architecture support for reliability  Conferences (ISCA, MICRO, ASPLOS,…) OS, Security.  The unit price of a CPU cycle is becoming cheaper and cheaper. Make it happen 25 years ago Make it fast 15 years ago Make it reliable now

CS590F Software Reliability CS 590 Z  Get to know this area. What are the topics? How people solve problems? Some are inspiring.  Use program analysis to solve interesting problems. Hands-on experience on designing and implementing program analysis.  Paper (PLDI submission(s))

CS590F Software Reliability Course Organization  Take turns to discuss papers. Every 2-3 meetings cover one topic; Each person handles one topic; One topic includes presenting related papers and leading discussion.  The discussion subject is distributed before the meeting.  Decide the projects within one month Submission deadline is mid Nov.  Not a requirement to submit paper. The term project is due at the end of the semester;

CS590F Software Reliability Course Requirements  Presentations and discussions (40%)  Term Project (50%)  Attendance (10%)  Change of meeting times

CS590F Software Reliability Topics Failure oblivious usersdevelopers

CS590F Software Reliability Debugging Failure oblivious Mining Code Base Static Analysis usersdevelopers dynamicstatic Model Checking

CS590F Software Reliability Topics Failure oblivious Mining Code Base Static Analysis Data Race Deterministic replay usersdevelopers dynamicstatic multi-threaded single-threaded Model Checking Atomicity Violation

CS590F Software Reliability Debugging Failure oblivious Mining Code Base Static Analysis Statistical debug Data Race Deterministic replay usersdevelopers dynamicstatic multi-threaded single-threaded single execution multiple executions atomicity violation Model Checking Testing

CS590F Software Reliability atomicity violation Topics Failure oblivious Mining Code Base Static Analysis Statistical debug Dynamic slicing Execution Reduction Data Race Deterministic replay Advanced debugger usersdevelopers dynamicstatic multi-threaded single-threaded single execution multiple executions Model Checking Testing

CS590F Software Reliability Topics Failure oblivious Mining Code Base Static Analysis Statistical debug Dynamic slicingExe. Reduction Data Race Deterministic replay Advanced debugger usersdevelopers dynamicstatic multi-threaded single-threaded single execution multiple executions Not Covered: transient errors, performance bugs, … Model Checking atomicity violation

CS590F Software Reliability My Research Projects  Auto debugging  Input analysis  Execution reduction  Dynamically matching program versions  Failure classification  Expanding: Auto program parallelization Debugging for concurrent programs