Software Debugging, Testing, and Verification Presented by Chris Hundersmarck November 10, 2004 Dr. Bi’s SE516.

Slides:



Advertisements
Similar presentations
Formal Methods and Testing Goal: software reliability Use software engineering methodologies to develop the code. Use formal methods during code development.
Advertisements

SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Testing and Quality Assurance
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Software Construction
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
® IBM Software Group © 2014 IBM Corporation Innovation for a smarter planet MBSE for Complex Systems Development Dr. Bruce Powel Douglass, Ph.D. Chief.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
From Discrete Mathematics to AI applications: A progression path for an undergraduate program in math Abdul Huq Middle East College of Information Technology,
Ch7: Software Production Process. 1 Questions  What is the life cycle of a software product?  Why do we need software process models?  What are the.
SE 555 Software Requirements & Specification Requirements Validation.
JML TOOLS REVIEW & EVALUATION Chris Grosshans Mark Lewis-Prazen.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Cleanroom Software Engineering Crystal Donald. Origins Developed by Dr. Harlan Mills in 1987 Developed by Dr. Harlan Mills in 1987 Name derived from hardware.
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
Software Integration and Documenting
Effective Methods for Software and Systems Integration
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
The Program Development Cycle
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 New Development Techniques: New Challenges for Verification and Validation Mats Heimdahl Critical Systems Research Group Department of Computer Science.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Putting the “Engineering” in Software Engineering: Technology Infrastructure in Process Improvement Adam Kolawa, Ph.D. CEO, Parasoft.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Formal Methods in Software Engineering
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
Teaching material for a course in Software Project Management & Software Engineering – part V.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
Formal Methods.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Lecture # 1.
Smart Home Technologies
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Thomas L. Gilchrist Testing Basics Set 3: Testing Strategies By Tom Gilchrist Jan 2009.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
SCOPE DEFINITION,VERIFICATION AND CONTROL Ashima Wadhwa.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Chapter 2 Principles of Programming and Software Engineering.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Principles of Programming & Software Engineering
Software Engineering (CSI 321)
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Types for Programs and Proofs
Testing and Debugging PPT By :Dr. R. Mall.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Baisc Of Software Testing
Department of Computer Science Abdul Wali Khan University Mardan
Requirements Engineering
Testing, Inspection, Walkthrough
Presentation transcript:

Software Debugging, Testing, and Verification Presented by Chris Hundersmarck November 10, 2004 Dr. Bi’s SE516

Software Debugging, Testing, and Verification Published in IBM Systems Journal Armonk: 2002 Vol. 41, Iss. 1; pg. 4-9 Written by B Hailpern and P Santhanam

A Problem Due to the informal nature of software development, the prevalent practices in the industry are still immature. Additionally, the tools that incorporate the more advanced aspects of this technology are not ready for large-scale commercial use.

Why are there major responsibilities on the areas of software debugging, testing, and verification? Complexity and scope of software has increased Advances in software engineering techniques has been only moderate at best. On average debugging, testing, and verification ranges from 50 to 75% of the total development cost

Additional reasons for major responsibilities on the areas of software debugging, testing, and verification. Increased complexity of products Shortened development cycles Higher customer expectations of quality

Debugging The purpose of debugging is to locate and fix the offending code responsible for a symptom violating a known specification. Debugging typically happens during three activities in software development – During the Coding Process – During the later stages of testing – In production or deployment

Help for Software Engineers in Debugging Integrated Development environments (IDES) Visualization of the necessary underlying programming constructs as a means to analyze a program Automating the debugging process.

Verification In order to verify the functional correctness of a program, one needs to capture the model of the behavior of the program in a formal language.

Other approaches to Verification (and the problems they create) Formalize only some properties Drawbacks: Simplification or abstraction may hide critical details. Use a proof system to automatically verify Drawbacks: Can it handle very complex logical analyses? Complex theorem proving systems require a high skill level and do not scale to large programs The human factor

Testing Typically, prior to coding the program, design reviews and code inspections are done as part of the static testing effort. Once the code is written, various other static analysis methods based on source code can be applied

Testing When do we stop testing? Test Automation Automation of test case design Regression testing

Major problems Testing and verification are always done in a context and rely on a base set of assumptions, assumptions which are often unstated and unmet. The three topics of debugging, testing, and verification are treated by different groups of experts.

A possible solution and a Quote Software Engineering: The Holistic Discipline.

In Conclusion Problems: Informal nature of Software Solution: Improvements in Debugging, Testing, and Verification View SE as a holistic discipline

Question, Comment, Suggestion Box.