2,693 research outputs found

    A Family of Experiments on Test-Driven Development

    Full text link
    Context: Test-driven development (TDD) is an agile software development approach that has been widely claimed to improve software quality. However, the extent to which TDD improves quality appears to be largely dependent upon the characteristics of the study in which it is evaluated (e.g., the research method, participant type, programming environment, etc.). The particularities of each study make the aggregation of results untenable. Objectives: The goal of this paper is to: increase the accuracy and generalizability of the results achieved in isolated experiments on TDD, provide joint conclusions on the performance of TDD across different industrial and academic settings, and assess the extent to which the characteristics of the experiments affect the quality-related performance of TDD. Method: We conduct a family of 12 experiments on TDD in academia and industry. We aggregate their results by means of meta-analysis. We perform exploratory analyses to identify variables impacting the quality-related performance of TDD. Results: TDD novices achieve a slightly higher code quality with iterative test-last development (i.e., ITL, the reverse approach of TDD) than with TDD. The task being developed largely determines quality. The programming environment, the order in which TDD and ITL are applied, or the learning effects from one development approach to another do not appear to affect quality. The quality-related performance of professionals using TDD drops more than for students. We hypothesize that this may be due to their being more resistant to change and potentially less motivated than students. Conclusion: Previous studies seem to provide conflicting results on TDD performance (i.e., positive vs. negative, respectively). We hypothesize that these conflicting results may be due to different study durations, experiment participants being unfamiliar with the TDD process..

    Analysis of the impact of test based development techniques (TDD, BDD, AND ATDD) to the software life cycle

    Get PDF
    Within the world of software development, there is a permanent need to create quality products that are capable of facing challenges in environments of changing requirements. The industry in this area is aware of this, and so, it makes use of software development methodologies such as: traditional or agile. Agile development represents a distancing from traditional approaches, allowing the creation of applications incrementally and iteratively and, thus, adjusting to the changing requirements of customers. For this reason, companies have recently adopted the use of its practices and techniques, e.g.: Test-Driven Development (TDD), Acceptance Test-Driven Development (ATDD), Behavior-Driven Development (BDD), among others. These techniques promise mainly to improve the quality of the software and the productivity of the programmers; therefore, many experiments, especially using TDD, have been made within the academy and the industry; which shows variant results (some with positive effects and others not so much). In addition, expert programmers have put these techniques into practice in software creation, getting satisfactory results due to the advantages offered by its use. The main objective of this work is to verify the impact produced by the techniques of software development based on tests (TDD, ATDD and BDD), analyzing its primordial promises. A literature research has been conducted in order to understand the strengths and weaknesses of each one of these techniques. With the intention of observing the effectiveness of TDD and BDD, an experiment was planned in an academic scenario, considering education and appropriate training to implement enough knowledge about them. With the results obtained, it was possible to understand that the techniques studied ensured the quality of the product developed and improved the productivity of the programmers; validating its effects within software development

    Agile Processes in Software Engineering and Extreme Programming

    Get PDF
    This open access book constitutes the proceedings of the 21st International Conference on Agile Software Development, XP 2020, which was planned to be held during June 8-12, 2020, at the IT University of Copenhagen, Denmark. However, due to the COVID-19 pandemic the conference was postponed until an undetermined date. XP is the premier agile software development conference combining research and practice. It is a hybrid forum where agile researchers, academics, practitioners, thought leaders, coaches, and trainers get together to present and discuss their most recent innovations, research results, experiences, concerns, challenges, and trends. Following this history, for both researchers and seasoned practitioners XP 2020 provided an informal environment to network, share, and discover trends in Agile for the next 20 years. The 14 full and 2 short papers presented in this volume were carefully reviewed and selected from 37 submissions. They were organized in topical sections named: agile adoption; agile practices; large-scale agile; the business of agile; and agile and testing

    Test-Driven, Model-Based Systems Engineering.

    Get PDF

    Experiences from Teaching Automated Testing with CrowdSorcerer

    Get PDF
    Software testing is an important process when ensuring a program's quality. However, testing has not traditionally been a very substantial part of computer science education. Some attempts to integrate it into the curriculum has been made but best practices still prove to be an open question. This thesis discusses multiple attempts of teaching software testing during the years. It also introduces CrowdSorcerer, a system for gathering programming assignments with tests from students. It has been used in introductory programming courses in University of Helsinki. To study if the students benefit from creating assignments with CrowdSorcerer, we analysed the number of assignments and tests they created and if they correlate with their performance in a testing-related question in the course exam. We also gathered feedback from the students on their experiences from using CrowdSorcerer. Looking at the results, it seems that more research on how to teach testing would be beneficial. Improving CrowdSorcerer would also be a good idea

    Software quality assurance in Scrum the need for concrete guidance on SQA strategies in meeting user expectations

    Get PDF
    Includes abstract.Includes abstract.The purpose of this study is to identify and present the concerns of project stakeholders in relation to Software Quality Assurance (SQA) in a Scrum environment. Guided by the tenets of Classic Grounded Theory Methodology, this exploratory and inductive case study presents a broad range of SQA concepts related to the main concern of “Meeting User Expectations”. In trying to resolve the main concern, the Scrum project stakeholders alluded to lack of “Concrete Guidance” on SQA strategies, tools, and techniques in Scrum. The lack of concrete guidance in Scrum requires a development team to devise “Innovations” which may include “Adopting Practices” from other methodologies and carefully designing the “Process Structure” to accommodate the “Adopted Practices”, ensure “Continuous Improvement” of the process, and provide an environment for “Collaborative Ownership”. In addition to the “Need for Concrete Guidance”, the study reveals two other important concepts necessary for “Meeting User Expectations”: the “Need for Solid User Representation” and the “Need for Dedicated Testing”. While some Agile proponents claim that the Agile SQA practices are adequate on their own, the study reveals a number of challenges that impact on a team’s ability to meet user expectations when there is no dedicated tester in a Scrum environment
    • …
    corecore