1 CS453: Automated Software Testing Moonzoo Kim Software Testing and Verification Group CS Dept. KAIST.

Slides:



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

Runtime Techniques for Efficient and Reliable Program Execution Harry Xu CS 295 Winter 2012.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Reporter:PCLee With a significant increase in the design complexity of cores and associated communication among them, post-silicon validation.
Demonstration Of SPIN By Mitra Purandare
The Software Model Checker BLAST by Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala and Rupak Majumdar Presented by Yunho Kim Provable Software Lab, KAIST.
Testing and Analysis of Device Drivers Supervisor: Abhik Roychoudhury Author: Pham Van Thuan 1.
CPSC 689: Discrete Algorithms for Mobile and Wireless Systems Spring 2009 Prof. Jennifer Welch.
What do Computer Scientists and Engineers do? CS101 Regular Lecture, Week 10.
VERTAF: An Application Framework for Design and Verification of Embedded Real-Time Software Pao-Ann Hsiung, Shang-Wei Lin, Chih-Hao Tseng, Trong-Yen Lee,
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Phones OFF Please Operating System Introduction Parminder Singh Kang Home:
Systems with small trusted computing bases (TCBs) open possibility for automated security verification of systems Example: SecVisor - a 3kLOC security.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
5/24/011 Advanced Tool Integration for Embedded Systems Assurance Insup Lee Department of Computer and Information Science University of Pennsylvania.
Types and Techniques of Software Testing
Introduction to Embedded Development. What is an Embedded System ? An embedded system is a computer system embedded in a device with a dedicated function.
Building an Application Server for Home Network based on Android Platform Yi-hsien Liao Supervised by : Dr. Chao-huang Wei Department of Electrical Engineering.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
EMBEDDED SYSTEMS G.V.P.COLLEGE OF ENGINEERING Affiliated to J.N.T.U. By By D.Ramya Deepthi D.Ramya Deepthi & V.Soujanya V.Soujanya.
Hands-On Microsoft Windows Server 2008
MGS Testing A High Level Overview of Testing in Microsoft Games Studio Joe Djorgee – Test Lead.
Introduction of Tizen : Tizen Overview Chan Seok Kang 2013/03/21.
© Siemens AG, CT SE 1, Dr. A. Ulrich C O R P O R A T E T E C H N O L O G Y Research at Siemens CT SE Software & Engineering Development Techniques.
Provable Software Laboratory Moonzoo Kim
Introduction to Software Engineering (2/2) Moonzoo Kim KAIST (slides from CS550 ‘06 taught by prof. D. Bae)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Model-based Kernel Testing for Concurrency Bugs through Counter Example Replay Moonzoo Kim, Shin Hong, Changki Hong Provable Software Lab. CS Dept. KAIST,
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
High Performance Computing & Communication Research Laboratory 12/11/1997 [1] Hyok Kim Performance Analysis of TCP/IP Data.
1 New Development Techniques: New Challenges for Verification and Validation Mats Heimdahl Critical Systems Research Group Department of Computer Science.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
ATCA based LLRF system design review DESY Control servers for ATCA based LLRF system Piotr Pucyk - DESY, Warsaw University of Technology Jaroslaw.
Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)
Model Checking and Model-Based Design Bruce H. Krogh Carnegie Mellon University.
1 Run-Time Software Engineering An approach for Embedded and Ubiquitous Computing Environments Sooyong Park Sogang University South.
Welcome to CPS 210 Graduate Level Operating Systems –readings, discussions, and programming projects Systems Quals course –midterm and final exams Gateway.
Welcome to CS 477 Formal Methods in Software Development Spring 2011 Madhusudan Parthasarathy ( Madhu )
Automated Unit Testing of Large Industrial Embedded Software using Concolic Testing Yunho Kim, Moonzoo Kim SW Testing & Verification Group KAIST, South.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie
Lectures 2 & 3: Software Process Models Neelam Gupta.
By SPEC INFOTECH. A programming language reigning the IT industry Marking its presence around the globe Striking Features which make Java supreme: Simplistic.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
COMPSCI 110 Operating Systems
CS492D: Automated Software Analysis Techniques
Software Engineering (CSI 321)
Introduction to Software Engineering (1/2)
Introduction to Software Engineering (2/2)
Moonzoo Kim CS Dept. KAIST
CS453: Automated Software Testing
Moonzoo Kim CS Dept. KAIST
Software Development Cycle
Yunho Kim, Moonzoo Kim, YoungJoo Kim, and Yoonkyu Jang
HATS – Hierarchical Automated Test Sequencer Platform
Foundations of Programming Languages – Course Overview
QNX Technology Overview
Foundations of Programming Languages – Course Overview
CS453: Automated Software Testing
Software Development Cycle
Software Development Cycle
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Rich Model Toolkit – An Infrastructure for Reliable Computer Systems
Presentation transcript:

1 CS453: Automated Software Testing Moonzoo Kim Software Testing and Verification Group CS Dept. KAIST

/19 Strong IT Industry in South Korea 2 Moonzoo Kim Time-to- Market? SW Quality?

/19 Embedded Software in Two Different Domains 3 Consumer Electronics Safety Critical Systems ExamplesSmartphones, flash memory platforms Nuclear reactors, avionics, cars Market competition HighLow Life cycleShortLong Development time ShortLong Model-based development NoneYes Important value Time-to-marketSafety Moonzoo Kim Model checking Conventional Testing Concolic testing

. CS Dept. KAIST Role of S/W: Increased in Everywhere 4 자료출처 : Watts Humphrey 2002

. CS Dept. KAIST 5 Motivation: Poor Quality of SW

. CS Dept. KAIST 6 SW developers have to follow systematic disciplines for building and analyzing software with high quality –This class focuses on the analysis activities Current Practice for SW

. CS Dept. KAIST 7 Software Development Cycle A SW Development Framework for SW with High Assurance Formal require- ment Spec. Formal require- ment Spec. Formal system modeling Formal system modeling Model analysis/ verification Model analysis/ verification Model- assisted code generation Model- assisted code generation Model- based testing Model- based testing Runtime monitoring and checking Runtime monitoring and checking Systemdesign Requirementanalysis Designanalysis Implement-ation Testing Monitoring A practical end-to-end formal framework for software development

SW Development and Testing Model (a.k.a. V model) Moonzoo Kim Provable SW Lab 8/42 Manual Labor Abstraction

. CS Dept. KAIST 9 Embedded systems where highly reliable SW technology is a key to the success –The portion of SW in commercial embedded devices increases continuously –More than 50% of development time is spent on SW testing and debugging Home Network Intelligent Mobile Systems Highly Reliable Systems Intelligent Medical Devices Main Target Systems Home Service Robots

. CS Dept. KAIST How to Improve the Quality of SW 1.Systematic testing (can be still manual) –Coverage criteria –Mutation analysis 2.Testing through automated analysis tools –Scientific treatment of SW with computing power –Useful tools are available 3.Formal verification –Guarantee the absence of bugs 10

. CS Dept. KAIST Questions??? Is automated testing really beneficial in industry? –Yes, dozens of success stories at Samsung Is automated testing academically significant? –Yes, 3 Turing awardees in ‘07 Is automated testing too hard to learn and use? –No, there are tools available 11

. CS Dept. KAIST Companies Working on Software Verification 12/14

. CS Dept. KAIST 13 Verification of High-Availability Protocol We develop a formal model of high-availability protocol used in commercial security appliances –HA protocol coordinates a group of firewalls We found several problems in HA regarding a master election procedure Master Backup Master Slave

. CS Dept. KAIST 14 Designed for providing various services to human user - Service areas : home security, patient caring, cleaning, etc Home Service Robot

. CS Dept. KAIST 15 OneNAND ® Flash Memory OneNAND ® Flash Memory Devices Low Level (LLD) Device Driver Block Management (BML) Sector Translation (STL) Demand Paging Manager (DPM) OS Adapt- ation Module Unified Storage Platform App 1 App 2 App 3 Source: Software Center of Samsung Electronics ‘06 Each memory cell can be written limited number of times only XIP by emulating NOR interface through demand- paging scheme Performance enhancement Flash Translation Layer File System

. CS Dept. KAIST Smartphone SW Platform We have developed CONcrete and symBOLic (CONBOL) framework that is an automated concolic unit testing tool based-on CREST-BV for embedded software Instru- mentor Test- generator Module Test- generator Module Pre- processor Module Pre- processor Module SMT Solver SMT Solver Target source code for embedded platform GCC compatible source code Linux executable Concolic Executor Porting Module Porting Module Defect Report Coverage Report Instru- mented code Unit test driver+stub code Unit test driver+stub code Symbolic Library Symbolic Library GCC CREST- BV extension New module External tool Legend

. CS Dept. KAIST Research Trends toward Quality Systems Academic research on developing embedded systems has reached stable stage –just adding a new function to a target system is not considered as an academic contribution anymore Research focus has moved on to the quality of the systems from the mere functionalities of the systems –Energy efficient design, ez-maintenance, dynamic 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 17

. CS Dept. KAIST Tool-based Interactive Learning Model checker –Explicit model checker: Spin home page Spin home page –Symbolic model checker: NuSMV home pageNuSMV home page Software model checker –Bounded model checker for C program:CBMC home page CBMC home page –Predicate abstraction for C program: BLAST home pageBLAST home page 18 Satisfiability solver –MiniSAT home pageMiniSAT home page Satisfiability Module Solver –Yices home pageYices home page –Z3 home pageZ3 home page Concolic testing tools –CREST home pageCREST home page

. CS Dept. KAIST Class Schedule Week1: overview on automated SW analysis techniques Part I: Coverage criteria –Week 2: graph coverage –Week 3: logic coverage –Week 4: clang/llvm tutorial –HW1: understanding of coverage criteria –HW2-3: branch coverage measuring tool Part II: SW model checking –Week 5: SAT-based bounded model checking –Week 6: SW model checking case study –Week 7: SAT solver –Week 8: mid term exam –HW4: SW model checking to verify program –HW5: SW model checking to solve puzzles 19 Part II: Logic model checking Part IV: Concolic testing

. CS Dept. KAIST Final Remarks For undergraduate students: –Highly recommend URP studies or independent studies Ex. 이준희 (05 학번 ) got a silver award and macbook air notebook –Debugging Linux kernel through model checking to detect concurrency bugs Ex2. Nam Dang wrote down a paper on distributed concolic testing –Y.Kim, M.Kim, N.Dang, Scalable Distributed Concolic Testing: a Case Study on a Flash Storage Platform, Verified Software Intl. Conf. on Theoretical Aspects of Computing (ICTAC), Aug 2010Scalable Distributed Concolic Testing: a Case Study on a Flash Storage Platform 20

. CS Dept. KAIST Final Remarks For graduate students: –Welcome research discussions to apply formal analysis techniques Systematically testing/debugging C programs Concurrency bug detection Model-based testing Pre-requisite: –Basic understanding of the C/C++/Java programing language –Basic understanding of linux/unix 21