Download - Provable Software Laboratory Moonzoo Kim
Provable Software
Laboratory
Moonzoo Kimhttp://pswlab.kaist.ac.kr
Provable SW Lab.
CS Dept. KAIST
Introduction of Provable SW Lab 22
Motivation: Poor Quality of SW
Provable SW Lab.
CS Dept. KAIST
Introduction of Provable SW Lab 33/14/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 NetworkHome Network Intelligent Mobile SystemsIntelligent Mobile Systems
Highly Reliable Highly Reliable Software-intensive Software-intensive
SystemsSystems
Intelligent Medical Devices Intelligent Medical Devices
Main Research Theme
Home Service RobotsHome Service Robots
Provable SW Lab.
CS Dept. KAIST
Introduction of Provable SW Lab 44
Remarks by Bill GatesAt 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 232 (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 66/60/60
• # of test cases required?① 4② 10③ 50④ 100
• # of feasible unique execution paths?• 11 paths• guess what test
cases needed
“Software Testing a craftsman’s approach” 2nd 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 systems” @ EPFL
– OSDI 2008 Best paper
• “Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs” @ Stanford
– NSDI 2007 Best paper
• “Life, Death, and the Critical Transition: Finding Liveness Bugs in Systems Code” @ U.C. San Diego
77/14/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
88
Provable SW Lab.
CS Dept. KAIST
Introduction of Provable SW Lab
Backgrounds
• Undergraduate CS classes contributing to this area
Software Software EngineeringEngineering
OK
Counter example(s)
or
System modeling
Requirement properties
System spec. Automated
Testing
Req. spec.
ProgrammingProgrammingLanguagesLanguages
LogicLogic
AlgorithmsAlgorithmsEmbeddedEmbeddedSystemsSystems
•OS•System programming•Cyber physical system•SW Engineering
•Discrete math•Algorithm•PL•Automata
PSW Lab
99/14/14
Provable SW Lab.
CS Dept. KAIST
Introduction of Provable SW Lab
Companies Working on Systematic Testing
1010/14/14
Provable SW Lab.
CS Dept. KAIST
Introduction of Provable SW Lab
Ph.D Students
1111
• 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
1212
• 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
1313
• 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?
1414/14/14