Johnatan Oliveira, Markos Viggiato, Denis Pinheiro, E. Morales
{"title":"Mining Experts from Source Code Analysis: An Empirical Evaluation","authors":"Johnatan Oliveira, Markos Viggiato, Denis Pinheiro, E. Morales","doi":"10.5753/jserd.2021.548","DOIUrl":"https://doi.org/10.5753/jserd.2021.548","url":null,"abstract":"Modern software development increasingly depends on third-party libraries to boost productivity and quality. This development is complex and requires specialists with knowledge in several technologies, such as the nowadays libraries. Such complexity turns it extremely challenging to deliver quality software, given the pressure. For this purpose, it is necessary to identify and hire qualified developers, to obtain a good team, both in open source and proprietary systems. For these reasons, enterprise and open source projects try to build teams composed of highly skilled developers in specific libraries. However, their identification may not be trivial. Despite this fact, we still lack procedures to assess developers skills in widely popular libraries. In this paper, we first argue that source code activities can identify software developers’ hard skills, such as library expertise. We then evaluate a mining-based strategy to reduce the search space to identify library experts. To achieve our goal, we selected the 9 most popular Java libraries and 6 libraries for microservices (i.e., 15 libraries in total). We assessed the skills of more than 1.5 million developers in these libraries by analyzing their commits in more than 17 K Java projects on GitHub. We evaluated the results by applying two surveys with 158 developers. First, with 137 library expert candidates, they observed 63% precision for popular Java libraries’ used strategy. Second, we observe a precision of at least 71% for 21 library experts in microservices. These low precision values suggest space for further improvements in the evaluated strategy.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"36 6","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2021-02-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"113965430","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Matheus Silva Ferreira, L. Martins, Paulo Afonso Parreira Júnior, H. Costa
{"title":"How is the Work of Developers Measured? An Industrial and Academic Exploratory View","authors":"Matheus Silva Ferreira, L. Martins, Paulo Afonso Parreira Júnior, H. Costa","doi":"10.5753/JSERD.2020.544","DOIUrl":"https://doi.org/10.5753/JSERD.2020.544","url":null,"abstract":"Software project management is an essential practice to achieve the goal of success in these projects and a challenging task for the Project Manager (PM). Therefore, information about the work of developers can be valuable in supporting PM. Several studies have addressed this topic and suggested different strategies for obtaining such information. Given the variety of existing strategies, the need arises to know the state-of-the-art regarding the theme. In this paper, what relevant information for PM and how that information can support the project management practices are presented, especially regarding risk management and people management. So, we carry out an exploratory study applying the Systematic Literature Mapping technique. Contributions include the identification of 64 metrics, 4 sources of information, and 7 PM activities supported by the measurement of developer work. Be-sides, aspects to be explored on the subject are presented, inspiring new studies in the field of Software Engineering.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"71 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121378503","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Erick Barros dos Santos, Lucas Simão da Costa, Thaís Marinho De Amorim, B. S. Aragão, I. Santos, D. R. Vasconcelos, Rossana Andrade
{"title":"Extraction of test cases procedures from textual use cases: is it worth it?","authors":"Erick Barros dos Santos, Lucas Simão da Costa, Thaís Marinho De Amorim, B. S. Aragão, I. Santos, D. R. Vasconcelos, Rossana Andrade","doi":"10.5753/jserd.2020.731","DOIUrl":"https://doi.org/10.5753/jserd.2020.731","url":null,"abstract":"Software testing plays a major role in the quality of software since it assures that the software complies with its expected behavior. However, this is an expensive activity and, thus, companies usually do not perform testing activities on software projects due to the time required. These costs may be even higher in testing processes that rely only on manual test execution, which is both time-consuming and error-prone. One strategy commonly used to mitigate these costs is to use tools to automate testing activities such as test execution, test documentation, and test case generation. This paper presents an experience report in the context of a Test Factory about the use of a tool that partially automates the specification of test procedures from textual use cases. This tool automatically retrieves use cases from the requirement management system, generates the test case procedures, requires inputs from the tester, and then sends the test cases to the test management system. This paper details how this tool was used in real releases of an industrial software project. We also evaluated our tool with four test analysts from a different project to gather more data regarding its efficiency to support the test case documentation.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121504958","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Walter Lucas Monteiro de Mendonça, José Fortes, Francisco Vitor Lopes, Diego Marcilio, R. Bonifácio, E. Canedo, Fernanda Lima, J. Saraiva
{"title":"Understanding the Impact of Introducing Lambda Expressions in Java Programs","authors":"Walter Lucas Monteiro de Mendonça, José Fortes, Francisco Vitor Lopes, Diego Marcilio, R. Bonifácio, E. Canedo, Fernanda Lima, J. Saraiva","doi":"10.5753/JSERD.2020.744","DOIUrl":"https://doi.org/10.5753/JSERD.2020.744","url":null,"abstract":"Background: The Java programming language version eight introduced several features that encourage the functional style of programming, including the support for lambda expressions and the Stream API. Currently, there is common wisdom that refactoring legacy code to introduce lambda expressions, besides other potential benefits, simplifies the code and improves program comprehension. Aims: The purpose of this work is to investigate this belief, conducting an in-depth study to evaluate the effect of introducing lambda expressions on program comprehension. Method: We conduct this research using a mixed-method study. For the quantitative method, we quantitatively analyze 166 pairs of code snippets extracted directly either from GitHub or from recommendations from three tools (RJTL, NetBeans, and IntelliJ). We also surveyed practitioners to collect their perceptions about the benefits on program comprehension when introducing lambda expressions. We asked practitioners to evaluate and rate sets of pairs of code snippets. Results: We found contradictory results in our research. Based on the quantitative assessment, we could not find evidence that the introduction of lambda expressions improves software readability—one of the components of program comprehension. Our results suggest that the transformations recommended by the aforementioned tools decrease program comprehension when assessed by two state-of-the-art models to estimate readability. Differently, our findings of the qualitative assessment suggest that the introduction of lambda expression improves program comprehension in three scenarios: when we convert anonymous inner classes to a lambda expression, structural loops with inner conditional to a anyMatch operator, and structural loops to filter operator combined with a collect method. Implications: We argue in this paper that one can improve program comprehension when she applies particular transformations to introduce lambda expressions (e.g., replacing anonymous inner classes with lambda expressions). Also, the opinion of the participants shines the opportunities in which a transformation for introducing lambda might be advantageous. This might support the implementation of effective tools for automatic program transformations.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"141 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132833782","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
G. Jesus, F. Ferrari, L. Paschoal, S. Souza, D. Porto, Vinicius H. S. Durelli
{"title":"Is It Worth Using Gamification on Software Testing Education? An Extended Experience Report in the Context of Undergraduate Students","authors":"G. Jesus, F. Ferrari, L. Paschoal, S. Souza, D. Porto, Vinicius H. S. Durelli","doi":"10.5753/jserd.2020.738","DOIUrl":"https://doi.org/10.5753/jserd.2020.738","url":null,"abstract":"Context: Testing is fundamental in the software development process. Nevertheless, testing education faces the key challenge of ensuring that undergraduate students acquire knowledge and skills they need for their future careers by matching what is taught in the classroom to industry standards. In this context, gamification can be used as an alternative educational approach. It uses game elements in real-world contexts in order to increase people's motivation and engagement in tasks that require external stimuli, especially in educational contexts.Objective: Reporting on results of an experimental study designed to assess the impact of gamification on software testing education, as well as reporting on the experience of building a supporting gamified platform. Method: We performed a systematic literature mapping aiming at characterizing how gamification has been explored in the software testing context. In addition, some of the problems faced by testing education were identified through an ad-hoc search. Then, we developed a gamified approach and a platform that have been used to run five 4-hour functional testing classes with undergraduate students from four Brazilian institutions of higher education.Results: Overall, students who learned with the traditional approach felt more motivated than those who learned with the gamified approach, whereas the performance of both groups were similar. On the other hand, feedback questionnaires indicated that the gamified class was more attractive (in terms of attention) and funny. Moreover, we observed that building a gamified platform is complex and challenging, particularly for the definition of the game mechanics and dynamics.Conclusion: Even though the results in terms of students' performance was neutral, and the motivation of students did not increase due to the introduction of gamification, the experience of having used this alternative approach is considered positive, as it provided a more enjoyable and funny environment, both from the researcher's and students' point of view. Furthermore, with this experience we foresee we can do better in terms of gamified teaching in future work.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"209 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114591351","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Luiz Cavamura Júnior, Ricardo Morimoto, S. Fabbri, A. C. Paiva, A. Vincenzi
{"title":"Software Operational Profile vs. Test Profile: Towards a Better Software Testing Strategy","authors":"Luiz Cavamura Júnior, Ricardo Morimoto, S. Fabbri, A. C. Paiva, A. Vincenzi","doi":"10.5753/jserd.2020.546","DOIUrl":"https://doi.org/10.5753/jserd.2020.546","url":null,"abstract":"Software Operational Profile (SOP) is a software specification based on how users use the software. This specification corresponds to a quantitative representation of software that identifies the most used software parts. As software reliability depends on the context in which users operate the software, the SOP is used in software reliability engineering. However, there are evidences of a misalignment between the software tested parts and SOP. Therefore, this paper investigates a possible misalignment between SOP and the tested software parts to obtain, based on experimental data, more evidence of this misalignment. We performed an exploratory study composed of four activities to verify: a) whether there are significant variations in how users operate the software; b) whether there is a misalignment between SOP and the tested software parts; c) if failures occur in untested SOP parts in case of misalignment; d) in case of misalignment between SOP and untested software parts, whether a test strategy based on the amplification of the existent test set with additional test data generated automatically, can contribute to reduce the misalignment. We collected data form four software while users were operating them. We analyzed this collected data in an attempt to reach the goals of this work. To evaluate the originality of this research, we performed a Literature Systematic Review (SLR) and presented its conclusions. The obtained results evidence that there are significant variations in how users operate the software and also that there is a misalignment between SOP and the tested software parts when we evaluated the four software mentioned above. There are also indications of the occurrence of failures in the untested SOP parts. Although the test strategy mentioned above has reduced the possible misalignment, the test strategy is not enough to avoid it, thus denoting the need of specifics test strategies using SOP as a test criterion. These results indicate that SOP becomes relevant not only to software reliability engineering but also to contribute to testing activities, regardless of the adopted strategy.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121528116","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Thomaz Diniz, Everton L. G. Alves, Anderson G. F. Silva, W. Andrade
{"title":"Reducing the Discard of MBT Test Cases","authors":"Thomaz Diniz, Everton L. G. Alves, Anderson G. F. Silva, W. Andrade","doi":"10.5753/jserd.2020.602","DOIUrl":"https://doi.org/10.5753/jserd.2020.602","url":null,"abstract":"Model-Based Testing (MBT) is used for generating test suites from system models. However, as software evolves, its models tend to be updated, which may lead to obsolete test cases that are often discarded. Test case discard can be very costly since essential data, such as execution history, are lost. In this paper, we investigate the use of distance functions and machine learning to help to reduce the discard of MBT tests. First, we assess the problem of managing MBT suites in the context of agile industrial projects. Then, we propose two strategies to cope with this problem: (i) a pure distance function-based. An empirical study using industrial data and ten different distance functions showed that distance functions could be effective for identifying low impact edits that lead to test cases that can be updated with little effort. We also found the optimal configuration for each function. Moreover, we showed that, by using this strategy, one could reduce the discard of test cases by 9.53%; (ii) a strategy that combines machine learning with distance values. This strategy can classify the impact of edits in use case documents with accuracy above 80%; it was able to reduce the discard of test cases by 10.4% and to identify test cases that should, in fact, be discarded.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131730867","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Editoral letter - special issue CIbSE2019","authors":"I. Brito, Beatriz Marín","doi":"10.5753/jserd.2020.719","DOIUrl":"https://doi.org/10.5753/jserd.2020.719","url":null,"abstract":"This issue of the JSERD contains seven extended and peer-reviewed papers from the XXII Ibero-American Conference on Software Engineering (CIbSE 2019), which was held in La Habana, Cuba, in April 2019.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"39 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-07-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127986777","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Supporting a Hybrid Composition of Microservices. The EUCalipTool Platform","authors":"Pedro Valderas, Victoria Torres, V. Pelechano","doi":"10.5753/jserd.2020.457","DOIUrl":"https://doi.org/10.5753/jserd.2020.457","url":null,"abstract":"In order to provide complex and elaborated functionalities, Microservices may cooperate with each other either by following a centralized (orchestration) or decentralized (choreography) approach. It seems that the decentralized nature of microservices makes the choreography approach more appropriate to achieve such cooperation, where lighter solutions based on events and message queues are used. However, orchestration through the usage of a process model makes it is easier to analyze the flow of the composition when modifications are required. In order to benefit from the goodness of these two approaches, this paper presents a hybrid solution based on the choreography of business process pieces, that are obtained from a previously defined description of the complete microservice composition. To support this solution, the EUCalipTool platform is presented.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-02-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115439103","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Requirements engineering process for a quality model in Cuba","authors":"Yoandy Lazo, Leanet Tamayo, Odannis Enamorado, Kariné Ramos","doi":"10.5753/jserd.2020.459","DOIUrl":"https://doi.org/10.5753/jserd.2020.459","url":null,"abstract":"A high percentage of projects worldwide fail or are canceled due to incorrect requirements engineering. Incorporating good practices into this process provides the appropriate mechanism to understand and analyze what stakeholders want and need. It also allows to evaluate and negotiate a reasonable solution, specify, validate and manage the requirements as they are transformed into a functional system. The objective of this research is to elaborate a process of Requirements Engineering for the Quality Model for Software Development that contributes to raise the percentage of successful projects, in Cuban´s software development organizations, regarding the fulfillment of the agreed requirements. The solution proposal contains specific requirements and support elements (graphic and textual description of the process), divided by the three levels of maturity proposed by the Model. In order to reach the proposed goal, a bibliographic review was made on the requirements engineering discipline, as well as interviews and surveys to roles related to this activity in the software development organizations of Cuba. The solution was evaluated by experts in a focus group and put into practice, as a pilot, in three organizations, it was also measured the satisfaction of the users who used it using the Iadov technique.","PeriodicalId":189472,"journal":{"name":"J. Softw. Eng. Res. Dev.","volume":"140 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-02-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129016001","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}