Saudi Cultural Missions Theses & Dissertations

Permanent URI for this communityhttps://drepo.sdl.edu.sa/handle/20.500.14154/10

Browse

Search Results

Now showing 1 - 4 of 4
  • ItemRestricted
    INSIGHTS AND STRATEGIES FOR IMPROVING SOFTWARE DEVELOPER PRODUCTIVITY
    (University of North Texas, 2024-12) Alhumud, Waleed Ghazi; Bryce, Renee
    This dissertation explores several methods and insights to enhance productivity by saving time and effort, improving testing skills, and reducing testing costs. The first contribution provides software testing tools based on selected criteria. Holding team-based competitions to detect faults in different programming languages is introduced in the second contribution. In the last contribution, we utilize an optimization technique of regression testing to enhance software developers’ productivity. The results indicate that using software testing tools based on selected criteria saves time and effort by automating repetitive tasks and detecting faults early. Additionally, improving testing skills and learning new programming languages through holding team-based competitions to catch bugs in different languages leads to enhanced productivity. More than 93% of the participants agree that these competitions not only increase their testing skills but also assist them in learning new languages. Moreover, utilizing test suite prioritization might improve software developers’ productivity by reducing testing costs and time by executing only half of the prioritized test suites to obtain 100% of code coverage utilizing our proposed criteria. The contributions in this dissertation aid in the ongoing effort to advance testing practices in software development. They provide methods for practitioners and organizations to improve software quality by enhancing software developers’ productivity.
    17 0
  • Thumbnail Image
    ItemRestricted
    Detecting Flaky Tests Without Rerunning Tests
    (George Mason University, 2024-07-26) Alshammari, Abdulrahman Turqi; Lam, Wing; Ammann, Paul
    A critical component of modern software development practices, particularly continuous integration (CI), is the halt of development activities in response to test failures which requires further investigation and debugging. As software changes, regression testing becomes vital to verify that new code does not affect existing functionality. However, this process is often delayed by the presence of flaky tests—those that yield inconsistent results on the same codebase, alternating between pass and fail. Test flakiness introduces challenges to the trust in testing outcomes and undermines the reliability of the CI process. The typical approach to identifying flaky tests has involved executing them multiple times; if a test yields both passing and failing results without any modifications to the codebase, it is flaky, as discussed by Luo et al. in their empirical study. This approach, while straightforward, can be resource-intensive and time-consuming, resulting in considerable overhead costs for development teams. Moreover, this technique might not consistently reveal flakiness in tests that exhibit varied behavior across varying execution environments. Given these challenges, the research community has been actively seeking more efficient and reliable alternatives to the repetitive execution of tests for flakiness detection. These explorations aim to uncover methods that can accurately detect flaky tests without the need for multiple reruns, thereby reducing the time and resources required for testing. This dissertation addresses three principal dimensions of test flakiness. First, it presents a machine learning classifier designed to detect which tests are flaky, based on previously detected flaky tests. Second, the dissertation proposes three de-duplication-based approaches to assist developers in determining whether a flaky test failure is flaky or not. Third, it highlights the impact of test flakiness on other testing activities (particularly mutation testing) and discusses how to mitigate the effects of test flakiness on mutation testing. This dissertation explores the detection of test flakiness by conducting an empirical study on the limitations of rerunning tests as a method for identifying flaky tests, which results in a large dataset of flaky tests. This dataset is then utilized to develop FlakeFlagger, a machine learning classifier, which is designed to automatically predict the likelihood of a test being flaky through static and dynamic analysis. The objective is to leverage FlakeFlagger to identify flaky tests without the need for reruns by detecting patterns and symptoms common among previously identified flaky tests. In addressing the challenge of detecting whether a failure is due to flakiness, this dissertation demonstrates how developers can better manage flaky tests within their test suites. The dissertation proposes three deduplication-based methods to help developers determine whether a specific failure is genuinely flaky or not. Furthermore, the dissertation discusses the effects of test flakiness on mutation testing, a critical activity for assessing the quality of test suites. It includes an extensive rerun experiment on the mutation analysis of flaky tests identified earlier in the study. This is to highlight the significant impact of flaky tests on the validity of the mutation testing.
    29 0
  • Thumbnail Image
    ItemRestricted
    ELEMENT AND EVENT-BASED TEST SUITE REDUCTION FOR ANDROID TEST SUITES GENERATED BY REINFORCEMENT LEARNING
    (University of North Texas, 2024-06-12) Alenzi, Abdullah Sawdi M; Bryce, Renee
    Android stands as one of the most popular operating systems on a global scale. Given the popularity and the tremendous use of Android apps and the necessity of developing robust and reliable apps, it is crucial to create efficient and effective testing tools while addressing real-world time and budget constraints. Recently, automated test generation with Reinforcement Learning algorithms have shown promise, but there is room for improvement as these algorithms often produce test suites with redundant coverage. Fine tuning parameters of RL algorithms may assist, however, this comes with trade-offs and requires time consuming and careful consideration of the characteristics of the application under test and its environment. Therefore, devising cost-effective tools and techniques is imperative to mitigate this redundancy. Instead of exploring parameters of RL algorithms, we looked at minimizing test suites that have already been generated based on SARSA algorithms. In this dissertation, we hypothesize that there is room for improvement by introducing novel hybrid approaches that combine SARSA-generated test suites with greedy reduction algorithms following the principle of HGS approach. In addition, we apply an empirical study on Android test suites that reveals the value of these new hybrid methods. Our novel approaches focus on post-processing test suites by applying greedy reduction algorithms. To reduce Android test suites, we utilize different coverage criteria including Event-Based Criterion (EBC), Element-Based Criterion (ELBC), and Combinatorial-Based Sequences Criteria (CBSC) that follow the principle of combinatorial testing to generate sequences of events and elements. The proposed criteria effectively decreased the test suites generated by SARSA and revealed a high performance in maintaining code coverage. These findings suggest that test suite reduction using these criteria is particularly well suited for SARSA-generated test suites of Android apps.
    53 0
  • Thumbnail Image
    ItemRestricted
    EMPIRICAL EXPLORATION OF SOFTWARE TESTING
    (New Jersey Institute of Technology, 2024-04-18) Alblwi, Samia; Mili, Ali; Oria, Vincent
    Despite several advances in software engineering research and development, the quality of software products remains a considerable challenge. For all its theoretical limitations, software testing remains the main method used in practice to control, enhance, and certify software quality. This doctoral work comprises several empirical studies aimed at analyzing and assessing common software testing approaches, methods, and assumptions. In particular, the concept of mutant subsumption is generalized by taking into account the possibility for a base program and its mutants to diverge for some inputs, demonstrating the impact of this generalization on how subsumption is defined. The problem of mutant set minimization is revisited and recast as an optimization problem by specifying under what condition the objective function is optimized. Empirical evidence shows that the mutation coverage of a test suite depends broadly on the mutant generation operators used with the same tool and varies even more broadly across tools. The effectiveness of a test suite is defined by its ability to reveal program failures, and the extent to which traditional syntactic coverage metrics correlate with this measure of effectiveness is considered.
    11 0

Copyright owned by the Saudi Digital Library (SDL) © 2025