Preview

Машиностроение и компьютерные технологии

Расширенный поиск

Метод автоматизированного покрытия кода тестами с помощью эволюционных алгоритмов, базирующийся на функции приспособленности по многим траекториям

https://doi.org/10.24108/1018.0001434

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

Аннотация

Тестирование является трудоемкой и ресурсоемкой задачей. Около половины всего времени разработки проекта часто тратится на тестирование.

В связи с этим в последнее время многие исследования посвящены вопросам автоматизации процессов создания и запуска тестов. В последнее время опубликовано достаточно много работ, посвященных  данной теме. Однако, большинство из них используют модульное тестирование, при котором покрытие разных фрагментов программы происходит независимо друг от друга. Поэтому не учитывалась внутренняя структура программы.

В данной статье представлен метод построения набора тестов на основе эволюционных алгоритмов, учитывающий особенности всей программы в целом.

Эволюционные алгоритмы — широко развивающийся в последнее время класс оптимизационных алгоритмов, использующих идеи искусственного интеллекта и предназначенных для ведения направленного поиска. Они позволяют успешно решать задачи тестирования программного обеспечения, такие как тестирование встроенных систем и автоматическое построение модульных тестов.

В процессе реализации эволюционного подхода в данной работе были решены следующие задачи. Предложен метод определения функции приспособленности, которая позволяет рассмотреть приближение вдоль всех возможных траекторий, что обеспечивает решение задачи покрытия практически в любом случае.  Однако, число таких траекторий может быть достаточно большим, что приводит к существенному увеличению времени выполнения тестов. В данной работе предложен метод приближений вдоль всех возможных траекторий, позволяющий выполнить тестирование за приемлемое время. Уменьшение временных затрат для достижение цели осуществляется за счет выбора  из всех возможных траекторий такой, для которой значение расстояния до инструкции минимально.

Исследование предложенного метода проводилось на четырех различных задачах, для каждой из которых было выполнено порядка 1000 запусков. Представленные результаты исследования показали, что представленный метод является более надежным, чем обычно используемые подходы, в которых выбирается опорная траектория. Кроме того, была выполненная оценка временных затрат, показала и большую эффективность рассмотренного в статье метода.

Об авторах

Д. И. Соломатина
МГТУ им. Н.Э. Баумана, Москва
Россия


М. В. Филиппов
МГТУ им. Н.Э. Баумана, Москва
Россия


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

1. Скобцов Ю.А. Основы эволюционных вычислений: учеб. пособие. Донецк: Изд-во Донецкого национ. техн. ун-та, 2008. 326 с.

2. Weiser M.D., Gannon J.D., McMullin P.R. Comparison of structural test coverage metrics // IEEE Software. 1985. Vol. 2. No. 2. Pp. 80—85. DOI: 10.1109/MS.1985.230356

3. Harman M., Mansouri S.A., Yuanyuan Zhang. Search-based software engineering: Trends, techniques and applications // ACM Computing Surveys. 2012. Vol. 45. No. 1. Article no. 11. DOI: 10.1145/2379776.2379787

4. McMinn P. Search-based software test data generation: A survey // Software Testing, Verification and Reliability. 2004. Vol. 14. No. 2. Pp. 105—156. DOI: 10.1002/stvr.294

5. Harman M., McMinn P. A theoretical and empirical analysis of evolutionary testing and Hill climbing for structural test data generation // Intern. symp. on software testing and analysis: ISSTA 2007 (London, UK, July 9-12, 2007): Proc. N.Y.: ACM, 2007. Pp. 73—83. DOI: 10.1145/1273463.1273475

6. Kirkpatrick S., Gelatt C.D., Vecchi M.P. Optimization by simulated annealing // Science. New ser. 1983. Vol. 220. No. 4598. Pp. 671-680. DOI: 10.1126/science.220.4598.671

7. Structural coverage metrics: executive summary / IPL: Information Processing Ltd.; Software Testing White Papers. Режим доступа: https://www.math.unipd.it/~tullio/IS-1/Dispense_2003/Software_Testing_Metrics.htm (дата обращения 3.12.2018).

8. Tracey N., Clark J., Mander K., McDermid J. An automated framework for structural test-data generation // 13th IEEE Intern. conf. on automated software engineering (Honolulu, Hawaii, USA, October 13-16, 1998): Proc. N.Y.: IEEE,1998. Pp. 285-288. DOI: 10.1109/ASE.1998.732680

9. Baars A., Harman M., Hassoun Y., Lakhotia K., McMinn P., Tonella P., Vos T. Symbolic search-based testing // 26th IEEE/ACM Intern. conf. on automated software engineering: ASE’2011 (Oread, Lawrence, Kansas, USA, November 6-12, 2011): Proc. Wash.: IEEE, 2011. Pp. 53—62. DOI: 10.1109/ASE.2011.6100119

10. Godefroid P., Halleux P.de, Nori A.V., Rajamani S.K., Schulte W., Tillmann N., Levin M.Y. Automating software testing using program analysis // IEEE Software. 2008. Vol. 25. No. 5. Pp. 30—37. DOI: 10.1109/MS.2008.109


Для цитирования:


Соломатина Д.И., Филиппов М.В. Метод автоматизированного покрытия кода тестами с помощью эволюционных алгоритмов, базирующийся на функции приспособленности по многим траекториям. Машиностроение и компьютерные технологии. 2018;(10):30-40. https://doi.org/10.24108/1018.0001434

For citation:


Solomatina D.I., Filippov M.V. Multi-trajectory Fitness Function-based Method of Automated Test Coverage for Code Using Evolutionary Algorithms. Mechanical Engineering and Computer Science. 2018;(10):30-40. (In Russ.) https://doi.org/10.24108/1018.0001434

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


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


ISSN 2587-9278 (Online)