Robert Feldt's research while affiliated with Chalmers University of Technology and other places

Publications (62)

Article
Full-text available
Purpose To investigate the potential use of large language models (LLMs) in orthopaedics by presenting queries pertinent to anterior cruciate ligament (ACL) surgery to generative pre-trained transformer (ChatGPT, specifically using its GPT-4 model of March 14th 2023). Additionally, this study aimed to evaluate the depth of the LLM’s knowledge and i...
Preprint
Software testing is an important part of the development cycle, yet it requires specialized expertise and substantial developer effort to adequately test software. The recent discoveries of the capabilities of large language models (LLMs) suggest that they can be used as automated testing assistants, and thus provide helpful information and even dr...
Preprint
Automated testing tools typically create test cases that are different from what human testers create. This often makes the tools less effective, the created tests harder to understand, and thus results in tools providing less support to human testers. Here, we propose a framework based on cognitive science and, in particular, an analysis of approa...
Preprint
Full-text available
Software testing is a complex, intellectual activity based (at least) on analysis, reasoning, decision making, abstraction and collaboration performed in a highly demanding environment. Naturally, it uses and allocates multiple cognitive resources in software testers. However, while a cognitive psychology perspective is increasingly used in the gen...
Article
Evolution provides a creative fount of complex and subtle adaptations that often surprise the scientists who discover them. However, the creativity of evolution is not limited to the natural world: Artificial organisms evolving in computational environments have also elicited surprise and wonder from the researchers studying them. The process of ev...
Conference Paper
While dependency analysis is foundational to many applications of program analysis, the static nature of many existing techniques presents challenges such as limited scalability and inability to cope with multi-lingual systems. We present a novel dependency analysis technique that aims to approximate program dependency from a relatively small numbe...
Article
Full-text available
Background: In order to make informed decisions, software engineering practitioners need information from testing. However, with the trend of increased automation, there is an exponential growth and increased distribution of this information. This paper aims at exploring the information flow in software testing in the domain of embedded systems. Me...
Preprint
Mutation analysis can effectively capture the dependency between source code and test results. This has been exploited by Mutation Based Fault Localisation (MBFL) techniques. However, MBFL techniques suffer from the need to expend the high cost of mutation analysis after the observation of failures, which may present a challenge for its practical a...
Preprint
Deep Learning (DL) systems are rapidly being adopted in safety and security critical domains, urgently calling for ways to test their correctness and robustness. Testing of DL systems has traditionally relied on manual collection and labelling of data. Recently, a number of coverage criteria based on neuron activation values have been proposed. The...
Article
Problem: The involvement of external stakeholders in capstone projects and project courses is desirable due to its potential positive effects on the students. Capstone projects particularly profit from the inclusion of an industrial partner to make the project relevant and help students acquire professional skills. In addition, an increasing push t...
Conference Paper
In software-intensive industries, companies face the constant challenge of not having enough security experts on staff in order to validate the design of the high-complexity projects they run. Many of these companies are now realizing that increasing automation in their secure development process is the only way forward in order to cope with the ul...
Preprint
Full-text available
Problem: The involvement of external stakeholders in capstone projects and project courses is desirable due to its potential positive effects on the students. Capstone projects particularly profit from the inclusion of an industrial partner to make the project relevant and help students acquire professional skills. In addition, an increasing push t...
Article
Full-text available
Biological evolution provides a creative fount of complex and subtle adaptations, often surprising the scientists who discover them. However, because evolution is an algorithmic process that transcends the substrate in which it occurs, evolution's creativity is not limited to nature. Indeed, many researchers in the field of digital evolution have o...
Article
The relative pros and cons of using students or practitioners in experiments in empirical software engineering have been discussed for a long time and continue to be an important topic. Following the recent publication of “Empirical software engineering experts on the use of students and professionals in experiments” by Falessi, Juristo, Wohlin, Tu...
Article
Full-text available
Visual GUI Testing (VGT) is a tool-driven technique for automated GUI-based testing that uses image recognition to interact with and assert the correctness of the behavior of a system through its GUI as it is shown to the user. The technique’s applicability, e.g. defect-finding ability, and feasibility, e.g. time to positive return on investment, h...
Conference Paper
Integration testing of automotive embedded software functions that are distributed across several Electronic Control Unit (ECU) system software modules is a complex and challenging task in today’s automotive industry. They neither have infinite resources, nor have the time to carry out exhaustive testing of these functions. On the other hand, the t...
Conference Paper
Full-text available
Testing is an important activity in engineering of industrial embedded software. In certain application domains (e.g., railway industry) engineering software is certified according to safety standards that require extensive software testing procedures to be applied for the development of reliable systems. Mutation analysis is a technique for creati...
Article
Context: Verification and validation (V&V) activities make up 20-50% of the total development costs of a software system in practice. Test automation is proposed to lower these V&V costs but available research only provides limited empirical data from industrial practice about the maintenance costs of automated tests and what factors affect these c...
Article
Full-text available
In order to cope with a complex and changing environment, industries seek to find new and more efficient ways to conduct their business. According to previous research, many of these change efforts fail to achieve their intended aims. Researchers have therefore sought to identify factors that increase the likelihood of success and found that employ...
Article
Context Several industries developing products on a large-scale are facing major challenges as their products are becoming more and more software-intensive. Whereas software was once considered a detail to be bundled, it has since become an intricate and interdependent part of most products. The advancement of software increases the uncertainty and...
Article
Throughout the history of software engineering, the human aspects have repeatedly been recognized as important. Even though research that investigates them has been growing in the past decade, these aspects should be more generally considered. The main objective of this study is to clarify the research area concerned with human aspects of software...
Article
The efficiency of random testing can be improved by sampling test inputs using a generating program that incorporates knowledge about the types of input most likely to detect faults in the software-under-test (SUT). But when the input of the SUT is a complex data type - such as a domain-specific string, array, record, tree, or graph - creating such...
Article
Full-text available
The user's overall experience and perception of functionalities and qualities of a product, User eXperience (UX), is becoming increasingly important for success of software products. Yet, many software companies face challenges with their UX practices, hence fail to achieve a good UX in their products. Part of these challenges are rooted in inadequ...
Article
A large body of academic knowledge has been devoted to automated software testing in order to support the software market’s demands for continuous software delivery. However, most of these automated techniques approach testing from lower levels of system abstraction, e.g., component level, which limit their applicability for high-level regression t...
Article
Software acting on complex data structures can be challenging to test: it is difficult to generate diverse test data that satisfies structural constraints while simultaneously exhibiting properties, such as a particular size, that the test engineer believes will be effective in detecting faults. In our previous work we introduced GödelTest, a frame...
Article
Throughout the history of Software Engineering (SE) it has been repeatedly found that the humans involved, i.e. the engineers and developers in addition to other stakeholders, are a key factor in determining project outcomes and success. However, the amount of research that focuses on human aspects has been limited compared to research with technol...
Article
In today’s software development industry, high-level tests such as Graphical User Interface (GUI) based system and acceptance tests are mostly performed with manual practices that are often costly, tedious and error prone. Test automation has been proposed to solve these problems but most automation techniques approach testing from a lower level of...
Article
Full-text available
Software Process Improvement (SPI) encompasses the analysis and modification of the processes within software development, aimed at improving key areas that contribute to the organizations' goals. The task of evaluating whether the selected improvement path meets these goals is challenging. Based on the results of a systematic literature review on...
Article
Lean approaches to product development (LPD) have had a strong influence on many industries and in recent years there have been many proponents for lean in software development as it can support the increasing industry need of scaling agile software development. With it's roots in industrial manufacturing and, later, industrial product development,...
Conference Paper
For software testing to be effective the test data should cover a large and diverse range of the possible input domain. Boltzmann samplers were recently introduced as a systematic method to randomly generate data with a range of sizes from combinatorial classes, and there are a number of automated testing frameworks that serve a similar purpose. Ho...
Article
Companies increasingly use either manual or automated system testing to ensure the quality of their software products. As a system evolves and is extended with new features the test suite also typically grows as new test cases are added. To ensure software quality throughout this process the test suite is continously executed, often on a daily basi...
Conference Paper
Monitoring performance of software development organizations can be achieved from a number of perspectives - e.g. using such tools as Balanced Scorecards or corporate dashboards. In this paper we present results from a study on using code stability indicators as a tool for product stability and organizational performance, conducted at three differe...
Conference Paper
To achieve software quality it is critical to quickly understand the current test status, its changes over time as well as its relation to source code changes. However, even if this information is available in test logs and code repositories it is seldomly put to good use in supporting decision processes in software development. The amount of infor...
Conference Paper
Budget constraints and the difficulty to specify quality requirements, such as reliability, robustness, and safety present challenges to many software companies in particular if they develop safety-critical systems. Failing to specify this type of requirements properly can lead to misunderstandings between the developers and the customers, which ca...
Conference Paper
Software testing is an essential means of evaluating software quality. System and acceptance tests aim to validate a system's conformance to its requirements on a high level of system abstraction. Therefore, they are generally performed by executing end-user scenarios through the system's graphical user interface (GUI). However, to the authors' bes...
Conference Paper
Probabilistic testing techniques that sample input data at random from a probability distribution can be more effective at detecting faults than deterministic techniques. However, if overly large (and therefore expensive) test sets are to be avoided, the probability distribution from which the input data is sampled must be optimised to the particul...
Conference Paper
Full-text available
Visual GUI testing (VGT) is an emerging technique that provides software companies with the capability to automate previously time-consuming, tedious, and fault prone manual system and acceptance tests. Previous work on VGT has shown that the technique is industrially applicable, but has not addressed the real-world applicability of the technique w...
Article
Cost estimation of software projects is an important activity that continues to be a source of problems for practitioners despite improvement efforts. Most of the research on estimation has focused on methodological issues while the research focused on human factors primarily has targeted cognitive biases or perceived inhibitors. This paper focuses...
Article
Software companies are under continuous pressure to shorten time to market, raise quality and lower costs. More automated system testing could be instrumental in achieving these goals and in recent years testing tools have been developed to automate the interaction with software systems at the GUI level. However, there is a lack of knowledge on the...
Article
Full-text available
In the presence of a number of algorithms for classi¯cation and prediction in software engineering, there is a need to have a systematic way of assessing their performances. The performance assessment is typically done by some form of partitioning or resampling of the original data to alleviate biased estimation. For predictive and classi¯cation st...
Article
Full-text available
In order to create a successful software product and assure its quality, it is not enough to fulfill the functional requirements, it is also crucial to find the right balance among competing quality requirements (QR). An extended, previosluy piloted, interview study was performed to identify specific challenges associated with the selection, trade-...
Conference Paper
Full-text available
Cost estimation of software projects is an important management activity. Despite research efforts the accuracy of estimates does not seem to improve. In this paper we confirm intentional distortions of estimates reported in a previous study. This study is based on questionnaire responses from 48 software practitioners from eight different companie...
Conference Paper
Requirements should specify expectations on a software system and testing should ensure these expectations are met. Thus, to enable high product quality and efficient development it is crucial that requirements and testing activities and information are aligned. A lot of research has been done in the respective fields Requirements Engineering and T...
Conference Paper
Full-text available
A large percentage of the cost of rework can be avoided by finding more faults earlier in a software testing process. Therefore, determination of which software testing phases to focus improvements work on, has considerable industrial interest. This paper evaluates the use of five different techniques, namely particle swarm optimization based artif...
Article
Full-text available
Cost estimation is important for planning, scheduling, budgeting and pricing of software development. Previous research has mainly focused on improving estimates and the associated processes. However, there is still a lack of research on human and organizational aspects of cost estimation and informal uses of cost estimates. This paper presents ini...
Article
Full-text available
Software fault prediction can play an important role in ensuring software quality through efficient resource allocation. This could, in turn, reduce the potentially high consequential costs due to faults. Predicting faults might be even more important with the emergence of short-timed and multiple software releases aimed at quick delivery of functi...
Article
Full-text available
Software for space applications has special requirements in terms of reliability and dependability and the verification & validation activities (VAs) of these systems often account for more than 50% of the develop-ment effort. The industry is also faced with political and market pressure to deliver software faster and cheaper. Thus new ways are nee...
Conference Paper
This paper presents a simple method that computes test case coverage information from information on what files were updated to fix a fault found by the test case. It uses a cache to monitor fault-prone files and recommends test cases to rerun to cover updated files. We present an evaluation of the method during two months of development of a large...
Conference Paper
Full-text available
Software reliability growth modeling helps in deciding project release time and managing project resources. A large number of such models have been presented in the past. Due to the existence of many models, the models' inherent complexity, and their accompanying assumptions; the selection of suitable models becomes a challenging task. This paper p...
Conference Paper
Full-text available
Search-based software testing (SBST) has shown a potential to decrease cost and increase quality of testing- related software development activities. Research in SBST has so far mainly focused on the search for isolated tests that are optimal according to a fitness function that guides the search. In this paper we make the case for fitness function...
Conference Paper
Test staff in modern software consultancy companies often has to work in multiple projects that differ not only technically, but also from organizational, management and social aspects. The ease and speed with which staff can adapt to new projects and environments is crucial for the success and profitability of the consultancy company. This paper i...
Article
Early in a software development project the developers lack knowledge about the problem to be solved by the software. Any knowledge that can be gained at an early stage can reduce the risk of making erroneous decisions and injecting defects that can be expensive to eliminate in later phases. This paper presents the idea of using genetic programming...
Article
Based on a theory for software development that focus on the internal models of the developer this paper presents a design for an interactive workbench to support the iterative refinement of developers models. The goal for the workbench is to expose unknown features of the software being developed so that the developer can check if they correspond...
Article
Full-text available
The increasing dependence on computers for critical infras- tructures essential for the functioning of a society and its economy has given rise to host of ethical, social, and legal issues. The ability to make sound ethical decisions is thus an important part of Computing and Software engineer's professional skills. This paper argues for the signif...
Article
We present a theory of software development as an incremental learning process. The focus is on the internal models of the developer. There are two main ways in which a development process can make progress: by refining an internal model or by refining an artefact based on an internal model. Refining the internal models is a prerequisite for being...

Citations

... Enoiu, et al. [41] present a software testing cycle that is centered around their observation that test design and execution can be viewed as a classical problem solving process like the Plan Do Check Act cycle. Their study recognizes the need to explore how testers create test cases in future works. ...
... Many of the safety problems studied today are caused by algorithms exploiting flaws and unintended loopholes in the design of an objective function. Examples include agents finding and exploiting ways to cheat in games [3], agents exploiting bugs in simulators [14], and supervised learning agents that can be fooled as they have learned other patterns in their data than we expected [24]. As AI algorithms become smarter they might even find other exploiting methods that are not reliant on weaknesses in the objective function design [7]. ...
... In earlier work (Lee et al., 2019) we presented the basic technique and empirically evaluated its use for producing backward slices. This paper extends our previous work in three main ways. ...
... Detecting DNN bugs is not easier than detecting bugs in traditional programs, i.e., programs without any data-driven component in them, as DNNs depend on the properties of the training data and numerous hyperparameters [8]. Mitigating DNN bugs has been the subject of fervent research in recent years, and various techniques have been proposed for testing [9], [10], fault localization [11], [12], and repair [13], [14] of DNN models. ...
... While Type-I and Type-III projects are developed, respectively, by a small number of large open-source projects and many individual software organizations, a substantial proportion of Type-II projects, i.e., ML pipelines, are produced by researchers as a by-product of a published paper [5]. This is because most of the major research venues, both in the AI (e.g., AAAI [6], NeurIPS [7], ICML [8]) and software engineering domains (e.g., ICSE [9], EMSE [10], TSE [11]), have strict submission requirements to facilitate open science and reproducibility of research results, which requires submission of datasets and code along with their papers. Typically, researchers would upload a preprint of their work on a repository like ArXiv, including a GitHub repository with the pipeline code and (potentially) a labeled data set to train the pipeline on. ...
... Upcycling materials are project materials used as materials for upcycling. As Figure 3 shows, a wide variety of project materials can be used, including the entire project, source code files, functions, application programming interfaces (APIs), test cases, and project design documents (e.g., Unified Modeling Language (UML) diagrams and data model designs) [42][43][44]. Limiting the types of upcyclable materials that can be accumulated in the knowledge base risks narrowing the possibilities for upcycling. Hence, the system aims to accumulate all kinds of project materials regardless of type or format. ...
... We carried out an evaluation with students first because authors such as [53], [58] highlight the idea that the level of internal validity in experiments with students may be similar to that with practitioners (or even higher if there is prior training in the skills being evaluated). All the participants initially had similar knowledge of GSD and DSD, something about which they were asked at the beginning of the Pre-Test, and only a few students had previous experience in these types of contexts. ...
... Moreover, our work demonstrates that external stakeholders can get involved in many ways. In the future, it would be important to explore this in more detail, and evaluate the consequences as demonstrated by Steghöfer et al. (2018). ...
... For example, future works could use the well-formedness rules proposed in Section 4.6 to search for optimal refinements of security policies automatically. Similar to a proposal by Scandariato et al.[SHF18], such an approach could be used to optimize the security arrangements made by software architects, enabling design space exploration on the basis of search-based MDE [BSA17]. For example, optimizing refinements could ease the integration of third-party or legacy components with fixed or even unknown security policies, minimize the verification effort by reducing the number of policies that must be actively verified, or enforce the principle of least privilege by preventing policies from being more permissive than necessary. ...
... If the agent's reward is based on how much dirt it observes, it might find ways of reducing its vision, and thus not observe any dirt at all. Reward gaming has frequently been reported among researches [1,15], and is usually fixed with a more robust objective function. ...