TAILIEUCHUNG - Lecture Software testing and analysis - Chapter 7: Symbolic execution and proof of properties

Symbolic execution builds predicates that characterize the conditions under which execution paths can be taken and the effect of the execution on program state. Extracting predicates through symbolic execution is the essential bridge from the complexity of program behavior to the simpler and more orderly world of logic. This chapter presents the symbolic execution and proof of properties. | Symbolic Execution and Proof of Properties c 2007 Mauro Pezze Michal Young Ch 7 slide 1 Formal proof of properties Relevant application domains - Rigorous proofs of properties of critical subsystems Example safety kernel of a medical device - Formal verification of critical properties particularly resistant to dynamic testing Example security properties - Formal verification of algorithm descriptions and logical designs less complex than implementations c 2007 Mauro Pezze Michal Young Ch 7 slide 4 Symbolic Execution Builds predicates that characterize - Conditions for executing paths - Effects of the execution on program state Bridges program behavior to logic Finds important applications in - program analysis - test data generation - formal verification proofs of program correctness c 2007 Mauro Pezze Michal Young Ch 7 slide 3 Symbolic state Values are expressions over symbols Executing statements computes new expressions Execution with concrete values Execution with symbolic values before low 12 high 15 mid before low L high H mid mid high low 2 mid high low 2 after low 12 high 15 mid 13 SOFTWARE TESTING ANO-ANALYSIS after Low L high H mid L HJ 2 2007 Mauro Pezze Michal Young Ch 7 slide 5 Dealing with branching statements a sample program char binarySearch char key char dictKeys char dictValues int dictsize int high dictsize - 1 int mid int comparison Branching stmt while high low ----------- mid high low 2 comparison strcmp dictKeys mid if comparison 0 low mid 1 else if comparison 0 high mid - 1 else return dictValues mid key return 0 c 2007 Mauro Pezze Michal Young Ch 7 slide 6 Summary information Symbolic representation of paths may become extremely complex We can simplify the representation by replacing a complex condition p with a weaker condition w such that p w w describes the path with less precision w is a summary of p c 2007 Mauro Pezze Michal Young Ch 7 slide 8 Executing while high low Add an expression that records the condition for the execution of .

Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.