Аннотация:
Повышение качества создаваемого программного обеспечения (ПО) является одной из основных проблем программной инженерии. Одним из путей повышения качества программ является автоматизируемая генерация тестов. В настоящей статье предлагается технология автоматизированного создания модульных тестов, комбинирующая функциональный и структурный подходы. Для обеспечения покрытия тестами путей программы используется информация, извлекаемая из исходного кода программы, а для формирования тестовых оракулов и определения параметров тестов используются частичные спецификации, заданные в форме контрактов. Разработанный подход реализован в виде инструментального прототипа, анализирующего программы на языке Java и формирующего тест-кейсы для методов классов в формате JUnit, используя CoFoJa (Contracts For Java) для задания контрактов. Испытание разработанного средства на ряде тестов показало работоспособность подхода.