<?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="doi">10.17513/snt.40817</article-id>
      <article-id pub-id-type="publisher-id">ART-40817</article-id>
      <title-group>
        <article-title>МЕТОД АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ANDROID-ПРИЛОЖЕНИЙ БЕЗ ИЗМЕНЕНИЯ ИСХОДНОГО КОДА С ВНЕДРЕНИЕМ ТЕСТОВОГО АГЕНТА</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>Goldyshev</surname>
              <given-names>D. M.</given-names>
            </name>
          </name-alternatives>
          <email>goldyshev.work@mail.ru</email>
          <xref ref-type="aff" rid="affdfa400de"/>
        </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>Fetisov</surname>
              <given-names>M. V.</given-names>
            </name>
          </name-alternatives>
          <email>Российская Федерация</email>
          <xref ref-type="aff" rid="affdfa400de"/>
        </contrib>
      </contrib-group>
      <aff id="affdfa400de">
        <institution xml:lang="ru">Федеральное государственное автономное образовательное учреждение высшего образования «Московский государственный технический университет имени Н. Э. Баумана (национальный исследовательский университет)»</institution>
        <institution xml:lang="en">Federal State Autonomous Educational Institution of Higher Education «Bauman Moscow State Technical University»</institution>
      </aff>
      <pub-date date-type="pub" iso-8601-date="2026-06-30">
        <day>30</day>
        <month>06</month>
        <year>2026</year>
      </pub-date>
      <issue>6</issue>
      <fpage>60</fpage>
      <lpage>66</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/ru/article/view?id=40817</self-uri>
      <abstract xml:lang="ru" lang-variant="original" lang-source="author">
        <p>Автоматизация тестирования графического интерфейса Android-приложений затрудняется, если тестируемый продукт поставляется в виде готового пакета, а изменение его исходного кода недопустимо. Внешние средства автоматизации работают только с видимым представлением и не дают доступа к внутренним объектам интерфейса приложения. Целью работы является расширение приёма динамической инъекции кода на платформу Android при сохранении неинвазивности: внедрение тестового агента в процесс приложения, организация канала связи с внешней системой тестирования и передача параметров сеанса без изменения исходного кода и манифеста приложения. Методологическую основу составили анализ механизмов динамической загрузки разделяемых библиотек, изучение средств проброса соединений, проектирование архитектуры метода и его прикладная апробация на эмуляторе Android для приложений на основе фреймворка Qt. В результате определены действия по формированию тестового экземпляра приложения, способ загрузки агента вместе с приложением и схема обмена данными с внешней системой тестирования без изменения состава компонентов и разрешений приложения. Сформулированы условия неинвазивности через сохранение публичного контракта приложения и семантики его наблюдаемого поведения, определены границы применимости метода. Полученные результаты подтверждают возможность тестирования графического интерфейса Android-приложений на основе фреймворка Qt с доступом к объектной модели интерфейса без изменения исходного кода тестируемого продукта.</p>
      </abstract>
      <abstract xml:lang="en" lang-variant="translation" lang-source="translator">
        <p>Automating graphical interface testing of Android applications is hindered when the application under test is shipped as a prebuilt package and modifying its source code is not permitted. External automation tools operate only on the visible representation and do not provide access to the internal objects of the application interface. The aim of the work is to extend dynamic code injection to the Android platform while preserving non-invasiveness: injecting the test agent into the application process, organizing a communication channel with the external testing system, and passing session parameters without modifying the source code or the application manifest. The methodological basis comprised analysis of dynamic loading mechanisms for shared libraries, study of connection-forwarding facilities, design of the method architecture, and its applied evaluation on an Android emulator for applications based on the Qt framework. As a result, the steps for preparing a test instance, loading the agent together with the application, and the data exchange scheme with the external testing system have been defined without changing the components or permissions of the application. The conditions of non-invasiveness, based on preserving the public contract of the application and the semantics of its observable behavior, were formulated, and the applicability boundaries of the method were defined. The obtained results confirm the feasibility of testing the graphical interface of Android applications based on the Qt framework with access to the interface object model without modification of the source code of the application under test.</p>
      </abstract>
      <kwd-group xml:lang="ru">
        <kwd>динамическая инъекция кода</kwd>
        <kwd>автоматизированное тестирование</kwd>
        <kwd>объектная модель интерфейса</kwd>
        <kwd>графический пользовательский интерфейс</kwd>
        <kwd>фреймворк Qt</kwd>
        <kwd>неинвазивное тестирование</kwd>
        <kwd>Android</kwd>
      </kwd-group>
      <kwd-group xml:lang="en">
        <kwd>dynamic code injection</kwd>
        <kwd>automated testing</kwd>
        <kwd>graphical user interface</kwd>
        <kwd>interface object model</kwd>
        <kwd>Qt framework</kwd>
        <kwd>non-invasive testing</kwd>
        <kwd>Android</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <back>
    <ref-list>
      <ref>
        <note>
          <p>1. Mahmud T., Che M., Ngu A., Yang G. Why Android app testing falls short: empirical insights from open-source projects and a practitioner survey // Empirical Software Engineering. 2025. Vol. 30. No. 6. Art. 163. DOI: 10.1007/s10664-025-10726-x.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>2. Linares-Vásquez M., Moran K., Poshyvanyk D. Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mobile App Testing // IEEE International Conference on Software Maintenance and Evolution (ICSME ’17). 2017. P. 399–410. DOI: 10.1109/ICSME.2017.27.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>3. Kong P., Li L., Gao J., Liu K., Bissyandé T.F., Klein J. Automated Testing of Android Apps: A Systematic Literature Review // IEEE Transactions on Reliability. 2019. Vol. 68. No. 1. P. 45–66. DOI: 10.1109/TR.2018.2865733.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>4. Kousar A., Khan S. U. R., Mashkoor A., Iqbal J. A Systematic Literature Review on Graphical User Interface Testing Through Software Patterns // IET Software. 2025. Vol. 2025. No. 1. Art. 9140693. DOI: 10.1049/sfw2/9140693.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>5. Deshmukh P. S., Date S. S., Mahalle P. N., Barot J. Automated GUI Testing for Enhancing User Experience (UX): A Survey of the State of the Art // ICT Systems and Sustainability. Springer, Singapore. 2023. P. 619–628. DOI: 10.1007/978-981-99-5652-4_55.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>6. Nie L., Said K.S., Ma L., Zheng Y., Zhao Y. A systematic mapping study for graphical user interface testing on mobile apps // IET Software. 2023. Vol. 17. No. 3. P. 249–267. DOI: 10.1049/sfw2.12123.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>7. Hu C., Neamtiu I. Automating GUI testing for Android applications // Proceedings of the 6th International Workshop on Automation of Software Test (AST ’11). ACM, New York. 2011. P. 77–83. DOI: 10.1145/1982595.1982612.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>8. Choudhary S. R., Gorla A., Orso A. Automated Test Input Generation for Android: Are We There Yet? // Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (ASE ’15). IEEE. 2015. P. 429–440. DOI: 10.1109/ASE.2015.89.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>9. Yu S., Fang C., Li X., Ling Y., Chen Z., Su Z. Effective, Platform-Independent GUI Testing via Image Embedding and Reinforcement Learning // ACM Transactions on Software Engineering and Methodology. 2024. Vol. 33. No. 7. P. 175:1–175:27. DOI: 10.1145/3674728.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>10. Vos T. E. J., Aho P., Ricós F. P., Valdes O.R., Mulders A. Testar: Scriptless Testing Through Graphical User Interface // Software Testing, Verification and Reliability. 2021. Vol. 31. No. 3. Art. e1771. DOI: 10.1002/stvr.1771.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>11. Spinak J. Model-based GUI automation // Software and Systems Modeling. 2025. DOI: 10.1007/s10270-025-01319-9.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>12. Gu T., Sun C., Ma X., Cao C., Xu C., Yao Y., Zhang Q., Lu J., Su Z. Practical GUI Testing of Android Applications via Model Abstraction and Refinement // Proceedings of the 41st IEEE/ACM International Conference on Software Engineering (ICSE ’19). IEEE. 2019. P. 269–280. DOI: 10.1109/ICSE.2019.00042.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>13. Su T., Meng G., Chen Y., Wu K., Yang W., Yao Y., Pu G., Liu Y., Su Z. Guided, stochastic model-based GUI testing of Android apps // Proceedings of the 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). ACM. 2017. P. 245–256. DOI: 10.1145/3106237.3106298.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>14. Moran K., Linares-Vásquez M., Bernal-Cárdenas C., Vendome C., Poshyvanyk D. CrashScope: A Practical Tool for Automated Testing of Android Applications // Proceedings of the IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C ’17). IEEE. 2017. P. 15–18. DOI: 10.1109/ICSE-C.2017.16.</p>
        </note>
      </ref>
      <ref>
        <note>
          <p>15. Голдышев Д. М., Фетисов М. В. Метод неинвазивного автоматизированного тестирования графического интерфейса настольных приложений на основе динамической инъекции кода // Современные наукоёмкие технологии. 2026. № 3. С. 14–20. DOI: 10.17513/snt.40700.</p>
        </note>
      </ref>
    </ref-list>
  </back>
</article>
