Browsing by Author "Moazzen, Elham"
Now showing 1 - 3 of 3
Results Per Page
Sort Options
Item Open Access An Exploratory Study of Automated GUI Testing: Goals, Issues, and Best Practices(2014-04-11) Hellmann, Theodore; Moazzen, Elham; Sharma, Abhishek; Akbar, Md. Zabedul; Sillito, Jonathan; Maurer, FrankManually testing GUIs can be expensive and complex, so the creation of automated GUI test suites has been an area of significant interest. However, to our knowledge, the motivations of testers and the problems they encounter when attempting to create and use automated GUI tests have not been explored. We used Grounded Theory to investigate the goals motivating automated GUI testing, the issues testers encounter, and the best practices applied to overcome these issues. Through this study, we demonstrate that automated GUI test suite evolution and architecture are extremely important to the success of automated GUI testing and describe techniques that can be of use to practitioners. In addition to these best practices, this study identifies additional areas in which future research should be concentrated.Item Open Access Identifying the Problems of Software Re-architecting and a Knowledge Representation Framework to Address Them(2018-06-25) Moazzen, Elham; Walker, Robert J.; Denzinger, Jörg; Oehlberg, Lora A.; Anvik, John; Hu, YaopingReal-world software undergoes constant change: to fix bugs; to extend functionality; to interact with the changing “ecosystem” around it; and to make internal improvements. Non-trivial software must possess a software architecture: a division into smaller pieces, how those pieces are meant to interact, and how those pieces are deployed physically. As a software architecture can have a significant impact on important properties of the software, the architecture for a software system may need to change as the system itself undergoes change: this is software re-architecting. Unfortunately, software re-architecting is poorly understood: without understanding what is involved in software re-architecting and what problems people encounter in approaching it, we cannot help solve or avoid those problems. I begin this thesis by conducting a case study on a real world example of a software re-architecting, for which documentation and records of discussions were available, to find basic issues that arose during the process. I also conducted a series of interviews with software engineers centred around those issues to deepen our understanding of the process of software re-architecting and discovered the notion of discrete change steps that must be organized and coordinated. I identify a set of critical challenges that must be addressed in any concrete solution. Software engineers lacked a systematic approach to the communication and record management of change steps, suggesting a set of design guidelines for future collaboration tools tailored for re-architecting. They need collaboration tools that facilitate viewing, recording, and retrieving the change steps, and involving the communications within and between the levels of the development team. I then propose a knowledge representation framework for the change process in asynchronous collaboration. This framework is a first step toward a re-architecting collaboration tool that would help to systematize the change process without disrupting it. I developed a paper prototype of the framework and conducted a user evaluation study to determine if the new approach meets the needs of software engineers working on a software re-architecting. My study suggests that the ii approach supported by the prototype allows software engineers to better present changes to their team relative to traditional mechanisms, thereby enabling them to consider more detail. I illustrate the potential value of the framework as a platform for deeper study and further investment in tools, highlighting promising areas for future research.Item Open Access The Problems of Large-Scale Refactoring: Learning from Eclipse RCP(2015-02-23) Moazzen, Elham; Walker, RobertInvesting in planning big refactoring changes prior to implementing them has been promoted as a positive practice that guarantees a high quality code change process. However, there is no empirical evidence of the potential risks that may degrade the quality of such a change process, even if changes are planned in advance. This paper identifies and categorizes potential risks based on a real-world case of large-scale refactoring: that which produced the Eclipse Rich Client Platform (RCP). This case is interesting because it is industrially relevant and three publicly available data sources exist for it. We analyzed these data sources in retrospect, and found that when expert engineers were mapping out changes, (1) they were uncertain about what the code does, (2) they were unclear about what it affects if the code is changed, and (3) they misunderstood each other when changes were described. If such lack of knowledge, and miscommunication among the expert engineers were not resolved via peer discussions prior to applying the changes, we anticipate that such changes would result in a later wrong decision or action. We also found that (4) many small changes are enacted in the code for which the sequencing matters and that were poorly-communicated while planning. Thus, these changes cannot be reviewed by other engineers until after they are fully implemented. We hypothesize that such lack of knowledge and miscommunication would adversely affect the quality of a largescale refactoring task, especially when the complexity of the task increases and the level of expertise decreases.