TAILIEUCHUNG - Lecture Software testing and analysis - Chapter 19: Program analysis

In this chapter you will: Understand how automated program analysis complements testing and manual inspection; understand fundamental approaches of a few representative techniques (Lockset analysis, pointer analysis, symbolic testing, dynamic model extraction; recognize the same basic approaches and design trade-offs in other program analysis techniques). | Program Analysis Learning objectives c 2007 Mauro Pezzè Michal Young Ch 19 slide 1 Understand how automated program analysis complements testing and manual inspection - Most useful for properties that are difficult to test Understand fundamental approaches of a few representative techniques - Lockset analysis pointer analysis symbolic testing dynamic model extraction A sample of contemporary techniques across a broad spectrum - Recognize the same basic approaches and design trade-offs in other program analysis techniques SOFTWARE TESTING ANO ANALYSIS c 2007 Mauro Pezzè Michal Young Ch 19 slide 2 Why Analysis Why automated analysis Exhaustively check properties that are difficult to test - Faults that cause failures rarely under conditions difficult to control - Examples race conditions faulty memory accesses Extract and summarize information for inspection and test design Manual program inspection - effective in finding faults difficult to detect with testing - But humans are not good at repetitive and tedious tasks maintaining large amounts of detail Automated analysis - replace human inspection for some class of faults - support inspection by automating extracting and summarizing information navigating through relevant information Ch 19 slide 4 c 2007 Mauro Pezzè Michal Young c 2007 Mauro Pezzè Michal Young Ch 19 slide 3 Static vs dynamic analysis Static analysis - examine program source code examine the complete execution space but may lead to false alarms Dynamic analysis - examine program execution traces no infeasible path problem but cannot examine the execution space exhaustively Concurrency faults Concurrency faults - deadlocks threads blocked waiting each other on a lock - data races concurrent access to modify shared resources Difficult to reveal and reproduce - nondeterministic nature does not guarantee repeatibility Prevention - Programming styles eliminate concurrency faults by restricting program constructs examples - do not allow more than one .

TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã 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.