رویکردی مدل-رانه برای خودکارسازی آزمون رگرسیون با استفاده از تبدیل مدل افزایشی

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

نویسندگان

1 گروه مهندسی کامپیوتر - واحد علوم و تحقیقات - دانشگاه آزاد اسلامی

2 دانشکده مهندسی کامپیوتر - دانشگاه صنعتی شریف

چکیده

پیچیدگی سیستم‌های نرم‌افزاری و وابستگی جوامع به این سیستم‌ها رو به افزایش است. با توسعه فن‌آوری‌های تحت وب و رویکردهای سرویس‌گرا، ضرورت تطبیق با نیازهای کاربران در هنگام درخواست برای اِعمال تغییرات و تکامل سیستم‌ها، بر این پیچیدگی افزوده است. روش‌های توسعه نرم‌افزار مدل-رانه با تمرکز بر استفاده از مدل به‌عنوان مصنوع اصلی و به‌کارگیری رویکردهای خودکار، توسعه محصولات نرم‌افزاری دارای کیفیت بالا را وعده داده است. هدف از این مقاله ارائه رویکردی مدل-رانه برای انتخاب خودکار زیرمجموعه مناسب از موارد آزمون برای آزمون رگرسیون مبتنی بر مدل با استفاده از انتشار تغییرات و تبدیل مدل افزایشی است. استفاده از تبدیل مدل افزایشی امکان انتشار خودکار تغییرات مدل و درنهایت انتخاب مجموعه موارد آزمون سازگار جهت انجام آزمون بعد از تغییرات را در سطح انتزاعی فراهم می‌آورد. دقت و کارایی چارچوب پیشنهادی با معرفی معیارهای بسندگی جدیدی بر اساس مدل تغییرات بر روی سه موردمطالعه ارزیابی و تحلیل شده است. از مزایای این روش تخمین زودهنگام میزان تلاش برای تجزیه و تحلیل تأثیر تغییرات، کاهش هزینه آزمون رگرسیون مستقل از سکو و انتخاب زیرمجموعه مناسب برای آزمون رگرسیون برای تشخیص زودهنگام خطای تولید محصول نرم‌افزاری است.

کلیدواژه‌ها


عنوان مقاله [English]

A Model Driven Approach to Automate Software Regression Testing Using Incremental Model Transformation

نویسندگان [English]

  • M. Nooraei Abadeh 1
  • S. H. Mirian Hosseinabadi 2
1 Department of Computer Engineering, Science and Research Branch, Islamic Azad University, Tehran, Iran
2 Department of Computer Science, Sharif University of Technology, Tehran, Iran
چکیده [English]

The increase in complexity and the rate of technological changes in modern software development have led to a demand for systematic methods that raise the abstraction level for system maintenance and regression testing. Model Driven Engineering (MDE) has promised to reduce extra coding efforts in software maintenance activities using traceable change management, especially in rapidly changing application. The paper presents a Z-notation based framework, called Changed-based Regression Testing (ChbRT), for formal modeling of regression testing in the context of MDE. The framework proposes to automatically propagate the changes from a software specification to testing artifacts in order to preserve consistency after system evolution. The framework is enriched by providing a new category of coverage metrics for change-based regression testing. The proposed framework is expected to be beneficial in both platform independent and specific levels of ChbRT by identifying the suitable coverage according to available testing resources. The accuracy and efficiency of the proposed framework have been evaluated and analyzed on three case studies.

کلیدواژه‌ها [English]

  • Model Driven Development
  • Regression Testing
  • Incremental Model Transformation
  • Change Model
  • Consistency
  • Coverage Criteria
[1]      زینب اسمعیل‌پور، اشکان سامی، «گسترش ابزارهای خودکار شناسایی الگوهای طراحی با عملگر تصحیح برچسب»، مجله مهندسی برق دانشگاه تبریز، دوره 45، شماره 2، صفحه 11-26، 2014.
[2]      لیلا صمیمی دهکردی، بهمن زمانی و شکوفه کلاهدوز رحیمی، «ارائه روشی جدید برای تبدیل مدل دوسویه بر اساس چارچوب اپسیلون و تکنیک‌های ردیابی‌پذیری»، مجله مهندسی برق دانشگاه تبریز، دوره 47، شماره 3، صفحه 1121-1132، 2017.
[3]      L. C. Briand, Y. Labiche, and T. Yue, “Automated Traceability Analysis for UML Model Refinements,” Information and Software Technology, vol. 51, no. 2, pp. 512-527, 2009.
[4]      H. Zhu, P. A. Hall, and H. R. May, “Software unit test coverage and adequacy,” ACM Computing Surveys, vol. 29, pp. 336–427, 1997.
[5]      J. M. Spivey, The Z Notation: A Reference Manual, Prentice Hall, Englewood Cliffs, NJ, 1992.
[6]      M. Saaltink, “The Z/EVES System,” in Proceedings of the 10th International Conference of Z Users on The Z formal Specification Notation, Lecture Notes in Computer Science 1212, pp. 72-85, 1997.
[7]      R. Heckel, J. M. Kuster, and G. Taentzer, “Confluence of typed attributed graph transformation systems. In: Graph Transformation,” in First International Conference. Lecture Notes in Computer Science 2505, pp. 161–176, 2002.
[8]      P. Stevens, “Bidirectional model transformations in QVT: semantic issues and open questions,” Software & Systems Modeling, vol. 9, p. 7, 2010.
[9]      A. Agrawal, G. Karsai, S. Neema, F. Shi, and A. Vizhanyo, “The Design of a Language for Model Transformations,” Journal of Software and System Modeling, vol. 5, pp. 261-288 2005.
[10]      J. Buckley, T. Mens, M. Zenger, A. Rashid, and G. Kniesel, “Towards a taxonomy of software change,” Software Maintenance and Evolution, vol. 17, pp. 309-332, 2005.
[11]      G. Bergmann, I. Ráth, G. Varró, and D. Varró, “Change-driven model transformations,” Software & Systems Modeling, vol. 11, pp. 431-461, 2012.
[12]      G. Myers, The Art of Software Testing, John Wiley & Sons, Inc., 2004.
[13]      P. Ammann and J. Offutt, “Using formal methods to derive test frames in category-partition testing,” in Proceeding of the 9th Annual Conference on Computer Assurance, pp. 69-80, 1994.
[14]      D. Varró and A. Balogh, “The Model Transformation Language of the VIATRA2 Framework,” Science of Computer Programming, vol. 68, pp. 214–234, 2007.
[15]      G. Rothermel and M. J. Harrold, “Analysing Regression Test Selection Techniques,” IEEE Transactions on Software Engineering, vol. 22, pp. 529-551, 1996.
[16]      E. Engström, M. Skoglund, and P. Runeson, “Empirical evaluations of regression test selection techniques: a systematic review. Proceedings of the Empirical software engineering and measurement,” in ACM-IEEE international symposium, pp. 22–31, 2008.
[17]      Q. Farooq, “A Model Driven Approach to Test Evolving Business Process based Systems,” in 13th International Conference on Model Driven Engineering Languages and Systems, pp. 6-24, 2010.
[18]      L. C. Briand, Y. Labiche, and S. He, “Automating regression test selection based on UML designs,” Information & Software Technology, vol. 51, pp. 16-30, 2009.
[19]      Y. Chen, R. Probert, and D. Sims, “Specification-based regression test selection with risk analysis,” in Proceedings of the 2002 conference of the Centre for Advanced Studies on Collaborative research, p. 1, 2002.
[20]      Y. Wu and J. Offutt, “Maintaining Evolving Component based software with UML,” in Proceeding  of  7th  European  conference  on  software  maintenance  and reengineering, pp. 133-142, 2003.
[21]      H. Hemmati, A. Arcuri, and L. Briand, “Achieving scalable model-based testing through test case diversity,” ACM Trans. Softw. Eng. Methodol, vol. 22, p. 6 pages, 2013.
[22]      L. Tahat, B. Korel, H. M, and H. Ural, “Regression test suite prioritization using system models,” Softw. Test., Verif. Reliab, vol. 22, pp. 481-506, 2012.
[23]      L. B. Kore, G. Koutsogiannakis, and L. Tahat, “Model-based test prioritization heuristic methods and their evaluation,” in the 3rd International Workshop on Advances in Model-Based Testing, pp. 34–43, 2007.
[24]      M. Khatibsyarbini, M. A. Isa, D. N. Jawawi, and R. Tumeng, “Test case prioritization approaches in regression testing: A systematic literature review,” Information and Software Technology, vol. 93, pp. 74-93, 2017.
[25]      J. Chen, L. Zhu, T. Y. Chen, D. Towey, F.-C. Kuo, R. Huang, et al., “Test case prioritization for object-oriented software: An adaptive random sequence approach based on clustering,” Journal of Systems and Software, vol. 135, pp. 107-125, 2018.
[26]      A. Ansari, A. Khan, A. Khan, and K. Mukadam, “Optimized regression test using test case prioritization,” Procedia Computer Science, vol. 79, pp. 152-160, 2016.
[27]      P. Sapna and A. Balakrishnan, “An approach for generating minimal test cases for regression testing,” Procedia computer science, vol. 47, pp. 188-196, 2015.
[28]      A. Schwartz and H. Do, “Cost-effective regression testing through Adaptive Test Prioritization strategies,” Journal of Systems and Software, vol. 115, pp. 61-81, 2016.
[29]      G. Rothermel and M. Harrold, “A safe, efficient regression test selection technique,” ACM Trans. On Softw. Eng. and Methodology, vol. 6, pp. 173-210, 1997.
[30]      K. Beck, Test Driven Development: By Example, Addison-Wesley Professional, 2002.
[31]      O. Pilskalns, G. Uyan, and A. Andrews, “Regression Testing UML Designs,” in ICSM. 22nd IEEE International Conference, pp. 254-264, 2006.
[32]      Q. Yuan, J. Wu, C. Liu, and L. Zhang, “A model driven approach toward business process test case generation,” in 10th International Symposium on Web Site Evolution, pp. 41-44, 2008.
[33]      D. Deng, P. C. Sheu, and T. Wang, “Model-based testing and maintenance,” in Proceedings of IEEE Sixth International Symposium on Multimedia Software Engineering, pp. 278- 285, 2004.
[34]      N. Mansour and H. Takkoush, “UML based regression testing technique for OO software,” in Proceedings of the IASTED International Conference on Software Engineering and Applications, Boston, pp. 96-101, 2007.
[35]      P. A. Stocks and D. Carrington, “Test templates: a specification-based testing framework,” in Proceeding of 15th Int. Conf. on Software Engineering, pp. 405-414, 1996.
[36]      C.-Y. Chen, R. Chapman, and K. H. Chang, “Test scenario and regression test suite generation from Object-Z formal specification for object-oriented program testing,” in Proceedings of the 37th annual Southeast regional conference (CD-ROM), p. 37, 1999.
[37]      H. Liang, “Regression Testing of Classes Based on TCOZ Specifications,” in Proceedings of the 10th International Conference on Engineering of Complex Computer Systems, pp. 450-457, 2005.
[38]      M. Nooraei Abadeh and S. H. Mirian‐Hosseinabadi, “Delta‐based regression testing: a formal framework towards model‐driven regression testing,” Journal of Software: Evolution and Process, vol. 27, pp. 913-952, 2015.