“…T2: Scientific software developers benefit from using a wide range of testing practices from software engineering. Twelve studies made this claim [19,28,37,[39][40][41][42][43][44][45][46][47]. One method of addressing the problem in T1 is to use test-driven development to keep bugs such as these from remaining in their code in addition to doing a regular, automated build in order to test their code on a regular basis rather than waiting until project is completed [19,37,39,42].…”
a b s t r a c tContext: Scientists have become increasingly reliant on software in order to perform research that is too timeintensive, expensive, or dangerous to perform physically. Because the results produced by the software drive important decisions, the software must be correct and developed efficiently. Various software engineering practices have been shown to increase correctness and efficiency in the development of traditional software. It is unclear whether these observations will hold in a scientific context.Objective: This paper evaluates claims from software engineers and scientific software developers about 12 different software engineering practices and their use in developing scientific software.
Method:We performed a systematic literature review examining claims about how scientists develop software. Of the 189 papers originally identified, 43 are included in the literature review. These 43 papers contain 33 different claims about 12 software engineering practices.
Results:The majority of the claims indicated that software engineering practices are useful for scientific software development. Every claim was supported by evidence (i.e. personal experience, interview/survey, or case study) with slightly over half supported by multiple forms of evidence. For those claims supported by only one type of evidence, interviews/surveys were the most common. The claims that received the most support were: "The effectiveness of the testing practices currently used by scientific software developers is limited" and "Version control software is necessary for research groups with more than one developer." Additionally, many scientific software developers have unconsciously adopted an agile-like development methodology.Conclusion: Use of software engineering practices could increase the correctness of scientific software and the efficiency of its development. While there is still potential for increased use of these practices, scientific software developers have begun to embrace software engineering practices to improve their software. Additionally, software engineering practices still need to be tailored to better fit the needs of scientific software development.
“…T2: Scientific software developers benefit from using a wide range of testing practices from software engineering. Twelve studies made this claim [19,28,37,[39][40][41][42][43][44][45][46][47]. One method of addressing the problem in T1 is to use test-driven development to keep bugs such as these from remaining in their code in addition to doing a regular, automated build in order to test their code on a regular basis rather than waiting until project is completed [19,37,39,42].…”
a b s t r a c tContext: Scientists have become increasingly reliant on software in order to perform research that is too timeintensive, expensive, or dangerous to perform physically. Because the results produced by the software drive important decisions, the software must be correct and developed efficiently. Various software engineering practices have been shown to increase correctness and efficiency in the development of traditional software. It is unclear whether these observations will hold in a scientific context.Objective: This paper evaluates claims from software engineers and scientific software developers about 12 different software engineering practices and their use in developing scientific software.
Method:We performed a systematic literature review examining claims about how scientists develop software. Of the 189 papers originally identified, 43 are included in the literature review. These 43 papers contain 33 different claims about 12 software engineering practices.
Results:The majority of the claims indicated that software engineering practices are useful for scientific software development. Every claim was supported by evidence (i.e. personal experience, interview/survey, or case study) with slightly over half supported by multiple forms of evidence. For those claims supported by only one type of evidence, interviews/surveys were the most common. The claims that received the most support were: "The effectiveness of the testing practices currently used by scientific software developers is limited" and "Version control software is necessary for research groups with more than one developer." Additionally, many scientific software developers have unconsciously adopted an agile-like development methodology.Conclusion: Use of software engineering practices could increase the correctness of scientific software and the efficiency of its development. While there is still potential for increased use of these practices, scientific software developers have begun to embrace software engineering practices to improve their software. Additionally, software engineering practices still need to be tailored to better fit the needs of scientific software development.
“…Martinez et al [12] used ELAs based on covering arrays to locate faulty interactions. Their approach mainly focused on computational aspects rather than optimality.…”
Section: Now Suppose Further Thatmentioning
confidence: 99%
“…Colbourn and McClary formalized the problem of nonadaptive location of interaction faults under the hypothesis that the system contains (at most) some number d of faults, each involving (at most) some number t of interacting factors in their recent paper [7]. A generalization can be found in [12]. Aiming to solve this problem, they proposed the notion of detecting arrays.…”
The notion of a detecting array (DTA) was proposed, recently, by Colbourn and McClary in their research on software interaction tests. Roughly speaking, testing with a (d, t)-DTA (N , k, v) can locate d interaction faults and detect whether there are more than d interaction faults. In this paper, we establish a general lower bound on sizes of DTAs and explore an equivalence between optimal DTAs and super-simple orthogonal arrays (OAs). Taking advantage of this equivalence, a great number of DTAs are constructed, which are all optimal in the sense of their sizes. In particular, an optimal (2, t)-DTA (N , 5, v) of strength t = 2 or 3 is shown to exist whenever v ≥ 3 excepting (t, v) ∈ {(2, 3), (2, 6), (3, 4), (3, 6)}.
“…Recently, Martínez et al [7] used ELAs based on covering arrays to locate faulty interactions. However, their approach mainly focused on computational aspects rather than optimality.…”
Locating arrays are of interest in generating software test suites to cover all t-way component interactions and locate interaction faults in component-based systems. Recently, Tang, Colbourn and Yin made an investigation into optimal locating arrays in the case where a single fault is to be located. They pointed out that when two or more faults were considered, matters would become rather complicated. To handle those cases generally seems challenging, but is well worth further research. In this paper, we establish a lower bound on the size of locating arrays with at most two faults, and then prove that optimal locating arrays meeting this bound can be equivalently characterized in terms of orthogonal arrays with prescribed properties. Using this characterization, we develop a number of constructions of optimal locating arrays. Two infinite series of optimal locating arrays are then obtained.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.