Improved Software through the Use of Static and Dynamic Analysis in Testing

It is a known fact throughout the industry that testing of embedded software is difficult; that there is a problem with quality; and that the testing process itself is not very efficient. This seminar is based on practical experience in improving the software process and testing efficiency in our company. The results apply to software in general, not only to embedded software.

We will demonstrate how we:

  • assessed our software process by analyzing problem reports from earlier projects,
  • introduced methods and tools for static and dynamic analysis in our testing strategy,
  • achieved a 46% increase in testing efficiency,
  • and a 75% reduction in problem reports after release.
The seminar will give you practical, workable advice on:
  • Quick and cost efficient initial assessment of the software process.
  • Defect prevention through categorization of problems from previous projects.
  • High-lighting hard-to-find problems in the code semantics and structure.
  • Quantifying the effectiveness of testing by measuring test case coverage.
For companies hesitating to invest in formal assessments according to CMMI or BOOTSTRAP, analysis of problem reports from previous projects is a quick and cost efficient way of gaining a first insight into the underlying problems of the software development process. The seminar will demonstrate what information can be extracted and the effect on the development process.

Categorizing problems to find common patterns enables defect prevention. When the categorization scheme is accompanied by comprehensive statistics, you can benchmark your company's performance to world class. Such a categorization scheme is published by Boris Beizer in his book: Software Testing Techniques.

Static and Dynamic analysis are tool-based techniques to improve testing efficiency dramatically. The presentation of these will be accompanied by examples in such a tool.

Static analysis is extremely efficient in high-lighting semantic problem areas in the source code regarding misuse of types and variables. Structural metrics are calculated to improve the quality of the code structure, such as McCabe's complexity measure, depth of loop nesting etc.

Dynamic analysis quantifies the test coverage of a software system. You are able to discover those parts of the code that your testcases have not exercised. This makes it easy to generate new testcases, achieve higher coverage of the code, and higher quality at marginal extra cost.

The theory of static and dynamic analysis will be explained, but the seminar will maintain a practical viewpoint, so that you can carry back the ideas and implement them immediately. The presentation will be accompanied by examples run on a commercially available tool.

More information

The background for this seminar was a Process Improvement Experiment (PET) funded by EU under the ESSI programme. ESSI (European System and Software Initiative) aims at improving Software Best Practice in Europe. The final report can be downloaded from here: Finalrep.doc.
The results of the project were in a shorter form presented at e.g. SQW'96 under the title: "Experience-driven Process Improvement Boosts Software Quality". You can download from here the paper and viewgraphs.
Our recommendations on how to use the test techniques were presented at e.g. SQW'97 and QWE'97 under the title: "How to Apply Static and Dynamic Analysis in Practice". You can download from here the paper and viewgraphs.
All of the experiences and recommendations in the reports above are included in the seminar.

About the instructor

Otto Vinter is a software engineering mentor specialising in software process improvements. He is on the programme committee of several international conferences, performs mentoring activities for clients, and is an expert evaluator on the framework programmes of the CEC.
The above work was performed while he was responsible for software process improvements projects at Brel & Kjr. He has also been active in defining software engineering standards, procedures, and methods to be employed at Brel & Kjr.
He has managed software development projects for 30 years. He holds a Masters Degree in Computer Science from the Danish Technical University (1968).

My English home page
Min danske hjemmeside

Last modified: 2008-10-21