-
شماره ركورد
30279
-
پديد آورنده
مرتضي ذاكري نصرآبادي
-
عنوان
سنجش و بهبود آزمونپذيري مصنوعات سيستمهاي نرمافزاري
-
مقطع تحصيلي
دكتري
-
رشته تحصيلي
مهندسي كامپيوتر
-
سال تحصيل
1397
-
تاريخ دفاع
1402/06/26
-
استاد راهنما
دكتر سعيد پارسا
-
استاد مشاور
دكتر مهرداد آشتياني
-
دانشكده
مهندسي كامپيوتر
-
چكيده
آزمون يك مرحله پر هزينه و زمانبر در توسعه نرمافزار است. بخصوص در فرايندهاي چابك كه تأكيد بر استفاده از آزمون براي پيشبرد طراحي در ضمن توليد كد را دارند، هزينه آزمون مانعي برخلاف چابكي است. قبل از هرگونه آزمون ميبايست ميزان آزمونپذيري سنجش و در صورت نياز با بهرهبري از ابزارهاي بازآرايي، كد را براي آزمون مؤثر با حداقل هزينه ممكن آماده كرد. لازمه بازآرايي خودكار براي آزمونپذيري و هر صفت كيفي ديگر، تشخيص مشكلات كد منبع از ديدگاه مهندسي نرمافزار يا در اصطلاح بوي بد كد است. بر اساس بوهاي موجود در كد منبع مي توان ميزان تأثير بو بر كيفيت آن را مشخص نمود. در طي بررسي روشهاي خودكار براي سنجش تشابه كدهاي منبع به اين نتيجه رسيديم كه سنجش شباهت كد منبع روش پايهاي براي خودكارسازي بسياري از وظايف در مهندسي نرمافزار است. براي نمونه، مدلهاي يادگيري ماشين براي خودكارسازي وظايفي از قبيل پيشبيني ميزان آزمونپذيري، پوششپذيري، كيفيت، بوي كد و تأثير بوي بد بركيفيت، با يادگيري چگونگي مقايسه كدهاي منبع، خصيصه يك موجوديت نرمافزار را بر اساس خصايص شناخته شده در موجوديتهاي مشابه، پيشبيني ميكنند. جهت تعيين تشابه، فضاي ويژگيها را با معرفي سنجههاي لغوي و سنجه هاي آماري علاوه بر سنجههاي متداول كد منبع ميتوان بهبود داد. با استفاده از اين فضا نشان دادهايم كه روشهاي يادگيري سطحي، دقيقتر و سريعتر از يادگيري ژرف عمل ميكنند. مزيت مدلهاي يادگيري، عدم نياز به اجراي كد يا به عبارت ديگر ايستا بودن آنها است. در واقع، با استفاده از تجربيات زمان اجرا كه به اين مدلها آموختيم، توانستيم آزمونپذيري را بدون نياز به قابل اجرا بودن و همگام با توسعه كد مشخص نماييم. بدين ترتيب، در طي فرايند چابك در صورت غير قابل قبول بودن ميزان آزمونپذيري، با الگوريتم تكاملي و با ايجاد جمعيت اوليه بازآراييها، متناسب با بوهاي موجود در 1234 كلاس در شش پروژه شناخته شده جاوا، ميزان آزمونپذيري را به طور ميانگين تا 30% افزايش داديم. برآيند روشهاي پيشنهادي رساله، منجر به يك راهكار توسعه چابك نرم افزار، به نام «توسعه آزمون پذير رانه» گرديده و از اين طريق يكپارچه شده اند.
-
تاريخ ورود اطلاعات
1402/09/28
-
عنوان به انگليسي
Measuring and Improving Testability of Software Systems Artifacts
-
تاريخ بهره برداري
9/16/2024 12:00:00 AM
-
دانشجوي وارد كننده اطلاعات
مرتضي ذاكري نصرآبادي
-
چكيده به لاتين
Testing in software development can be demanding and time-consuming, particularly within agile processes that prioritize tests to drive design and code production. The associated costs of testing present a significant hindrance to maintaining agility. Therefore, it is advisable to assess the testability of the code prior to initiating any testing activities and, if required, refactor the code to facilitate efficient and effective testing. From a software engineering standpoint, the need for automatic refactoring to enhance testability and other quality criteria arises from the identification of source code problems, commonly known as code smells. Analyzing these code smells enables the assessment of their impact on quality attributes. During our exploration of automated approaches to measure source code similarity, we concluded that measuring code similarity is a foundational method for automating numerous tasks, such as testability, coverageability, and code smell prediction, in software engineering. For example, machine learning models can be used to automate software engineering tasks by learning how to compare source codes and predict the characteristics of a software entity based on the features known in similar entities. Incorporating lexical and statistical metrics and common source code metrics enhances the feature space for machine learning. Our research has demonstrated that shallow learning methods exhibit higher accuracy and faster performance than deep learning methods when utilizing this feature space to learn similarity. The advantage of machine learning models is that there is no need to run the code; in other words, they are static. Indeed, by using the runtime experiences that these models learn, it is possible to determine the level of testability and coverageability without any need for the code to be executable. Using a search-based refactoring approach based on code smells, we could improve the testability of 1234 classes in six known Java projects during agile processes. The approach uses an evolutionary process and an initial population of refactorings to remove the smells when the testability level is unacceptable. This way, testability increased by 30% on average as a result. The results of the proposed methods of this thesis have been integrated into an agile software development process called "Testability Driven Development (TsDD)."
-
كليدواژه هاي فارسي
مصنوعات نرمافزاري , آزمونپذيري , پوششپذيري , بوي نرمافزار , بازآرايي خودكار , مهندسي نرمافزار هوشمند , توسعه آزمونپذير رانه
-
كليدواژه هاي لاتين
Software artifacts , testability , covergaeability , software smell , automated refactoring , intelligent software engineering , testabilty-driven development
-
Author
Morteza Zakeri-Nasrabadi
-
SuperVisor
Dr. Saeed Parsa
-
لينک به اين مدرک :