In this paper, we present preliminary results for documenting the impact of research in symbolic execution for automated software testing. To increase software reliability even further, we use formal verification to prove that a program works correctly for any input. Software design reliability the software is ab function under stated conditio time. Theres a lot of that academic projects that have made a lot of real world impact by discovering important bugs in open source software, for example, by relying on symbolic execution. This document is highly rated by students and has been viewed 441 times. This unit delved into the details of symbolic execution. The intention of this text is to cover topics on the c programming language and introductory software design in sequence as a 20 lecture course, with the material in chapters 2, 7, 8, 11, and well served by two lectures apiece. Overview of software development processes in ppt and in html.
Symbolic execution introduction and handson slideshare. Apr 15, 2020 componentbased software engineering ppt, software engineering notes edurev is made by best teachers of. Both and pc are populated during the course of symbolic execution. Quality assurance is defined as the auditing and reporting procedures used to provide the stakeholders with data needed to make wellinformed decisions. King in a 1976 paper as a static analysis technique for software testing. Software testing techniques technology maturation and research strategies lu luo school of computer science carnegie mellon university 1 introduction 1 software testing is as old as the hills in the history of digital computers. Freely browse and use ocw materials at your own pace. The execution requires a selection of paths that are exercised by a set of data values. For example, the chopped symbolic execution described. We further outline the main ideas of abstract interpretation and model checking.
And the beauty of symbolic execution as a technique is that compared to testing, for example, it gives you the ability to reason about how. Introduction to software engineering software engineering software systems are complex impossible to understand by a single person many projects are never finished. Symbolic execution algorithms static symbolic execution simulate execution on program source code computes strongest postconditions from entry point dynamic symbolic execution dse run interpret the program with concrete state symbolic state computed in parallel concolic solver generates new concrete state. I stumbled upon course hero, where i can find study resources for nearly all my courses, get online help from tutors 247, and even share my old projects, papers, and lecture notes with. Combining static analysis and targeted symbolic execution for.
It is the degree to which a system meets specified requirements and customer expectations. A first course in computer programming for mechanical. We will consider important software vulnerabilities and attacks that exploit them such as buffer overflows, sql injection, and session hijacking and we will consider defenses that prevent or mitigate these attacks, including advanced testing and program analysis techniques. This course is an introduction to the software engineering process. Advanced topics in testing, debugging, and program analysis. Introduction to symbolic execution test generation using dynamic symbolic execution path explosion problem npcomplete problem slideshow 5928600 by candacemyers.
Request pdf symbolic execution for software testing in practice preliminary assessment we present results for the impact project focus area on the topic. Ppt symbolic execution in software engineering powerpoint. Symbolic execution systems program analysis coursera. By xusheng xiao xi ge dayoung lee towards partial fulfillment for course 707. American public university system apus american public university. Introduction in ppt and in html and as a sequence of jpegs. Scribd is the worlds largest social reading and publishing site. In computer science, symbolic execution also symbolic evaluation or symbex is a means of analyzing a program to determine what inputs cause each part of a program to execute. Generally, no ppt slides class will be devoted to discussion. Introducing symbolic execution program analysis coursera. Ppt chapter 1, introduction to software engineering. Symbolic execution of java bytecode, international conference on automated software engineering ase 10 antwerp, belgium, aug 30 sep 2 2010.
Symbolic execution for finding bugs symbolic execution and software testing presentation at nasa ames symbolic execution for software. By combining all the above definition we can define software engineering as, software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates. Resurgence of symbolic execution the block issues in the past. Watson research center this paper describes the symbolic execution of pro grams. Symbolic execution as empirical studies tool web application security checker enhancement to abstractionbased static analysis program synthesis tool all of these take advantage of sym exec strengths, and try to avoid drawbacks 7. Faa story, introduction to class projects in ppt and in html and as a sequence of jpegs. Chopped symbolic execution imperial college london. Course descriptions department of computer science. Symbolic execution for software testing in practice. The testing of software is an important means of assessing the software to determine its quality. This course we will explore the foundations of software security. Viewed as a kind of static analysis, symbolic execution is complete in that whenever a symbolic executor claims to have found a bug, the claim is true.
We describe symbolic execution and generation of verification conditions. Software engineering concepts software processes 1 software process a software process is a set of activities. In proceedings of the 2008 workshop on testing, analysis, and verification of web services and applications tavweb 2008, held in conjunction with the acm sigsoft international symposium on software testing and analysis issta 2008, pp. Systems engineering consists of two significant disciplines. For example, a run using nasas antares simulator 1 may take. Lecture videos computer systems security electrical. I many software engineering problems can be easily reduced to the sat problem over rstorder theories. Selecta formal system for testing and debugging programs by symbolic execution. Overview of course overview of software engineering.
During symbolic execution, program state consists of symbolic values for some memory locations. Cs6v81 is a graduate level, research oriented, system and software security course. If the program is executed on these concrete input. Symbolic execution university of maryland, college park. Design concept software engineering linkedin slideshare. Symbolic execution a program analysis technique that executes a program with symbolic rather than concrete input values.
Klee symbolic execution for c, built on llvm found many bugs in opensource code, including the gnu coreutils utility suite opensource. Nov 30, 2000 for slides, see lecture 20 lecture 24, legal issues powerpoint html lecture 25, management iii. Special topics in advanced software engineering office. Weird things that surprise academics trying to commercialize a static checking tool. None of the moderators are trained lawyers, so please use your best discretion when submitting. I think symbolic execution can be used in many other interesting ways next. Use the seminars themes for your presentation and summary. The goal of this course is to explain the lowlevel system details from compiler, linker, loader, to os kernel and computer architectures, examine the weakest link in each system component, explore the left bits and bytes after all these transformations, and study the stateoftheart offenses. The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines fritz bauer, at the 1 st nato conference on software engineering, 1969 ieee definition. Chapter data capture, ppt, software engineering, semester. It is nota miracle algorithm that can autonomously discover any bug. Course informationsyllabus pdf guidelines for all assignments pdf book. Weve seen that symbolic execution employs an appealingly simple algorithm, but with high computational costs. Some insights about symbolic execution i execute programs with symbols.
Symbolic execution georgia institute of technology. Petri nets and software engineering conference paper pdf available in lecture notes in computer science 29548. In particular, the executor might traverse many different paths in the program, and it must make potentially expensive calls to an smt solver, to. Video created by university of maryland, college park for the course software.
Software engineering is about building, maintaining and. Nonetheless, understanding symbolic execution helps us understand the underlying concepts involved in exploit discovery, and gives us a powerful tool to use and research. Symbolic execution allows us to systematically consider many of these paths. Instead of supplying the normal inputs to a program e. Software reverse engineering education is the property of its rightful owner.
Symbolic execution is a software testing technique that is useful to aid the generation of test data and in proving the program quality. Boundary value analysis bva equivalence partitioning ep decision table testing. Symbolic execution as search, and the rise of solvers. Following are the typical design techniques in software engineering. Lecture 26, risks in software engineering powerpoint html lecture 27, software engineering as engineering powerpoint html cs 501 home page william y. At the end of a symbolic execution along a feasible execution path of the program, pc is. Page 2 topics continued static analysis dependency analysis symbolic execution software verification dataflow analysis concurrency analysis safety and liveness reachability based analysis finitestate verificationmodel checking overall concerns. Info american public university system apus american public universitys computer f department has 1 courses in course hero with 33 documents. Oct 10, 2016 this presentation contains all the topics in design concept of software engineering. Ppt software reverse engineering education powerpoint. Corina pasareanu, neha rungta, symbolic pathfinder.
Symbolic execution is a program analysis technique that was introduced in the 70s 8,15,31,35,46, and that has found. Symbolic execution as empirical studies tool web application security checker enhancement to abstractionbased static analysis program synthesis tool all of these take advantage of. May 12, 2020 chapter data capture, ppt, software engineering, semester, engineering computer science engineering cse notes edurev is made by best teachers of computer science engineering cse. Symbolic execution enhanced system testing intelligent systems. Index termssoftware security, automated software testing, fuzzing. This document is highly rated by computer science engineering cse students and has been viewed 355 times. Symbolic execution can be viewed, on the one hand, as a generalization of testing. Special topics in advanced software engineering fall 2008 monday, wednesday, 4 5. The course was run over a week semester with two lectures a week.
The legality of reverse engineering is a miasmic subject compounded by differing laws in differing jurisdictions. Theyll give your presentations a professional, memorable appearance the kind of sophisticated look that todays audiences expect. For slides, see lecture 20 lecture 24, legal issues powerpoint html lecture 25, management iii. Symbolic execution for software testing in practice preliminary. Software engineering is the application of a systematic. Symbolic execution is a wellknown program analysis technique for testing software, which makes intensive use of constraint solvers. Winner of the standing ovation award for best powerpoint templates from presentations magazine. Symbolic execution symbolic execution refers to execution of program with symbols as argument. A free powerpoint ppt presentation displayed as a flash slide show on id. This power point presentation is of the topic software engineering, it covers the brief information of various software engineering models that are used for developing a software product. I symbolic execution is the key technique used in darpa cyber grand challenge.
Sound as is probably apparent, a good symbolic executor requires careful engineering. Design and software architecture outline what is design how can a system be decomposed into modules what is a module s interface what are the main relationships. Deriving test cases directly from a requirement specification or black box test design technique. A powerful technology that can be used to find security critical bugs in real software. Unlike concrete execution, where the taken path is determined by the input, in symbolic execution the program can take any feasible path. At the end of a symbolic execution along an execution path of the program, pcis solved using a constraint solver to generate concrete input values. Explore software engineering seminar topics, computer science cse engineering and technology seminar topics, latest cse mca it seminar papers 2015 2016, recent essay topics, speech ideas, dissertation, thesis, ieee and mca seminar topics, reports, synopsis, advantanges, disadvantages, abstracts, presentation pdf, doc and ppt for final year be, btech, mtech, msc, bsc, mca and bca 2015, 2016. Popular for nding software bugs and vulnerabilities. It is also monitoring the processes and products throughout the sdlc. Complete coverage of the program would be all of its paths. And the beauty of symbolic execution as a technique is that compared to testing, for example, it gives you the ability to reason about how your program is going.
Managing people powerpoint html lecture 26, risks in software engineering powerpoint html lecture 27, software engineering as engineering powerpoint html. Press enter to expand submenu, click to visit computer science. A crucial aspect of software development is ensuring that the program behaves as the. Worlds best powerpoint templates crystalgraphics offers more powerpoint templates than anyone else in the world, with over 4 million to choose from. Recent support for floatingpoint constraint solving has made it feasible to support floatingpoint reasoning in symbolic execution tools.
Software engineering, 6th edition, ian sommerville, addisonwesley, isbn 0209815x. Symbolic execution the symbolic execution of a program is described in this section in an ideal sense, and then, in section 6, a particular practical system which has been built an ap proximation to the ideal is discussed. In computer science, symbolic execution is a means of analyzing a program to determine what. It is an interdisciplinary approach that encompasses the entire technical effort, and evolves into and verifies an integrated and life cycle balanced set of system people. Find materials for this course in the pages linked along the left. I dart godefroid and sen, pldi 2005 introduce dynamic. Design and implementation software design and implementation is the stage in the software engineering process at which an executable software system is developed. Symbolic execution is typically used in software testing to explore as many. For basic legal information not legal advice surrounding reverse engineering in the united states, see the effs faq on the subject. An interpreter follows the program, assuming symbolic values for inputs rather than obtaining actual inputs as normal execution of the program would. If so, share your ppt presentation slides online with.591 913 1402 615 580 557 890 1236 1147 614 1432 741 973 1222 138 1247 220 660 916 1161 1236 620 772 55 243 1233 667 704 1248 1407 366 1094 1126 291