Synthesis of object initialisation code for symbolic execution
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Чтобы упростить тестирование программного обеспечения, разрабатываются инструменты для автоматической генерации тестов. В основе многих инструментов данного типа лежит техника символьного исполнения. Символьное исполнение позволяет генерировать тесты с высоким покрытием, но обладает рядом недостатков, один из которых — сложность синтеза кода тестов для объектно-ориентированных программ. По состояниям символьного исполнения требуется искать кодовые тестовые последовательности в обширном пространстве поиска. В данной работе предложен алгоритм эффективного поиска тестовых последовательностей, основанный на вычислении слабейших предусловий. Проведены экспериментальные запуски реализации алгоритма в символьной машине V#, по результатам которых для 10% состояний символьного исполнения были найдены тестовые последовательности. Среднее время поиска последовательности составило 70% от оценки времени, затраченного на генерацию одного теста.
To simplify software testing, tools for automatic test generation are being developed. Many tools of this type are based on the symbolic execution technique. Symbolic execution allows generating tests with high coverage, but has a number of disadvantages, one of which is the difficulty of synthesizing test code for object-oriented programs. Code test sequences must be found by symbolic execution states in an extensive search space. In this paper, we propose an effective test sequences search algorithm based on weakest preconditions. Experimental runs of the algorithm implementation in the V# symbolic machine have been performed, and the results show that test sequences were found for 10% of the symbolic execution states. The average time to find a sequence was 70% of the estimated time taken to generate a single test.
To simplify software testing, tools for automatic test generation are being developed. Many tools of this type are based on the symbolic execution technique. Symbolic execution allows generating tests with high coverage, but has a number of disadvantages, one of which is the difficulty of synthesizing test code for object-oriented programs. Code test sequences must be found by symbolic execution states in an extensive search space. In this paper, we propose an effective test sequences search algorithm based on weakest preconditions. Experimental runs of the algorithm implementation in the V# symbolic machine have been performed, and the results show that test sequences were found for 10% of the symbolic execution states. The average time to find a sequence was 70% of the estimated time taken to generate a single test.