Download presentation
Presentation is loading. Please wait.
Published byThomas Anthony Modified over 9 years ago
1
Software Debugging, Testing, and Verification Presented by Chris Hundersmarck November 10, 2004 Dr. Bi’s SE516
2
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
3
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.
4
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
5
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
6
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
7
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.
8
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.
9
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
10
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
11
Testing When do we stop testing? Test Automation Automation of test case design Regression testing
12
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.
13
A possible solution and a Quote Software Engineering: The Holistic Discipline.
14
In Conclusion Problems: Informal nature of Software Solution: Improvements in Debugging, Testing, and Verification View SE as a holistic discipline
15
Question, Comment, Suggestion Box.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.