5 research outputs found

    Enablers and Impediments for Collaborative Research in Software Testing: An Empirical Exploration

    Full text link
    When it comes to industrial organizations, current collaboration efforts in software engineering research are very often kept in-house, depriving these organizations off the skills necessary to build independent collaborative research. The current trend, towards empirical software engineering research, requires certain standards to be established which would guide these collaborative efforts in creating a strong partnership that promotes independent, evidence-based, software engineering research. This paper examines key enabling factors for an efficient and effective industry-academia collaboration in the software testing domain. A major finding of the research was that while technology is a strong enabler to better collaboration, it must be complemented with industrial openness to disclose research results and the use of a dedicated tooling platform. We use as an example an automated test generation approach that has been developed in the last two years collaboratively with Bombardier Transportation AB in Sweden

    An industry-academia, multidisciplinary and expertise-heterogeneous design approach: a case study on designing for mobility

    Get PDF
    Trabalho apresentado na: "DIGICOM 2021 – 5th International Conference on Design and Digital Communication", 4-6 November 2021, Teatro Gil Vicente, Barcelos, Portugal.The purpose of this article is to provide a better understanding of how to effectively develop design projects that simultaneously leverage industry and academic partners, participants from various disciplinary backgrounds, and vari- ous levels of expertise to solve complex problems. The article reports a single case of an ongoing project focused on designing smart and connected devices for mobility, which integrates the dimensions of interest. Our findings highlight the importance of careful planning of the collaborative process, contemplating of- fline and real-time communication opportunities, identifying cross-boundary roles, and considering the development of shared expertise and knowledge within the team. By confronting these findings with key literature, we offer five recom- mendations to inform similar future projects.This work is supported by European Structural and Investment Funds in the FEDER component, through the Operational Competitiveness and Internationalization Pro- gramme (COMPETE 2020) [Project no 039334; Funding Reference: POCI-01-0247- FEDER-039334]. This work has additional financial support from Project Lab2PT - Landscapes, Heritage and Territory laboratory - AUR/04509, with financial support from FCT/MCTES through national funds (PIDDAC) and co-financing from the Eu- ropean Regional Development Fund (FEDER) POCI-01-0145-FEDER-007528, in line with the new partnership agreement PT2020 through COMPETE 2020 – Compet- itiveness and Internationalization Operational Program (POCI)

    Industry-academia collaborations in software testing: experience and success stories from Canada and Turkey : Special Issue Industry Academia Collaborations in Software Testing

    Get PDF
    Collaboration between industry and academia supports improvement and innovation in industry and helps to ensure industrial relevance in academic research. However, many researchers and practitioners believe that the level of joint industry–academia collaborations (IAC) in software engineering (SE) is still relatively very low, compared to the amount of activity in each of the two communities. The goal of the empirical study reported in this paper is to characterize a set of collaborative industry–academia R&D projects in the area of software testing conducted by the authors (based in Canada and Turkey) with respect to a set of challenges, patterns and anti-patterns identified by a recent Systematic Literature Review study, with the aim of contributing to the body of evidence in the area of IAC, for the benefit of SE researchers and practitioners in conducting successful IAC projects in software testing and in software engineering in general. To address the above goal, a pool of ten IAC projects (six completed, two failed and two ongoing) all in the area of software testing, which the authors have led or have had active roles in, were selected as objects of study and were analyzed (both quantitatively and qualitatively) with respect to the set of selected challenges, patterns and anti-patterns. As outputs, the study presents a set of empirical findings and evidence-based recommendations, e.g.: it has been observed that even if an IAC project may seem perfect from many aspects, one single major challenge (e.g., disagreement in confidentiality agreements) can lead to its failure. Thus, we recommend that both parties (academics and practitioners) consider all the challenges early on and proactively work together to eliminate the risk of challenges in IAC projects. We furthermore report correlation and interrelationship of challenges, patterns and anti-patterns with project success measures. This study hopes to encourage and benefit other SE researchers and practitioners in conducting successful IAC projects in software testing and in software engineering in general in the future

    La gestion de la connaissance des équipes de développement logiciel

    Get PDF
    RÉSUMÉ Contexte : Le développement logiciel est un travail d’équipe manipulant un produit essentiellement invisible. En conséquent, le développement logiciel nécessite des échanges de connaissances importants entre développeurs afin que l’équipe effectue une résolution de problème adéquate. Cette résolution de problème résulte en une prise de décision qui aura un impact direct sur la qualité du produit logiciel final. Objectif : Ce travail doctoral a pour objectif de mieux comprendre ces interactions entre développeurs et comment ces interactions peuvent être liées à des problèmes de qualité logicielle. Cette meilleure compréhension du phénomène permet d’améliorer les approches actuelles de développement logiciel afin d’assurer une meilleure qualité du produit final. Méthodologie : Premièrement, des revues de littérature ont été effectuées afin de mieux comprendre l’état actuel de la recherche en gestion de connaissance dans le génie logiciel. Deuxièmement, des analyses de code source et des discussions avec les développeurs ont été faites afin de mieux cerner les causes de problèmes classiques de qualité logicielle. Finalement, des observations faites dans l’industrie ont permis de comprendre la prise de décision collective, et comment cette prise de décision impacte la qualité logicielle. Résultats : Les observations effectuées ont démontré que la qualité logicielle n’est pas qu’un problème d’éducation ; l’essentiel des problèmes de qualité ont été introduits par les développeurs en toute connaissance de cause afin de répondre à d’autres impératifs plus urgents au moment de la prise de décision. Améliorer la qualité des logiciels demande de revoir la manière dont les projets de développement logiciel sont gérés afin d’assurer que les décisions prises sur le terrain n’auront pas de conséquences négatives trop coûteuses à long terme. Conclusions : Il est recommandé que les organisations se dote d’un nouveau palier décisionnel faisant la jointure entre besoins techniques (i.e. qualité logicielle) et administratifs (i.e. ressources disponibles). Ce nouveau palier décisionnel se situerait au niveau de la base de code (« codebase »), soit entre le palier organisationnel et le palier de gestion de projet. Une base de code étant modifiée de manière concurrente par plusieurs projets en parallèle, il devient nécessaire d’avoir un meilleur contrôle sur les modifications effectuées sur celle-ci. Ce nouveau palier serait le gardien des connaissances en lien avec la base de code, selon le principe « you build it, you run it » favorisé dans certaines organisations. Ce nouveau palier serait responsable d’assurer que la base de code reste d’une qualité suffisamment bonne pour supporter les activités de l’organisation dans l’avenir.----------ABSTRACT Context: Software development is a process requiring teamwork on an essentially invisible product. Therefore, software development requires important knowledge exchanges between developers in order to ensure a proper problem resolution. This problem resolution affects the decision making process, which will have a direct impact on the software quality of the final product. Objective: This thesis work aims to better understand these interactions between developers and how they can be linked to software quality problems. With a better understanding of the relation, it will be possible to improve the current software development management practices in order to ensure a better quality of the final software product. Method: First, literature reviews were made with the objective to understand the current state of the research in knowledge management in software engineering. Second, source code analyzes and discussions with the developers were executed in order to better understand the causes of typical software quality issues. Finally, observations were made in an industrial context in order to observe collective decision making in the field, and to understand how these decisions impacts software quality. Results: The bservations made demonstrated that software quality is not only an educational problem; most of the quality problems found were introduced voluntarily by the developers in order to answer a more urgent requirement at the time. Improving software quality therefore requires a review of how software development projects are managed in order to ensure that the decision made in the field do not have overly costly consequences in the long term. Conclusions: It is recommended that organization assign a new decision level linking the technical requirements (i.e. software quality) with administrative requirements (i.e. available resources). This new decision level would be situated at the codebase level, between the organizational strategy level and the project management level. A codebase being modified concurrently by multiple projects, it is therefore necessary to have a better control of the modifications made on it. The people at this new decision level would be the knowledge repository related to the codebase, under the “you build it, you run it” principle popular in some organizations. This new decision level would be responsible of ensuring that the codebase remains of a sufficient quality in order to support the future activities of the organization
    corecore