143 research outputs found

    Moderating Effects of Requirements Uncertainty on Flexible Software Development Techniques

    Get PDF
    Partially due to increasing requirements uncertainty, flexibility has been in the focus of many software development activities for many years. Only few studies have analyzed the indirect effect that different levels of requirements uncertainty have on the effects of established flexible development techniques. This study analyzes how requirements uncertainty moderates the well studied effects of (1) sequential development, (2) investment in architectural design, and (3) intensity of early feedback on the performance of contract development projects. It finds that requirements uncertainty negatively moderates the effects of sequential development. It also points out that requirements uncertainty negatively moderates the effect of investment in architectural design. For agile development approaches, the value of investment in architectural design falls with increasing uncertainty. However, for plan-driven approaches, investment in architectural design is positive at any level of requirements uncertainty. Finally, the paper finds that early feedback throughout the development process is helpful at any level of requirements uncertainty

    Angels and monsters: An empirical investigation of potential test effectiveness and efficiency improvement from strongly subsuming higher order mutation

    Get PDF
    We study the simultaneous test effectiveness and efficiency improvement achievable by Strongly Subsuming Higher Order Mutants (SSHOMs), constructed from 15,792 first order mutants in four Java programs. Using SSHOMs in place of the first order mutants they subsume yielded a 35%-45% reduction in the number of mutants required, while simultaneously improving test efficiency by 15% and effectiveness by between 5.6% and 12%. Trivial first order faults often combine to form exceptionally non-trivial higher order faults; apparently innocuous angels can combine to breed monsters. Nevertheless, these same monsters can be recruited to improve automated test effectiveness and efficiency

    NuzzleBug: Debugging Block-Based Programs in Scratch

    Full text link
    While professional integrated programming environments support developers with advanced debugging functionality, block-based programming environments for young learners often provide no support for debugging at all, thus inhibiting debugging and preventing debugging education. In this paper we introduce NuzzleBug, an extension of the popular block-based programming environment Scratch that provides the missing debugging support. NuzzleBug allows controlling the executions of Scratch programs with classical debugging functionality such as stepping and breakpoints, and it is an omniscient debugger that also allows reverse stepping. To support learners in deriving hypotheses that guide debugging, NuzzleBug is an interrogative debugger that enables to ask questions about executions and provides answers explaining the behavior in question. In order to evaluate NuzzleBug, we survey the opinions of teachers, and study the effects on learners in terms of debugging effectiveness and efficiency. We find that teachers consider NuzzleBug to be useful, and children can use it to debug faulty programs effectively. However, systematic debugging requires dedicated training, and even when NuzzleBug can provide correct answers learners may require further help to comprehend faults and necessary fixes, thus calling for further research on improving debugging techniques and the information they provide.Comment: To appear at the 2024 IEEE/ACM 46th International Conference on Software Engineering (ICSE '24), April 14--20, 2024, Lisbon, Portuga

    Prioritization of combinatorial test cases by incremental interaction coverage

    Get PDF
    Combinatorial testing is a well-recognized testing method, and has been widely applied in practice. To facilitate analysis, a common approach is to assume that all test cases in a combinatorial test suite have the same fault detection capability. However, when testing resources are limited, the order of executing the test cases is critical. To improve testing cost-effectiveness, prioritization of combinatorial test cases is employed. The most popular approach is based on interaction coverage, which prioritizes combinatorial test cases by repeatedly choosing an unexecuted test case that covers the largest number on uncovered parameter value combinations of a given strength (level of interaction among parameters). However, this approach suffers from some drawbacks. Based on previous observations that the majority of faults in practical systems can usually be triggered with parameter interactions of small strengths, we propose a new strategy of prioritizing combinatorial test cases by incrementally adjusting the strength values. Experimental results show that our method performs better than the random prioritization technique and the technique of prioritizing combinatorial test suites according to test case generation order, and has better performance than the interaction-coverage-based test prioritization technique in most cases

    Reusable framework for web application development

    Get PDF
    Web application (WA) is among the mainstream enterprise-level software solutions. One of the reasons for this trend was due to the presence of Web application framework (WAF) that in many ways has helped web developer to implement WA as an enterprise system. However, there are complexity issues faced by the developers when using existing WAFs as reported by the developers themselves. This study is proposed to find a solution to this particular issue by investigating generic issues that arise when developers utilize Web as a platform to deliver enterprise-level application. The investigation involves the identification of problems and challenges imposed by the architecture and technology of the Web itself, study of software engineering (SE) knowledge adaptation for WA development, determination of factors that contribute to the complexity of WAF implementation, and study of existing solutions for WA development proposed by previous works. To better understand the real issues faced by the developers, handson experiment was conducted through development testing performed on selected WAFs. A new highly reusable WAF is proposed, which is derived from the experience of developing several WAs case studies guided by the theoretical and technical knowledge previously established in the study. The proposed WAF was quantitatively and statistically evaluated in terms of its reusability and usability to gain insight into the complexity of the development approach proposed by the WAF. Reuse analysis results demonstrated that the proposed WAF has exceeded the minimum target of 75% reuse at both the component and system levels while the usability study results showed that almost all (15 out of 16) of the questionnaire items used to measure users’ attitudes towards the WAF were rated at least moderately by the respondents

    Mutation Testing Advances: An Analysis and Survey

    Get PDF
    • …
    corecore