Bryce, ReneeAlhumud, Waleed Ghazi2024-12-222024-12https://hdl.handle.net/20.500.14154/74347This 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.122en-USSoftware EngineeringSoftware TestingPrioritizationAutomated Software Testing ToolsTesting ToolsINSIGHTS AND STRATEGIES FOR IMPROVING SOFTWARE DEVELOPER PRODUCTIVITYThesis