Provable Software Laboratory Moonzoo Kim

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Automated Test Data Generation Maili Markvardt. Outline Introduction Test data generation problem Black-box approach White-box approach.
VSE Corporation Proprietary Information
Model Checker In-The-Loop Flavio Lerda, Edmund M. Clarke Computer Science Department Jim Kapinski, Bruce H. Krogh Electrical & Computer Engineering MURI.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
Necessity of Systematic & Automated Testing Techniques Moonzoo Kim CS Dept, KAIST.
CS 795 – Spring  “Software Systems are increasingly Situated in dynamic, mission critical settings ◦ Operational profile is dynamic, and depends.
Microsoft ® 1 The Venerable Triangle Redux: A familiar problem; a new outlook Bj Rollison, Test Architect Engineering Excellence Group Microsoft, Inc.
The Software Model Checker BLAST by Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala and Rupak Majumdar Presented by Yunho Kim Provable Software Lab, KAIST.
Programing Concept Ken Youssefi/Ping HsuIntroduction to Engineering – E10 1 ENGR 10 Introduction to Engineering (Part A)
Department of Computer Science and Engineering Dr. Khaled M. Elleithy Open House October 26, 2002 University of Bridgeport Computer Science & Engineering.
Design of Variable Input Delay Gates for Low Dynamic Power Circuits
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer (Nadia Polikarpova) Verification tools.
Swami NatarajanJune 17, 2015 RIT Software Engineering Reliability Engineering.
SE 450 Software Processes & Product Metrics Reliability Engineering.
The Future of Testing Chapter 21. Random testing Simply put, if testing is targeted at a particular area, it is because that area is either critical,
CS 1 – Introduction to Computer Science Introduction to the wonderful world of Dr. T Dr. Daniel Tauritz.
1 CS453: Automated Software Testing Moonzoo Kim Software Testing and Verification Group CS Dept. KAIST.
CREST Tutorial Moonzoo Kim Provable Software Laboratory CS Dept. KAIST.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
CREST Internal Yunho Kim Provable Software Laboratory CS Dept. KAIST.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Model-based Kernel Testing for Concurrency Bugs through Counter Example Replay Moonzoo Kim, Shin Hong, Changki Hong Provable Software Lab. CS Dept. KAIST,
Cristian Urs and Ben Riveira. Introduction The article we chose focuses on improving the performance of Genetic Algorithms by: Use of predictive models.
Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
The Category-Partition Method for Specifying and Generating Functional Tests. Thomas J. Ostrand and Marc J.Balcer [ CACM,1988 ]. Slides from Prof. Shmuel.
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
A Self-Configuring Test Harness for Web Applications Jairo Pava School of Computing and Information Sciences Florida International University Courtney.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
08120: Programming 2: SoftwareTesting and Debugging Dr Mike Brayshaw.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Concurrency Analysis for Correct Concurrent Programs: Fight Complexity Systematically and Efficiently Moonzoo Kim Computer Science, KAIST.
Dynamic Testing.
Introduction to Hardware Verification ECE 598 SV Prof. Shobha Vasudevan.
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
Software Testing & Verification Group Moonzoo Kim
Introduction to Software Testing Maili Markvardt.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Department of Computer and Information Sciences
CS492D: Automated Software Analysis Techniques
Paul Ammann & Jeff Offutt
Introduction to Software Engineering (1/2)
Moonzoo Kim SWTV Group CS Dept. KAIST
Introduction to Software Engineering (2/2)
Formal Methods for Finding Bugs in Concurrent Software
CSC 591/791 Reliable Software Systems
Moonzoo Kim CS Dept. KAIST
CS453: Automated Software Testing
Software Testing and Maintenance Introduction
Moonzoo Kim CS Dept. KAIST
Software Development Cycle
Yunho Kim, Moonzoo Kim, YoungJoo Kim, and Yoonkyu Jang
Moonzoo Kim SWTV Group CS Dept. KAIST
Foundations of Programming Languages – Course Overview
Foundations of Programming Languages – Course Overview
Test Automation CS 4501 / 6501 Software Testing
Quality Concurrent SW - Fight the Complexity of SW
Moonzoo Kim SWTV Group CS Dept. KAIST
Software Development Cycle
Software Development Cycle
Intro. To Quality Software - Fight the Complexity of SW
Examples of First Order Theories
Intro. To Quality Software - Fight the Complexity of SW
Computer Science Courses in the Major
08120: Programming 2: SoftwareTesting and Debugging
Moonzoo Kim Provable Software Laboratory CS Dept. KAIST
Presentation transcript:

Provable Software Laboratory Moonzoo Kim

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab 2 Motivation: Poor Quality of SW

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab 3/14 To Improve SW reliability through automated testing –Quality attribute for minimizing malfunctions of systems to reduces damage to human life or valuable properties (i.e., to fight software bug) Highly reliable SW technology is a key to the success of industrial products –The portion of SW in embedded devices increases continuously Home Network Intelligent Mobile Systems Highly Reliable Software-intensive Systems Intelligent Medical Devices Main Research Theme Home Service Robots

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab 4 Remarks by Bill Gates At OOPSLA, November 8, 2002 “… When you look at a big commercial software company like Microsoft, there's actually as much testing that goes in as development. We have as many testers as we have developers. Testers basically test all the time, and developers basically are involved in the testing process about half the time…” “… We've probably changed the industry we're in. We're not in the software industry; we're in the testing industry, and writing the software is the thing that keeps us busy doing all that testing.” “…The test cases are unbelievably expensive; in fact, there's more lines of code in the test harness than there is in the program itself. Often that's a ratio of about three to one.”

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Ex. Testing a Triangle Decision Program Input : Read three integer values from the command line. The three values represent the length of the sides of a triangle. Output : Tell whether the triangle is 부등변삼각형, 이등변삼각형, 정삼각형 Create a Set of Test Cases for this program: (3,4,5), (2,2,1), (1,1,1) ? Condition 1: a > 0, b > 0, c > 0 Condition 2: a < b + c –Ex. (4, 2, 1) is an invalid triangle –Permutation of the above condition :a < b +c, b < a + c, c < a + b What if b + c exceeds 2 32 (i.e. overflow)? –long v.s. int v.s. short v.s. char Developers often fail to consider implicit preconditions –Cause of many hard-to-find bugs

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab 6/60 # of test cases required? ①4①4 ②10 ③50 ④100 # of feasible unique execution paths? 11 paths guess what test cases needed “Software Testing a craftsman’s approach” 2 nd ed by P.C.Jorgensen (no check for positive inputs)

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Research Trends toward Quality Systems Academic research on embedded systems has reached stable stage –just adding new functionalities to a target system is not considered as an academic contribution anymore Research focus has moved to the quality of the systems from the mere functionalities of the systems –Energy efficient design, ez-maintenance, dynamic re-configuration, etc Software reliability is one of the highly pursued qualities –ASPLOS 2011 Best paper “S2E: a platform for in-vivo multi-path analysis for software EPFL –OSDI 2008 Best paper “Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Stanford –NSDI 2007 Best paper “Life, Death, and the Critical Transition: Finding Liveness Bugs in Systems U.C. San Diego 7/14

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Systematic Analysis as a Foundational and Promising CS Research 2008 ACM Turing Awardees: For the contribution of migrating from pure research to industrial reality –Prof. Edmund Clarke –Dr. Joseph Sipfakis –Prof. E. Allen Emerson One of the four main areas of Microsoft Research 8

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Backgrounds Undergraduate CS classes contributing to this area SoftwareEngineering OK Counter example(s) or System modeling Requirement properties  System spec. Automated Testing Req. spec. ProgrammingLanguages Logic Algorithms EmbeddedSystems OS System programming Cyber physical system SW Engineering Discrete math Algorithm PL Automata PSW Lab 9/14

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Companies Working on Systematic Testing 10/14

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Ph.D Students 11 Topic : Automated testing 2 top intl. journals such as IEEE TSE and FACJ 13 top intl. conf. including ICSE/FSE/ASE Software system: –Scalable COncolic testing for Relibaility (SCORE) Topic: Concurrency testing Best paper award at KCSE 2009 Samsung Humantech Bronze Award Software system: –COncurrent Bug dETection framework (COBET)

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab MS Students 12 Topic : Automated testing & statistical model checking Top intl. conf. ICSE Best paper award at KCC 2011

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Visitors 13 Top researcher at software testing area –Ranked a top researcher on SE by CACM v50 issue 6 Joint research on software testing since 2010 Topic: Test oracle and empirical study Best paper awardee at ICSE 2011

Provable SW Lab. CS Dept. KAIST Introduction of Provable SW Lab Questions? Comments? 14/14