Defect detection by Static Analysis methods

Defect detection by static analysis is one of the most promising direction of software quality assurance. In contrast to dynamic analysis methods (for example, testing), static analysis methods can look through all possible program traces. So, the whole program will be covered. Static analysis methods allows defect detection with high efficiency, and these methods do not demand program execution.

Defect detection tool Aegis is developed in our laboratory. Aegis uses original analysis and defect detection algorithms.

You can read more about defect detection tool Aegis here.

Research projects

  • Research and Development of Source Code Defect Detection System. 2008-2009
  • Multithread Program Defect Detection via Static Analysis Methods. 2009-2010
  • Automate Program Model Construction for Verification by Model Checking. 2008-2011
  • Synchronization Error Detection in SystemC Models. 2010-2011

Conferences

Articles

Static Data Race Detection in SystemC Parallel Programs

M. Moiseev, A. Zakharov. 6th International Computer Science Symposium in Russia. The Second Workshop on Program Semantics, Specification and Verification: Theory and Applications. Yaroslavl, 2011. pp. 136-143.

Hardware/software systems simulated using SystemC language are usually parallel and, therefore, may contain synchronization errors. One widespread type of synchronization errors is data races. In this paper we propose an approach to data race detection in SystemC programs which is based on source code static analysis. We‘ve developed static analysis algorithms that can extract information for data race detection in SystemC program without quantitative time. These algorithms can detect all errors that exist in the program. Efficiency of our approach is shown by the evaluation results of the developed tool on a set of test SystemC programs.

Download article

Using Dependencies to Improve Precision of Program Static Analysis

M. Glukhikh, V. Itsykson, V. Tsesko. 6th International Computer Science Symposium in Russia. The Second Workshop on Program Semantics, Specification and Verification: Theory and Applications. Yaroslavl, 2011. pp. 51-58.

Development of LLVM-based static analysis tool using type and effect systems

M. Belyaev, V. Tsesko. 6th International Computer Science Symposium in Russia. The Second Workshop on Program Semantics, Specification and Verification: Theory and Applications. Yaroslavl, 2011. pp. 102-110.

Defect detection for multithreaded programs with semaphore-based synchronization

M. Moiseev. Software Engineering Conference in Russia (CEE-SECR), 2010 6th Central and Eastern European

The solution to the problem of automatic defects detection in multithreaded programs is covered in this paper. The suggested approach use state-based static analysis algorithms. For analysis of thread operations and thread synchronization extended lockset-analysis algorithm is used. For take into account thread interconnections the analysis algorithms propagates shared objects changes through the threads. The approach allows to detect all single-threaded program defect and some synchronization errors such as Race condition and Blocking Call Misuse.

Link to IEEE Xplore

Automatic defects detection in industrial C/C++ software

V. Itsykson, M. Moiseev, V. Tsesko, A. Zakharov. Software Engineering Conference in Russia (CEE-SECR), 2009 5th Central and Eastern European

The solution to the problem of automatic defects detection in industrial software is covered in this paper. The results of the experiments with the existing tools are presented. These results stand for inadequate efficiency of the implemented analysis. Existing source code static analysis methods and defects detection algorithms are covered. The program model and the analysis algorithms based on existing approaches are proposed. The problems of co-execution of different analysis algorithms are explored. The means for improvement of analysis precision and algorithms performance are proposed. Advantages of the approaches developed are soundness of a solution, full support of the features of target programming languages and analysis of the programs lacking full source code using annotations mechanism. The algorithms proposed in the paper are implemented in the automatic defects detection tool.