<?xml version="1.0" encoding="UTF-8"?>
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="JATS-archive-oasis-article1-4.xsd" article-type="research-article" dtd-version="1.4" xml:lang="ru">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Журнал Современные наукоемкие технологии</journal-title>
      </journal-title-group>
      <issn>1812-7320</issn>
      <publisher>
        <publisher-name>Общество с ограниченной ответственностью &amp;quot;Издательский Дом &amp;quot;Академия Естествознания&amp;quot;</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="publisher-id">ART-35570</article-id>
      <title-group>
        <article-title>ГИБРИДНЫЙ ПОДХОД К АВТОМАТИЗАЦИИ МОДУЛЬНОГО ТЕСТИРОВАНИЯ ПРОГРАММ НА ЯЗЫКЕ СИ</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <name-alternatives>
            <name xml:lang="ru">
              <surname>Якимов</surname>
              <given-names>И.А.</given-names>
            </name>
          </name-alternatives>
          <name-alternatives>
            <name xml:lang="en">
              <surname>Yakimov</surname>
              <given-names>I.A.</given-names>
            </name>
          </name-alternatives>
          <email>ivan.yakimov.research@yandex.ru</email>
          <xref ref-type="aff" rid="aff1"/>
        </contrib>
        <contrib contrib-type="author">
          <name-alternatives>
            <name xml:lang="ru">
              <surname>Кузнецов</surname>
              <given-names>А.С.</given-names>
            </name>
          </name-alternatives>
          <name-alternatives>
            <name xml:lang="en">
              <surname>Kuznetsov</surname>
              <given-names>A.S.</given-names>
            </name>
          </name-alternatives>
          <email>ASKuznetsov@sfu-kras.ru</email>
          <xref ref-type="aff" rid="aff1"/>
        </contrib>
      </contrib-group>
      <aff id="aff1">
        <institution xml:lang="ru">ФГАОУ ВПО «Сибирский федеральный университет»</institution>
        <institution xml:lang="en">Federal Autonomous Educational Institution of Professional Higher Education Siberian Federal University</institution>
      </aff>
      <pub-date date-type="pub" iso-8601-date="2016-02-12">
        <day>12</day>
        <month>02</month>
        <year>2016</year>
      </pub-date>
      <issue>2</issue>
      <fpage>50</fpage>
      <lpage>54</lpage>
      <permissions>
        <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
          <license-p>This is an open-access article distributed under the terms of the CC BY 4.0 license.</license-p>
        </license>
      </permissions>
      <self-uri content-type="url" hreflang="ru">https://top-technologies.ru/article/view?id=35570</self-uri>
      <abstract xml:lang="ru" lang-variant="original" lang-source="author">
        <p>В данной работе представлена модель и соответствующий прототип частично автоматизированной гибридной системы тестирования программ, написанных на языке Си, а также изучены преимущества ее использования по сравнению с тестированием вручную. Система состоит из двух связанных между собой частей – генератора тестовых данных и транслятора языка описания тестов. Генератор порождает входные тестовые данные в формате языка описания тестов, опираясь на SMT-решатель. После добавления разработчиком семантики к порожденным данным транслятор преобразует их в файл на языке C, содержащий соответствующий тестовый набор. При этом в качестве целевой библиотеки тестирования используется широко распространенный инструмент CUnit. Экспериментальные исследования показали, что данная система позволяет уменьшить размер файлов с тестовыми наборами и сократить время, затрачиваемое на разработку. Основным ограничением прототипа предложенной системы является поддержка генератором исключительно целочисленного типа данных. Таким образом, в данной работе показан выигрыш от использования предложенной гибридной системы в лабораторных условиях, несмотря на имеющиеся ограничения. Подводя итоги, можно сказать, что при дальнейшем развитии данная система может быть использована в индустрии.</p>
      </abstract>
      <abstract xml:lang="en" lang-variant="translation" lang-source="translator">
        <p>This paper presents a model and a prototype of the partially automated hybrid testing system for programs written in C language and also shows its advantage in contrast with manual testing. Mutually interconnected test data generator and a translator from a declarative testing language form the given system. The generator relies on the SMT-solver in order to produce input test data in format of the declarative testing language. When the developer adds semantics to these data, the translator transforms it into the C language file containing the corresponding test suite. The widespread CUnit library is used as a back-end for the translator output. Experimental results shows that the system allows to reduce size of the test suite files and speed up testing process. However, the main limitation of the prototype of the proposed system is supporting only of integers by the generator. Thus, the given work shows advantages from using the proposed hybrid testing system in a controlled environment. Finally, the conclusion can be made that this system can be used in industry at further development.</p>
      </abstract>
      <kwd-group xml:lang="ru">
        <kwd>генерация тестовых данных</kwd>
        <kwd>символьные вычисления</kwd>
        <kwd>язык описания тестов</kwd>
        <kwd>автоматизация тестирования программ</kwd>
        <kwd>модульное тестирование</kwd>
      </kwd-group>
      <kwd-group xml:lang="en">
        <kwd>test data generation</kwd>
        <kwd>symbolic execution</kwd>
        <kwd>declarative testing language</kwd>
        <kwd>software testing automation</kwd>
        <kwd>unit testing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <back>
    <ref-list>
      <ref>
        <note>
          <p>1.	Рубанов В.В., Хорошилов А.В., Шатохин Е.А. T2C: технология автоматизированной разработки тестов базовой функциональности программных интерфейсов // Труды Института системного программирования РАН. – 2008. – Т. 14, № 2. – С. 65–82.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>2.	Barrett C., Conway C. L., Deters M., Hadarean L., Jovanovi? D., King T., Reynolds A., Tinelli C. CVC4 // Lecture Notes in Computer Science. – 2011. – Vol. 6806, Computer Aided Verification. – P. 171–177.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>3.	Braione, P., Denaro, G., Mattavelli, A., Vivanti, M., Muhammad, A. Software testing with code-based test generators: data and lessons learned from a case study with an industrial software component // Software Quality Journal. – 2014. – Vol. 22, № 2. – P. 311–333.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>4.	Cadar C., Dunbar D., Engler D. KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs // OSDI’08 Proceedings of the 8th USENIX conference on Operating systems design and implementation. – 2008. – P. 209–224.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>5.	Hambling B., «Realistic and Cost-effective Software Testing», in Kelly, M.: Management and Measurement of Software Quality, UNICOM SEMINARS, Middlesex, UK, 1993. – Р. 95–112.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>6.	King J.C. Symbolic execution and program testing // Communications of the ACM. – 1976. – Vol. 19, № 7. – P. 385–394.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>7.	SMT-LIB. The satisfiability modulo theories library, Available at: http://smtlib.cs.uiowa.edu/</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>8.	Tassey G. The economic impacts of inadequate infrastructure for software testing // National Institute of Standards and Technology, Planning report 02-3, May 2002.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>9.	The LLVM Compiler Infrastructure, Available at: http://llvm.org/</p>
        </note>
      </ref>
    </ref-list>
  </back>
</article>
