Download presentation
Presentation is loading. Please wait.
Published byNeil Montgomery Modified over 9 years ago
1
1 CS453: Automated Software Testing Moonzoo Kim Software Testing and Verification Group CS Dept. KAIST
2
/19 Strong IT Industry in South Korea 2 Moonzoo Kim Time-to- Market? SW Quality?
3
/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
4
. CS Dept. KAIST Role of S/W: Increased in Everywhere 4 자료출처 : Watts Humphrey 2002
5
. CS Dept. KAIST 5 Motivation: Poor Quality of SW
6
. 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
7
. 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
8
SW Development and Testing Model (a.k.a. V model) Moonzoo Kim Provable SW Lab 8/42 Manual Labor Abstraction
9
. 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
10
. 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
11
. 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
12
. CS Dept. KAIST Companies Working on Software Verification 12/14
13
. 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
14
. CS Dept. KAIST 14 Designed for providing various services to human user - Service areas : home security, patient caring, cleaning, etc Home Service Robot
15
. 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
16
. 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
17
. 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 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 17
18
. 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
19
. 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
20
. 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 Track @ Intl. Conf. on Theoretical Aspects of Computing (ICTAC), Aug 2010Scalable Distributed Concolic Testing: a Case Study on a Flash Storage Platform 20
21
. 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.