Метод синтеза тестов с гарантированной полнотой по модели расширенного автомата


https://doi.org/10.18255/1818-1015-2016-6-729-740

Полный текст:


Аннотация

Расширенные автоматы активно используются при построении тестов для программного обеспечения на основе формальных моделей. Однако полнота тестов, построенных по расширенному автомату на основе покрытия путей, переменных и т.п., остается практически неизвестной; более того, как известно, такие тесты не обнаруживают большое количество часто встречающихся функциональных ошибок в программных реализациях системы, поведение которой описано таким расширенным автоматом. В данной работе для построения тестовых последовательностей мы предлагаем использовать шаблонную реализацию расширенного автомата в языке Java. Поскольку программа составлена по шаблону, то ошибки в программе напрямую переносятся на ошибки в расширенном автомате. В работе предлагается метод построения множества тестовых последовательностей, обнаруживающих функциональные ошибки в шаблонной реализации расширенного автомата. На первом шаге тест, построенный по расширенному автомату одним из известных методов, проверяется на полноту относительно ошибок, сгенерированных инструментом µJava в шаблонной программной реализации. После этого для каждого необнаруженного тестом программного мутанта строится мутант эталонного расширенного автомата; на следующем шаге по некоторой конечно-автоматной абстракции генерируется последовательность, различающая два расширенных автомата (если такая последовательность существует), которая добавляется в строящийся тест. Построенный таким образом тест является полным относительно ошибок, сгенерированных инструментом µJava. Если соответствующий конечный автомат, построенный посредством моделирования расширенного автомата, получается слишком сложным, или построить такой конечный автомат не представляется возможным, то полнота построенного теста не гарантируется. Однако экспериментально показывается, что исходный тест, расширенный такими различающими последовательностями, обнаруживает значительно больше функциональных ошибок в программных реализациях системы, для которой расширенный автомат используется в качестве спецификаци.


Об авторах

А. Д. Ермаков
Томский государственный университет
Россия

аспирант, пр. Ленина, 36, г. Томск, 634050 Россия



Н. В. Евтушенко
Томский государственный университет
Россия
профессор, д-р. техн. наук, пр. Ленина, 36, г. Томск, 634050 Россия


Список литературы

1. Kaur M., Singh R., “A Review of Software Testing Techniques”, International Journal of Electronic and Electrical Engineering, 7:5 (2014), 463–474.

2. Jorgensen P.C., Software Testing: A Craftsman’s Approach, Third Edition, Auerbach Publications, 2008.

3. Nica M., Nica S., Wotawa F., “On the use of mutations and testing for debugging”, Software – practice and experience, 43:9 (2013), 1121–1142.

4. Nica S., On the Use of Constraints in Program Mutations and its Applicability to Testing, PhD thesis, Graz Technical University, 2013.

5. Petrenko A., Boroday S., Groz R., “Confirming Configurations in EFSM Testing”, IEEE Trans. Software Eng, 30:1 (2004), 29–42.

6. El-Fakih K., Salameh T., Yevtushenko N., “On Code Coverage of Extended FSM Based Test Suites: An Initial Assessment”, LNCS, 8763 (2014), 198–204.

7. “µJava documentation. µJava home page. URL: http://cs.gmu.edu/~offutt/mujava/”, 2014, (access date: 10.04.2016).

8. Villa, T. et al., The Unknown Component Problem: Theory and Applications, Springer, 2012, 313 pp.

9. Ermakov A., Yevtushenko N., “Increasing the fault coverage of tests derived against Extended Finite State Machines”, System informatics, 7 (2016), 23–32.

10. 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.

11. 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.

12. 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.

13. Коломеец А.В., Алгоритмы синтеза проверяющих тестов для управляющих систем на основе расширенных автоматов, дис. ... канд. техн. наук, Томский государственный университет, 2010.

14. Kushik N., Yevtushenko N., Cavalli A., “On Testing against Partial Non-observable Specifications”, Proc. of the Intern. Conf. on the Quality of Information and Communications Technology, 2014, 230–233.

15. Kushik N. et al., “On adaptive experiments for nondeterministic finite state machines”, The Intern. Journal on Software Tools for Technology Transfer, 18:3 (2016), 251–264.

16. El-Fakih K. et al., “Distinguishing extended finite state machine configurations using predicate abstractions”, Journal on Software Research and Development (published online), 2016.

17. Михайлов Ю.В., Коломеец А.В., “Проверка переходов в расширенном автомате на основе срезов”, Вестник ТГУ. Серия: Управление, вычислительная техника и информатика, 3:4 (2008).


Дополнительные файлы

Для цитирования: Ермаков А.Д., Евтушенко Н.В. Метод синтеза тестов с гарантированной полнотой по модели расширенного автомата. Моделирование и анализ информационных систем. 2016;23(6):729-740. https://doi.org/10.18255/1818-1015-2016-6-729-740

For citation: Ermakov A.D., Yevtushenko N.V. Deriving Test Suites with the Guaranteed Fault Coverage for Extended Finite State Machines. Modeling and Analysis of Information Systems. 2016;23(6):729-740. (In Russ.) https://doi.org/10.18255/1818-1015-2016-6-729-740

Просмотров: 281

Обратные ссылки

  • Обратные ссылки не определены.


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1818-1015 (Print)
ISSN 2313-5417 (Online)