ارائه روشی جهت تشخیص بهینه مسیرهای آزمون نرم‌افزاری با استفاده از الگوریتم‌های فراابتکاری

نوع مقاله : مقاله پژوهشی

نویسندگان

1 دانشجوی کارشناسی ارشد دانشگاه امام حسین(ع)

2 دانشگاه جامع امام حسین (ع)

3 دانشگاه جامع امام حسین(ع)

چکیده

در طول تاریخ مهندسی نرم­افزار، وجود عیب­های نرم­افزاری در قلب یک سامانه و عدم پوشش مناسب آن­ها قبل از استفاده عملیاتی، اکثر مواقع منجر به وقوع حوادث ناگوار جانی و مالی شده است. آزمونی با پوشش مناسب در سطح کد نرم‌افزار می‌تواند از وقوع بسیاری از این حوادث جلوگیری کند. آزمون مسیر مبنا به عنوان قویترین معیار پوشش در آزمون جعبه­سفید نرم­افزار محسوب می­شود. پیش‌نیاز انجام این آزمون، داشتن مجموعه‌ای از مسیرهای آزمون است. هرچه تعداد مسیرهای آزمون بیشتر باشد، سطح بیشتری از کد منبع نرم‌افزار تحت پوشش قرار گرفته و عیوب نرم‌افزاری بیشتری کشف خواهد شد. در نتیجه یک چالش‌ اساسی قبل از انجام آزمون مسیر مبنای نرم‌افزار عبارت است از شناسایی حداکثری مسیرهای آزمونی که قابلیت پیمایش داشته باشند. تاکنون کارهایی برای حداکثر نمودن تعداد مسیرهای آزمونی قابل پیمایش از جمله روش GSO انجام گرفته است، اما بررسی نتایج نشان می‌دهد تعداد مسیرهای آزمونی می‌تواند بیشتر از آن باشد که در حال حاضر به­دست آمده است. یک راه برای این مهم، استفاده از راه‌حل ترکیبی مبتنی بر دو الگوریتم تکاملی ژنتیک و پرندگان موسوم به EGSO است که در این مقاله پیشنهاد شده است. نتایج ارزیابی‌ها نشان می‌دهد که استفاده از EGSO موجب افزایش 91 درصدی تعداد مسیرهای آزمون نسبت به روش GSO شده است.

کلیدواژه‌ها


S. Saurabh Srivastava, “Optimal Path Sequencing in Basic Path Testing,” International Journal of Advanced Computational Engineering and Networking, vol. 1, no. 1, pp. 2320-2106, 2013##.
A. Moheb and R. Girgis, “Automatic Data Flow Test Paths Generation using the Genetical Swarm Optimization Technique,” International Journal of Computer Applications, vol. 1, pp. 975 – 8887, 2015##.
D. Sanjay Singla, “A Hybrid PSO Approach to Automate Test Data Generation for Data Flow Coverage with Dominance Concepts,” International Journal of Advanced Science and Technology, vol. 37, 2011##.
Z. Li, “Breading software test data with Genetic-Particle swarm mixed Algorithms,” Journal of computers, pp. 258-265, 2010##.
C. Juang, “A hybrid of genetic algorithm and particle swarm optimization for recurrent network design,” IEEE transactions on systems management and cybernetics, pp. 997-1006, 2004##.
W. F. Lammermann, “Using evolutionary algorithms for unit testing of object oriented software,” ACM, 2005##.
Y. Dong, “Automatic Generation of Software Test Cases Based on Improved Genetic Algorithm,”       IEEE-International Conference on Multimedia Technology, pp. 227-230, 2011##.
J. Kennedy, “Particle Swarm Optimization,” in IEEE International Conference on Neural Networks, 1995##.
A. S. Ghiduk, “Automatic generation of basis test paths using variable length genetic algorithm,” Information Processing Letters, no. 114, pp. 304–316, 2014##.
Y. Srivatsava, “Optimal test sequence generation using firefly algorithm,” Swarm and Evolutionary Computation, pp. 44-53, 2013##.
Y. XS, “Firefly algorithms for multimodal optimization,” in Proceedings fifth symposium on stochastic algorithms, foundations and applications, 2009##.
R. Srivastava, “An Approach of Optimal Path Generation using Ant Colony Optimization,” IEEE, 2009##.
S. Andreas Windisch, “Applying Particle Swarm Optimization to Software Testing,” in Proceedings of the conference on Genetic and evolutionary computation, 2007##.
P. Srivastava, “Path Generation for Software Testing: A Hybrid Approach Using Cuckoo Search and Bat Algorithm,” Nature-Inspired Computing and Optimization, pp. 409-424, 2017##.
 
M. Ahmed and S. Ghiduk, “Using genetic algorithms and dominance concepts for generating reduced test data,” Informatica, pp. 377–385, 2010##.
G. Michael, “Generating software test data by evolution,” IEEE Trans. Softw. Eng., pp. 1085–1110, 2001##.
M. Pargas, “Test data generation using genetic algorithms,” J. Softw. Test. Verif. Reliabil, pp. 263–282, 1999##.
M. Girgis, “Automatic test data generation for data flow testing using a genetic algorithm,” J. Univers. Comput. Sci., pp. 898–915, 2005##.
J. Diza, “A tabu search algorithm for structural software testing,” J. Comput. Oper. Res., pp. 3052–3072, 2008##.