<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.18255/1818-1015-2016-6-729-740</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-410</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Оригинальные статьи</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Articles</subject></subj-group></article-categories><title-group><article-title>Метод синтеза тестов с гарантированной полнотой по модели расширенного автомата</article-title><trans-title-group xml:lang="en"><trans-title>Deriving Test Suites with the Guaranteed Fault Coverage for Extended Finite State Machines</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-0838-8014</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Ермаков</surname><given-names>А. Д.</given-names></name><name name-style="western" xml:lang="en"><surname>Ermakov</surname><given-names>A. D.</given-names></name></name-alternatives><bio xml:lang="ru"><p>аспирант, пр. Ленина, 36, г. Томск, 634050 Россия</p></bio><bio xml:lang="en"><p>researcher, 36 Lenina ave., Tomsk 634050, Russia</p></bio><email xlink:type="simple">antonermak@inbox.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4006-1161</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Евтушенко</surname><given-names>Н. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Yevtushenko</surname><given-names>N. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>профессор, д-р. техн. наук, пр. Ленина, 36, г. Томск, 634050 Россия</p></bio><bio xml:lang="en"><p>Professor, Doctor of Technical Sciences, 36 Lenina ave., Tomsk 634050, Russia</p></bio><email xlink:type="simple">nyevtush@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Томский государственный университет</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Tomsk State University</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2016</year></pub-date><pub-date pub-type="epub"><day>20</day><month>12</month><year>2016</year></pub-date><volume>23</volume><issue>6</issue><fpage>729</fpage><lpage>740</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Ермаков А.Д., Евтушенко Н.В., 2016</copyright-statement><copyright-year>2016</copyright-year><copyright-holder xml:lang="ru">Ермаков А.Д., Евтушенко Н.В.</copyright-holder><copyright-holder xml:lang="en">Ermakov A.D., Yevtushenko N.V.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/410">https://www.mais-journal.ru/jour/article/view/410</self-uri><abstract><p>Расширенные автоматы активно используются при построении тестов для программного обеспечения на основе формальных моделей. Однако полнота тестов, построенных по расширенному автомату на основе покрытия путей, переменных и т.п., остается практически неизвестной; более того, как известно, такие тесты не обнаруживают большое количество часто встречающихся функциональных ошибок в программных реализациях системы, поведение которой описано таким расширенным автоматом. В данной работе для построения тестовых последовательностей мы предлагаем использовать шаблонную реализацию расширенного автомата в языке Java. Поскольку программа составлена по шаблону, то ошибки в программе напрямую переносятся на ошибки в расширенном автомате. В работе предлагается метод построения множества тестовых последовательностей, обнаруживающих функциональные ошибки в шаблонной реализации расширенного автомата. На первом шаге тест, построенный по расширенному автомату одним из известных методов, проверяется на полноту относительно ошибок, сгенерированных инструментом µJava в шаблонной программной реализации. После этого для каждого необнаруженного тестом программного мутанта строится мутант эталонного расширенного автомата; на следующем шаге по некоторой конечно-автоматной абстракции генерируется последовательность, различающая два расширенных автомата (если такая последовательность существует), которая добавляется в строящийся тест. Построенный таким образом тест является полным относительно ошибок, сгенерированных инструментом µJava. Если соответствующий конечный автомат, построенный посредством моделирования расширенного автомата, получается слишком сложным, или построить такой конечный автомат не представляется возможным, то полнота построенного теста не гарантируется. Однако экспериментально показывается, что исходный тест, расширенный такими различающими последовательностями, обнаруживает значительно больше функциональных ошибок в программных реализациях системы, для которой расширенный автомат используется в качестве спецификаци.</p></abstract><trans-abstract xml:lang="en"><p>Extended Finite State Machines (EFSMs) are widely used when deriving tests for checking functional requirements for software implementations. However, the fault coverage of tests covering appropriate paths, variables, etc. of the speciﬁcation EFSM, remains rather obscure and such tests do not detect many functional faults in EFSM implementations. In this paper, an approach is proposed for deriving complete tests with respect to functional faults of a proper Java EFSM implementation. First, an initial test suite derived against the speciﬁcation EFSM is checked with respect to faults generated by a µJava tool. Since the EFSM software implementation is template based, each undetected fault can be easily mapped into a mutant EFSM of the speciﬁcation machine. Thus, a distinguishing sequence is derived for two Finite State Machines modeling two EFSMs instead of deriving such a sequence for two programs. If the corresponding FSMs are too complex or cannot be completely derived, a test suite can be incomplete. However, the performed experiments clearly show that a test suite extended by such distinguishing sequences detects much more functional faults in software implementations of a system whose behaviour is described by the given EFSM.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>мутационное тестирование</kwd><kwd>расширенный автомат</kwd><kwd>конечно-автоматная абстракция</kwd><kwd>µJava</kwd></kwd-group><kwd-group xml:lang="en"><kwd>Mutation testing</kwd><kwd>Extended Finite State Machine (EFSM)</kwd><kwd>ﬁnite automata</kwd><kwd>µJava</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Kaur M., Singh R., “A Review of Software Testing Techniques”, International Journal of Electronic and Electrical Engineering, 7:5 (2014), 463–474.</mixed-citation><mixed-citation xml:lang="en">Kaur M., Singh R., “A Review of Software Testing Techniques”, International Journal of Electronic and Electrical Engineering, 7:5 (2014), 463–474.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Jorgensen P.C., Software Testing: A Craftsman’s Approach, Third Edition, Auerbach Publications, 2008.</mixed-citation><mixed-citation xml:lang="en">Jorgensen P.C., Software Testing: A Craftsman’s Approach, Third Edition, Auerbach Publications, 2008.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Nica M., Nica S., Wotawa F., “On the use of mutations and testing for debugging”, Software – practice and experience, 43:9 (2013), 1121–1142.</mixed-citation><mixed-citation xml:lang="en">Nica M., Nica S., Wotawa F., “On the use of mutations and testing for debugging”, Software – practice and experience, 43:9 (2013), 1121–1142.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Nica S., On the Use of Constraints in Program Mutations and its Applicability to Testing, PhD thesis, Graz Technical University, 2013.</mixed-citation><mixed-citation xml:lang="en">Nica S., On the Use of Constraints in Program Mutations and its Applicability to Testing, PhD thesis, Graz Technical University, 2013.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Petrenko A., Boroday S., Groz R., “Conﬁrming Conﬁgurations in EFSM Testing”, IEEE Trans. Software Eng, 30:1 (2004), 29–42.</mixed-citation><mixed-citation xml:lang="en">Petrenko A., Boroday S., Groz R., “Conﬁrming Conﬁgurations in EFSM Testing”, IEEE Trans. Software Eng, 30:1 (2004), 29–42.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">El-Fakih K., Salameh T., Yevtushenko N., “On Code Coverage of Extended FSM Based Test Suites: An Initial Assessment”, LNCS, 8763 (2014), 198–204.</mixed-citation><mixed-citation xml:lang="en">El-Fakih K., Salameh T., Yevtushenko N., “On Code Coverage of Extended FSM Based Test Suites: An Initial Assessment”, LNCS, 8763 (2014), 198–204.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">“µJava documentation. µJava home page. URL: http://cs.gmu.edu/~offutt/mujava/”, 2014, (access date: 10.04.2016).</mixed-citation><mixed-citation xml:lang="en">“µJava documentation. µJava home page. URL: http://cs.gmu.edu/~offutt/mujava/”, 2014, (access date: 10.04.2016).</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Villa, T. et al., The Unknown Component Problem: Theory and Applications, Springer, 2012, 313 pp.</mixed-citation><mixed-citation xml:lang="en">Villa, T. et al., The Unknown Component Problem: Theory and Applications, Springer, 2012, 313 pp.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Ermakov A., Yevtushenko N., “Increasing the fault coverage of tests derived against Extended Finite State Machines”, System informatics, 7 (2016), 23–32.</mixed-citation><mixed-citation xml:lang="en">Ermakov A., Yevtushenko N., “Increasing the fault coverage of tests derived against Extended Finite State Machines”, System informatics, 7 (2016), 23–32.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Alcalde B. et al., “Network Protocol System Passive Testing for Fault Management: A Backward Checking Approach”, Proc. of the 24th IFIP WG 6.1 Intern. Conf. on Formal Techniques for Networked and Distributed Systems, FORTE’2004, 150–166.</mixed-citation><mixed-citation xml:lang="en">Alcalde B. et al., “Network Protocol System Passive Testing for Fault Management: A Backward Checking Approach”, Proc. of the 24th IFIP WG 6.1 Intern. Conf. on Formal Techniques for Networked and Distributed Systems, FORTE’2004, 150–166.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Kushik N. et al., “Optimizing Protocol Passive Testing through ‘Gedanken’ Experiments with Finite State Machines”, Proc. of the Intern conference on Sofware Quality and Reliability, QSR’2016, August, 2016.</mixed-citation><mixed-citation xml:lang="en">Kushik N. et al., “Optimizing Protocol Passive Testing through ‘Gedanken’ Experiments with Finite State Machines”, Proc. of the Intern conference on Sofware Quality and Reliability, QSR’2016, August, 2016.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Kushik N., YeniguЁn H., “Heuristics for Deriving Adaptive Homing and Distinguishing Sequences for Nondeterministic Finite State Machines”, Lecture Notes in Computer Science, 9447 (2015), 243–248.</mixed-citation><mixed-citation xml:lang="en">Kushik N., YeniguЁn H., “Heuristics for Deriving Adaptive Homing and Distinguishing Sequences for Nondeterministic Finite State Machines”, Lecture Notes in Computer Science, 9447 (2015), 243–248.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Коломеец А.В., Алгоритмы синтеза проверяющих тестов для управляющих систем на основе расширенных автоматов, дис. ... канд. техн. наук, Томский государственный университет, 2010.</mixed-citation><mixed-citation xml:lang="en">Kolomeec A. V., Algoritmy sinteza proverjajushhih testov dlja upravljajushhih sistem na osnove rasshirennyh avtomatov, dis. ... kand. tekhn. nauk, Tomsk State University, 2010, (in Russian).</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Kushik N., Yevtushenko N., Cavalli A., “On Testing against Partial Non-observable Speciﬁcations”, Proc. of the Intern. Conf. on the Quality of Information and Communications Technology, 2014, 230–233.</mixed-citation><mixed-citation xml:lang="en">Kushik N., Yevtushenko N., Cavalli A., “On Testing against Partial Non-observable Speciﬁcations”, Proc. of the Intern. Conf. on the Quality of Information and Communications Technology, 2014, 230–233.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Kushik N. et al., “On adaptive experiments for nondeterministic ﬁnite state machines”, The Intern. Journal on Software Tools for Technology Transfer, 18:3 (2016), 251–264.</mixed-citation><mixed-citation xml:lang="en">Kushik N. et al., “On adaptive experiments for nondeterministic ﬁnite state machines”, The Intern. Journal on Software Tools for Technology Transfer, 18:3 (2016), 251–264.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">El-Fakih K. et al., “Distinguishing extended ﬁnite state machine conﬁgurations using predicate abstractions”, Journal on Software Research and Development (published online), 2016.</mixed-citation><mixed-citation xml:lang="en">El-Fakih K. et al., “Distinguishing extended ﬁnite state machine conﬁgurations using predicate abstractions”, Journal on Software Research and Development (published online), 2016.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">Михайлов Ю.В., Коломеец А.В., “Проверка переходов в расширенном автомате на основе срезов”, Вестник ТГУ. Серия: Управление, вычислительная техника и информатика, 3:4 (2008).</mixed-citation><mixed-citation xml:lang="en">Mikhaylov Yu. V., Kolomeets A. V., “Proverka perekhodov v  rasshirennom avtomate na osnove srezov”, Vestnik TGU. Seriya: Upravlenie, vychislitel’naya tekhnika i informatika, 3:4 (2008), (in Russian).</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">“JUnit 4, documentation. URL: http://cs.gmu.edu/~offutt/mujava/”, (access date: 10.04.2016).</mixed-citation><mixed-citation xml:lang="en">“JUnit 4, documentation. URL: http://cs.gmu.edu/~offutt/mujava/”, (access date: 10.04.2016).</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
