Loading...
- Type of Document: Ph.D. Dissertation
- Language: Farsi
- Document No: 56136 (19)
- University: Sharif University of Technology
- Department: Computer Engineering
- Advisor(s): Mirian Hosseinabadi, Hassan
- Abstract:
- Regression testing, is one of the most effective software testing activities. Adding new test cases during project development to cover different aspects of software performance will increase the test suite’s size and the time and resources required to fully execute the test suite. To face this challenge, test case prioritization is considered as one of the main approaches. The software bug history is one of the useful information sources for improving software analysis solutions, which rarely been used in the field of test case prioritization. The aim of this research is to present algorithms for utilizing the software bug history along with other information sources to improve test case prioritization. In this regard, two approaches are presented in this thesis. In the first approach, by extracting the characteristics of the software code and utilizing the software bug history and a neural network model, the error probability of the software code units is estimated. Furthermore, a method to generalize test coverage based on the probability of software units being faulty is presented, and finally, new test prioritization methods are presented based on this coverage. To experimentally evaluate the proposed method, the code features and test coverage values were extracted from the projects of the Defects4j dataset and the Defects4J+ M dataset was formed. An experimental study on this dataset, which includes 357 versions of 5 well-known open-source projects, shows that the usage of this approach can significantly improve the coverage-based algorithms for prioritizing tests. In the second approach, the ideas of the first approach are extended and a ombination of error probability and diversification-based methods is followed. In this approach, hierarchical clustering algorithms have been used to provide diversification among test cases. The combination of clustering and coverage-based algorithms for prioritizing tests is a challenge covered in the proposed approach. The experimental study of the proposed algorithms of this approach on the Defects4J+M dataset shows that improvement of coverage-based and fault-proneness-based methods is possible by using a combination of diversification and fault-proneness incorporation
- Keywords:
- Software Testing ; Regression Test ; Test Case Prioritization ; Defect Prediction ; Test Case Diversification
- محتواي کتاب
- view
- 1 مقدمه
- 2 پیشزمینه مرتبط با پژوهش
- 3 پژوهشهای مرتبط پیشین
- 3.1 اولویتبندی آزمایهها
- 3.1.1 اولویتبندی آزمایهها مبتنی بر تغییرات
- 3.1.2 روش K-بهینه
- 3.1.3 روشهای مبتنی بر جستجو
- 3.1.4 اولویتبندی بر اساس پتانسیل آشکارسازی خطا
- 3.1.5 روش اولویتبندی افزایشی متعادل
- 3.1.6 روشهای اولویتبندی مبتنی بر تنوعبخشی
- 3.1.7 اولویتبندی آزمایههای هزینه آگاه
- 3.1.8 اولویتبندی آزمایهها مبتنی بر تاریخچهی اجرا
- 3.1.9 اولویتبندی در آزمون مبتنی بر توصیف و نیازمندیها
- 3.1.10 روشهای مبتنی بر تحلیل متنی
- 3.1.11 روشهای مبتنی بر معیارهای پیچیدگی
- 3.1.12 انتخاب خودکار روش اولویتبندی
- 3.1.13 بعضی روشهای مرتبط با اولویتبندی آزمایهها
- 3.1.14 جمعبندی و تحلیل
- 3.2 پیشبینی خطا
- 3.2.1 مشخصههای پروژه
- 3.2.2 یادگیری ردهبند
- 3.2.3 به کارگیری فنون انتخاب مشخصه
- 3.2.4 پیشبینی خطا در سطح متد
- 3.2.5 پیشبینی خطا در تغییرات
- 3.2.6 مطالعات جمعآوری داده برای پیشبینی خطا
- 3.2.7 مطالعات مرور و تحلیل نتایج پیشبینی خطا
- 3.2.8 معیارهای ارزیابی روشهای پیشبینی خطا
- 3.2.9 پیشبینی خطای میانپروژهای
- 3.2.10 به کارگیری روشهای یادگیری ژرف در پیشبینی خطا
- 3.2.11 جمعبندی و تحلیل
- 3.1 اولویتبندی آزمایهها
- 4 راهکار پیشنهادی اولویتبندی آزمایهها مبتنی بر خطا
- 5 روش پیشنهادی اولویتبندی آزمایهها مبتنی بر تنوع بخشی و تخمینهای استعداد خطا
- 6 جمعبندی و کارهای آینده
- مراجع
- واژهنامهی فارسی به انگلیسی
- واژهنامهی انگلیسی به فارسی