1 research outputs found

    Декомпозиція вхідних даних у задачах генерування модульних тестів

    Get PDF
    The research aims to enhance the decomposition methods for the input data in automatic test task by searching for the new decomposition principles. The research uses isolation, structural and functional modeling to propose an advanced clusterization model for the source code of software under testing. Some issues of current approaches to input data partitioning in symbolic execution software are discussed. Consequently, the strong and weak points are highlighted. Furthermore, code decomposition methods for recovering software design from source code are compared to ones that symbolic execution systems use. The formed hypothesis assumes that approaches and principles which are used to obtain the "knowledge" about software could be utilized to generate better input data partition for test generation systems. The paper describes the benefits of advanced decomposition in automated unit testing. According to the analysis, the source code is the primary object to obtain the data for clustering algorithms. The research highlights the possible entities which could be a base node for clusterization and provides arguments for using function as one. The paper determines the characteristics set to calculate the distance between the generated clusters and determine elements that should be combined into a cluster. The research proposes to use caller and callee relationship between functions and write/read between function and data outside of it local scope as primary characteristics for clusterization. If argument or return type of a function is user defined, then it may be used as a secondary parameter. The paper describes the model to calculate the distance between the functions or function and clusters. This model could be used to construct the clusterization algorithms for the input data of test generation systems. The benefits of proposed solution are a possibility to use the defined characteristic as a source of additional information to generate the test purposes and set goals for symbolic execution and potential optimization of computations due to high similarity of elements in clusters.Для дослідження можливостей декомпозиції вхідних даних у задачах генерування модульних тестів застосовано методи ізолювання, структурне та функціональне моделювання. Проаналізовано наявні методи та виділено основні стратегії, які застосовуються системами символьного виконання. Описано їх переваги та недоліки. Запропоновано нові методи кластеризації вхідних даних для генерування модульних тестів. Визначено основні кроки для створення моделі кластеризації вхідних даних з використанням засобів символьного виконання. Обґрунтовано застосування коду як основного джерела даних для кластеризації. Охарактеризовано об'єкти, що містяться у вхідних даних або пов'язані з ними та є потенційними сутностями для кластеризації. Визначено функцію як множину операторів мови програмування, одиницею декомпозиції коду програми для генерування модульних тестів. Охарактеризовано її властивості за мірою придатності кількісних і якісних характеристик для створення функції подібності. Обґрунтовано вибір зв'язків з іншими функціями та звертань до даних за межами локальної області видимості функції як основних параметрів кластеризації. Визначено користувацькі типи даних, які використовуються для визначення параметрів і значення, що повертається, як можливі другорядні параметри кластеризації. Сформульовано задачу кластеризації на підставі обраних характеристик для вхідних даних, що використовуються для генерування тестів. Запропоновано методи обчислення міри близькості між окремими функціями, а також між функцією та кластером. Описано практичні методи для обчислення характеристик та сутностей з вхідних даних. Запропоновано подальші дослідження з метою визначення оптимальних значень коефіцієнтів для запропонованої моделі кластеризації та функції розпізнавання для перевірки близькості кластерів до відомих шаблонів, що створить додаткові можливості для генерування тестів
    corecore