Search In this Thesis
   Search In this Thesis  
العنوان
Using Genetic Algorithms to Aid Regression Testing of Software/
المؤلف
Hassan, Eman Hassan Abd-Elkawy.
هيئة الاعداد
باحث / إيمان حسن عبدالقوي حسن
مشرف / أحمد عبدالقادر رمضان
عدد الصفحات
170 p.;
اللغة
الإنجليزية
الدرجة
ماجستير
التخصص
النظرية علوم الحاسب الآلي
الناشر
تاريخ الإجازة
8/1/2012
مكان الإجازة
جامعة بني سويف - كلية العلوم - قسم الرياضيات
الفهرس
Only 14 pages are availabe for public view

from 190

from 190

Abstract

Software will undoubtedly undergo change before and after it is delivered to the customer. Change will occur because errors have been encountered, because the software must be adapted to accommodate changes in its external environment (e.g. a change required because of a new operating system or peripheral device), or because the customer requires functional or performance enhancements. One of the most expensive activities that occur as the software is modified and enhanced is the (re)testing of the software after it has changed. This process is known as regression testing.
Regression testing is the process of validating modified software to provide confidence that the changed parts of the software behave as intended and that the unchanged parts of the software have not been adversely affected by the modifications. Because regression testing is expensive, researchers have proposed techniques to reduce its cost. One approach reduces the cost of regression testing by reusing the test suite that was used to test the original version of the software. Rerunning all test cases in the test suite, however, may still require excessive time. An improvement is to reuse the existing test suite, but to apply a regression-test-selection technique to select an appropriate subset of the test suite to be run.
This thesis presented a study of the effectiveness of using Genetic Algorithms (GAs) in regression testing of OO and structured procedural C# programs. This study involved building a regression testing system that identifies the changed parts of the program under test. Then, it determines directly and indirectly affected def-use associations for the changed parts of the modified program by using two algorithms, called Backward Walk and Forward Walk algorithms. Finally, the system uses a GA that is guided by the data flow dependencies in the program to generate test data to cover only the def-use pairs affected by the change.
This thesis presented the results of the experiments, which were carried out to evaluate the effectiveness of regression testing of object-oriented and structured procedural programs by using genetic algorithms, and to evaluate the error-exposing ability of the control flow and data flow testing criteria employed in the developed testing system. This thesis presents also the results of the experiments that were carried out to evaluate the effectiveness of using the GA compared to the random testing (RT) technique in regression testing. Another aim of the experiments was to study the effect of regression testing on reducing the testing effort. These experiments also helped us to modify and improve the system.
The results of the first experiment showed that the test data generated by the system to cover the def-use pairs of the correct program is very effective in discovering the errors that may occur in C# programs.
The results of the second experiment showed that the test data generated by the system to cover the def-use pairs of the erroneous program is very effective in discovering the errors that may occur in C# programs.
The results of the third experiment showed that the regression testing using GA causes a substantial reduction in the testing effort and time.
The results of the fourth experiment showed that the GA technique is more effective in regression testing than the RT technique.
The results of last experiment assured our expectations. This means that it is enough to generate test data to cover only the affected def-use pairs, which saves the time and the effort required to test the modified programs.