Denivan Campos

2papers

2 Papers

SEJul 29, 2021Code
Developers perception on the severity of test smells: an empirical study

Denivan Campos, Larissa Rocha, Ivan Machado

Unit testing is an essential component of the software development life-cycle. A developer could easily and quickly catch and fix software faults introduced in the source code by creating and running unit tests. Despite their importance, unit tests are subject to bad design or implementation decisions, the so-called test smells. These might decrease software systems quality from various aspects, making it harder to understand, more complex to maintain, and more prone to errors and bugs. Many studies discuss the likely effects of test smells on test code. However, there is a lack of studies that capture developers perceptions of such issues. This study empirically analyzes how developers perceive the severity of test smells in the test code they develop. Severity refers to the degree to how a test smell may negatively impact the test code. We selected six open-source software projects from GitHub and interviewed their developers to understand whether and how the test smells affected the test code. Although most of the interviewed developers considered the test smells as having a low severity to their code, they indicated that test smells might negatively impact the project, particularly in test code maintainability and evolution. Also, detecting and removing test smells from the test code may be positive for the project.

9.2SEApr 30
What Characterizes a Software Leader? Identifying Leadership Practices from Practitioners Social Media

Murilo Coelho, Denivan Campos, Mariana Maia Bezerra et al.

Context: Leadership has been extensively studied in management and agile software development; however, prior research predominantly focuses on formal roles and predefined leadership models, offering limited insight into how leadership is experienced and demonstrated by software practitioners in everyday practice. Objective: Our goal is to identify and categorize leadership practices as perceived and reported by software development practitioners based on their professional experiences. Method: We conducted a content analysis of 116 practitioner-authored articles published on the Dev.to online community. Articles were systematically collected, screened, and coded, resulting in the extraction, correlation analysis and categorization of leadership practices grounded in practitioners narratives. Results: We identified 103 practices for software project leaders, distinguished between recommended and discouraged ones. These practices were organized into five categories: People Management & Development, Processes & Execution, Professional & Personal Growth, Communication & Articulation and Strategic Vision. The most recurrent recommended practices include Cultivating & Practicing Interpersonal Skills, Managing & Delegating Team Work, and Practicing & Developing Managerial Skills, whereas Micromanagement, Counterproductive Work Patterns, and Counterproductive Communication Styles emerged as the most frequent discouraged practices. We organized all practices into a conceptual map. Conclusion: The findings indicate that software leadership is mainly associated with managerial and interpersonal practices rather than technical expertise. The resulting conceptual map summarizes these practices and can serve as a reference for understanding leadership in software development contexts.