English
Related papers

Related papers: The role of slicing in test-driven development

200 papers

In agile software development, test code can considerably contribute to the overall source code size. Being a valuable asset both in terms of verification and documentation, the composition of a test suite needs to be well understood in…

Software Engineering · Computer Science 2007-11-06 Bart Van Rompaey , Serge Demeyer

Backward slicing has been used extensively in program understanding, debugging and scaling up of program analysis. For large programs, the size of the conventional backward slice is about 25% of the program size. This may be too large to be…

Software Engineering · Computer Science 2014-07-21 Shrawan Kumar , Amitabha Sanyal , Uday Khedker

Even though much progress has been made in identifying and mitigating smart contract vulnerabilities, we often hear about coding or design issues leading to great financial losses. This paper presents our progress toward finding defects…

Logic in Computer Science · Computer Science 2024-11-01 Stefan-Claudiu Susan

The technical debt (TD) metaphor is widely used to encapsulate numerous software quality problems. She describes the trade-off between the short term benefit of taking a shortcut during the design or implementation phase of a software…

Software Engineering · Computer Science 2019-11-19 Ronivon Dias , Pedro Neto , Irvayne Ibiapina , Guilherme Avelino e Otavio Castro

A code generator systematically transforms compact models to detailed code. Today, code generation is regarded as an integral part of model-driven development (MDD). Despite its relevance, the development of code generators is an inherently…

Software Engineering · Computer Science 2015-09-09 Alexander Roth , Bernhard Rumpe

Large language models (LLMs) accelerate software development but often exhibit instability, non-determinism, and weak adherence to development discipline in unconstrained workflows. While test-driven development (TDD) provides a structured…

Software Engineering · Computer Science 2026-04-30 Tarlan Hasanli , Shahbaz Siddeeq , Bishwash Khanal , Pyry Kotilainen , Tommi Mikkonen , Pekka Abrahamsson

In the present paper we formally define the notion of abstract program slicing, a general form of program slicing where properties of data are considered instead of their exact value. This approach is applied to a language with numeric and…

Logic in Computer Science · Computer Science 2016-05-20 Isabella Mastroeni , Damiano Zanardini

The idea of slicing divergences has been proven to be successful when comparing two probability measures in various machine learning applications including generative modeling, and consists in computing the expected value of a `base…

Machine Learning · Statistics 2022-01-05 Kimia Nadjahi , Alain Durmus , Lénaïc Chizat , Soheil Kolouri , Shahin Shahrampour , Umut Şimşekli

Dependency cycles pose a significant challenge to software quality and maintainability. However, there is limited understanding of how practitioners resolve dependency cycles in real-world scenarios. This paper presents an empirical study…

Software Engineering · Computer Science 2023-12-19 Qiong Feng , Shuwen Liu , Huan Ji , Xiaotian Ma , Peng Liang

Technical debt (TD) refers to suboptimal choices during software development that achieve short-term goals at the expense of long-term quality. Although developers often informally discuss TD, the concept has not yet crystalized into a…

Software Engineering · Computer Science 2022-01-31 Ipek Ozkaya , Zachary Kurtz , Robert L. Nord , Raghvinder S. Sangwan , Satish M. Srinivasan

We see that the collaborative and participatory nature of software development continues to evolve, shape and be shaped by communication channels that are used by developer communities of practice--both by traditional communication channels…

Software Engineering · Computer Science 2017-05-17 Alexey Zagalsky

Technical debt denotes shortcuts taken during software development, mostly for the sake of expedience. When such shortcuts are admitted explicitly by developers (e.g., writing a TODO/Fixme comment), they are termed as Self-Admitted…

Software Engineering · Computer Science 2022-11-22 Yikun Li , Mohamed Soliman , Paris Avgeriou , Lou Somers

Program slicing has been mainly studied in the context of imperative languages, where it has been applied to a wide variety of software engineering tasks, like program understanding, maintenance, debugging, testing, code reuse, etc. This…

Programming Languages · Computer Science 2007-05-23 Josep Silva , Germán Vidal

Model driven development is an effective method due to its benefits such as code transformation, increasing productivity and reducing human based error possibilities. Meanwhile, agile software development increases the software flexibility…

Software Engineering · Computer Science 2017-01-03 Gürkan Alpaslan , Oya Kalıpsız

Concurrent Constraint Programming (CCP) is a declarative model for concurrency where agents interact by telling and asking constraints (pieces of information) in a shared store. Some previous works have developed (approximated) declarative…

Logic in Computer Science · Computer Science 2017-02-13 Moreno Falaschi , Maurizio Gabbrielli , Carlos Olarte , Catuscia Palamidessi

Modern network architectures have shaped market segments, governments, and communities with intelligent and pervasive applications. Ongoing digital transformation through technologies such as softwarization, network slicing, and AI drives…

Moldable development supports decision-making by making software systems explainable. This is done by making it cheap to add numerous custom tools to your software, turning it into a live, explorable domain model. Based on several years of…

Software Engineering · Computer Science 2024-09-30 Oscar Nierstrasz , Tudor Gîrba

Writing correct distributed programs is hard. In spite of extensive testing and debugging, software faults persist even in commercial grade software. Many distributed systems, especially those employed in safety-critical environments,…

Distributed, Parallel, and Cluster Computing · Computer Science 2007-05-23 Neeraj Mittal , Vijay K. Garg

Experiments are a commonly used method of research in software engineering (SE). Researchers report their experiments following detailed guidelines. However, researchers do not, in the field of test-driven development (TDD) at least,…

Software Engineering · Computer Science 2024-08-26 Fernando Uyaguari , Silvia T. Acuña , John W. Castro , Davide Fucci , Oscar Dieste , Sira Vegas

Test-Driven Development (TDD) has been claimed to increase external software quality. However, the extent to which TDD increases external quality has been seldom studied in industrial experiments. We conduct four industrial experiments in…

Software Engineering · Computer Science 2018-07-23 Adrian Santos , Janne Jarvinen , Jari Partanen , Markku Oivo , Natalia Juristo