
We have organized the Generative AI based Software Engineering workshop, co-located with the 18th Innovations in Software Engineering Conference (ISEC) at Kurukshetra, India on 20th Feb. 2025. We describe the objectives and brief contents of the workshop and are hoping that the execution of the planned contents during the workshop will meet the set objectives.
Software developers nowadays routinely publish REST APIs to make their applications accessible to clients. To support the development of REST APIs, many testing techniques and tools have been developed that automatically explore the API endpoints, using various strategies, intending to increase coverage and detect bugs. However, these techniques can produce test cases that may not be suitable for creating functional test suites. In this paper, we address the problem of automatically generating realistic functional test cases for REST APIs. Our work is guided by interactions with practitioners and the approaches they follow for performing functional testing of REST APIs. Our technique first groups the API operations by the resources they manipulate; it then employs a novel approach for inferring producer-consumer relations between operations, fine-grained subtyping of HTTP methods, and language-model-based sequencing to construct operation sequences that correspond to functional scenarios. We evaluated the effectiveness of our technique and compared it against state-of-the-art REST API testing tools. Our results show that the technique produces test cases that can better support functional testing of REST APIs than the other tools.
Periodic applications include tasks that run continuously over certain intervals, which can lead to data races with concurrency. Locks have been traditionally used as a synchronization mechanism to ensure correctness. However, it is possible that a low priority task gets preempted for a high priority task while holding a lock that the high priority task requires. In safety-critical systems, this can result in undesirable situations where high priority tasks have to wait for low priority tasks to complete, violating its periodicity and priority. While prior works have proposed techniques for race detection in applications without nested locking, these techniques do not generalize to applications using nested locks. In this work, we present a worst-case response time analysis and a sound technique for static race detection in the context of periodic applications having nested locking behavior. Our algorithm offers a conservative upper bound for task response times when dealing with periodicity and addressing the complexities introduced by nested locks. Our approach improves the safety and dependability of concurrent periodic programs with nested locks. We implement our algorithm in Rust, and evaluate its performance and correctness on a set of programs.
The seventh Workshop on Emerging Software Engineering Education (WESEE) aims to discuss and examine the development of learning environments that are influencing the pedagogical strategies for the education of software engineering courses in institutions, specifically through the adoption of Generative AI (GenAI) tools and techniques. Additionally, the workshop aims to examine how industries are utilizing GenAI tools and technologies for teaching software development methods and how the developers are utilizing the material for self-learning and skill acquisition. The report is an overview of the upcoming seventh edition of WESEE, which will be held on 20.. h February 2025 at NIT Kurukshetra. The workshop will be held alongside the 18th Innovations in Software Engineering Conference (ISEC 2025).
In this work, we propose an algorithm to answer the question of why a planning problem is unsolvable in a domain modeled as linear hybrid automata. We propose an explanation algorithm using BACH, a bounded reachability checking tool for linear hybrid automata models of hybrid systems. In our explanation algorithm, source-target (extracted from the planning problem) paths of bounded length are computed from the automaton and converted into a partial automata representation. Then, on this automaton, reachability queries progressively towards the target are solved using BACH until the first infeasible transition (one will exist in an unsolvable instance) is identified on the path. Repeating this over all paths, we identify the most frequent infeasible transition (MFIT) in the planning domain. In the next phase, we start the constraint relaxation process on the paths iteratively. Beginning from the destination location of the MFIT transition, we traverse backward toward the source, one location at a time, and relax the location's continuous dynamics. After each relaxation step, a reachability query on the automaton is solved using BACH to check whether the relaxed path becomes feasible. We continue this process until a path is found that becomes feasible after relaxation(s), or none of the paths become feasible, indicating that no explanation could be derived. Upon finding a feasible path, we provide as explanation the set of locations whose dynamics are overly restrictive for the planning problem. We believe that such explanations can serve as insights for design engineers.