M. J. H. Smith, Micheal Smith · 2025
The Argonne Reactor Code (ARC) software system supports users in their fast reactor design goals by providing neutronic, thermal-hydraulic, and structural analysis capabilities. GAMSOR serves as procedure to obtain the neutron and gamma power distribution information in the ARC code system. GAMSOR is a specially modified version of DIF3D (dif3d.x becomes dif3d_gamsor.x). After some work, it was determined that carrying out software on GAMSOR was impractical and would not fit well with commercial grade dedication. GAMSRC was written in the last decade to replace GAMSOR such that the user can rely soley upon the verified DIF3D (dif3d.x) code and GAMSRC to obtain the neutron and gamma power distribution information. GAMSRC is also fully verified and ready for commercial grade dedication. In the coming years, GAMSOR will be deprecated and GAMSRC will fully take over in the ARC code system. This document identifies the set of test problems used to assess the code coverage for GAMSRC. The goal is to document what parts of the existing GAMSRC code are touched by the set of test problems and which are not. The code coverage analysis of GAMSRC was performed with the Code Coverage Tool of the Intel Fortran compiler which requires modifications to the compilation of GAMSRC. The code coverage tables are given for each submodule of GAMSRC. Because GAMSRC links to modules in DIF3D, some details on coverage changes to the DIF3D lined files is provided. As will be seen, most of the uncovered parts/files can be ignored because they are either for error message and debugging output or obviously not needed by GAMSRC today.
Cited by 0Open access
Egon Willighagen · Front Matter · 2006
Recently I discussed JUnit testing from within Eclipse , and blogged at several occasions about it in other situations. I cannot stress enough how useful unit testing is: it adds this extra set of eyeballs to make bugs shallow. And it does that, indeed.
Cited by 0Open access
Egon Willighagen · Front Matter · 2006
Recently I discussed JUnit testing from within Eclipse , and blogged at several occasions about it in other situations. I cannot stress enough how useful unit testing is: it adds this extra set of eyeballs to make bugs shallow. And it does that, indeed.
Cited by 0Open access
Muhammad Hassan, Daniel Große, Rolf Drechsler · 2024
Cited by 0
Klinvex, Alicia, O'Neal, Jared, Dubey, Anshu · Figshare · 2018
This presentation is the code coverage and continuous integration section of the Better Scientific Software tutorial at ISC 2018. The presentation also includes link to hands-on for code coverage and demo of CI.
Cited by 0Open access
Supriya Unnikrishnan · 2025
Large Language Models (LLMs) are in the limelight ever since their potential has been realized in the field of natural language processing. The capabilities of LLMs including summarization, code generation and code analysis can be effectively used in the VLSI design flow. Verification consumes a large part of a typical System On Chip (SoC) or Intellectual Property (IP) design cycle. Methods to accelerate this phase would be greatly beneficial to chip design project timelines. In this paper, we describe an LLM-enabled methodology to speed up the verification phase by automatically generating test coverage waivers from a design specification document.
Cited by 0
M. J. H. Smith, Micheal Smith · 2025
The Argonne Reactor Code (ARC) software system supports users in their fast reactor design goals by providing neutronic, thermal-hydraulic, and structural analysis capabilities. REBUS plays a pivotal role in the ARC system as the primary fuel cycle analysis capability for fast reactor problems. Over its 60 year history, ARC software usage with REBUS has been applied to numerous fast and thermal spectrum reactor analysis projects with good to excellent comparison against experiments. The RCT code is a later addition and uses the REBUS restart files to define its input. The RCT code was built to provide pin depletion details on EBR-II models and thus many features of RCT were specifically tailored to the needs of EBR-II models. Additional approximations were invoked which are likely only valid for the EBR-II reactor and the particular fuel management that was done for it. The purpose of the present work is to identify a set of test problems for RCT and assess the code coverage for those test problems. The goal is to document what parts of the existing RCT code are touched by the set of test problems and which are not. Because no detailed verification work has been done on RCT, the existing regression testing suite was chosen for the code coverage assessment. The code coverage analysis of RCT was performed with the Code Coverage Tool of the Intel Fortran compiler which requires modifications to the compilation of RCT. The detailed coverage tables are given for each part of RCT. As will be discussed and shown, some parts of the RCT capability that are known to be used by the EBR-II analysis work are not tested by the regression testing suite. These aspects should be resolved before major source code changes are taken for the RCT software. Because REBUS and DIF3D are not subroutines of RCT, the coverage changes in both of those codes is not altered by RCT. The same is true for all of the modules of DIF3D that are used by RCT such as SYSLIB and SEGLIB.
Cited by 0Open access
USDOE Office of Nuclear Energy (NE), Kalin Kiesling, M. J. H. Smith · 2025
The Argonne Reactor Code (ARC) software system supports users in their fast reactor design goals by providing neutronic, thermal-hydraulic, and structural analysis capabilities. PERSENT fulfills the role of generating reactivity coefficients for a given time point of a REBUS calculation usable in a point kinetics based safety analysis capability. PERSENT also provides a sensitivity coefficient capability on eigenvalue, reactivity worth, and several other key coefficients that are used in the follow-on safety analysis. Given a co-variance matrix, PERSENT can carry out the uncertainty quantification to indicate the amount of error in the reactivity coefficients derived from the errors in the cross section measurements. With continued improvement of computational resources, many of the geometry modeling capabilities in DIF3D that were primarily used in low order schemes are not really needed anymore. Today, the diffusion and transport capabilities of DIF3D-VARIANT are primarily used in the reactor design process with some scattered usage of DIF3D-FD and DIF3D-Nodal. PERSENT is part of the ARC code system and is built around DIF3D-VARIANT and the flux solution it provides. The purpose of the present work is to identify a set of test problems for PERSENT and assess the code coverage of PERSENT for those test problems. PERSENT treats the DIF3D executable as an external executable and thus the code coverage considerations only need to focus on the PERSENT source code and only a fraction of the connected modules in the existing ARC software library. The goal is to document what parts of the existing PERSENT code are touched by the set of test problems and which are not. Because the verification work done on PERSENT was focused on the most common uses of PERSENT for fast reactor analysis, the code coverage assessment of those capabilities is the highest priority. This will ensure that nothing is being missed by the existing verification test problems that users of PERSENT rely upon. The code coverage analysis of PERSENT was performed with the Code Coverage Tool of the Intel Fortran compiler which requires modifications to the compilation of PERSENT. The detailed coverage tables are given for each submodule of PERSENT. Most of the uncovered parts/files could be easily ignored because they are either for error message and debugging output or not needed by PERSENT today. Only a few uncovered parts of PERSENT deserve extending the verification test suite.
Cited by 0Open access
Hillery C. Hunter, Wen-meiHwu W. Hwu · 2002
Meaningful application benchmarking is crucial to processor design space exploration and compiler development. Many recent studies in the embedded processor domain have used reference telecommunications C programs which were originally intended to verify product compliance with a standard. In this paper, we demonstrate that telecommunications reference applications include a significant amount of superfluous code that skews a wide variety of experiments related to code size. A categorization of extra code is presented, and it is also demonstrated that benchmark inputs do not test broad usage patterns that might exist in a real system. It is shown that care must be taken in future studies to properly construct benchmarks which match the intended purpose of the target system and to provide inputs that more thoroughly exercise paths through telecommunications applications.
Cited by 7
Chin LS, Worth DJ, Greenough C · ePubs (Science and Technology Facilities Council, Research Councils UK) · 2009
This report introduces the concept of coverage analysis and provides a list of coverage tools available for Fortran.It also contains a step-by-step tutorial on using gcov and LCOV, and presents a case study on performing coverage analysis on an existing Fortran library (The Finite Element Library).The tools and steps laid out in this report focus on code written in Fortran, however the concepts should apply equally to code written in other programming languages.
Cited by 0Open access
Daniel Fischer, Andreas Behr, R. Bär · Opus-HSO (Offenburg University of Applied Sciences) · 2012
Cited by 0
O'Neal, Jared, Klinvex, Alicia · Figshare · 2018
Better Scientific Software Tutorial delivered at SC18, Dallas, TX, November 12, 2018
Cited by 0Open access
Ramandeep Kaur · 2005
Cited by 0
Load-Time Adaptation Success, Günter Kniesel, Michael Austermann · 2002
Cited by 0
Fischer, Daniel, Bär, Roland · Opus-HSO (Offenburg University of Applied Sciences) · 2012
In sicherheitskritschen Systemen darf kein Stück Code im Produktionsbetrieb ablaufen, ohne vorher intensive Tests durchlaufen zu haben. Aber auch zur Qualitätssicherung muss Software getestet werden. Um die Codeüberdeckung zu prüfen, sind zusätzliche Prüf-Instruktionen im Quellcode erforderlich. Auf kleinen Systemen mit wenig RAM kann sich der Entwickler dann etwas einfallen lassen, damit das funktioniert.
Cited by 0
Klinvex, Alicia, O'Neal, Jared, Dubey, Anshu · Figshare · 2018
This presentation is the code coverage and continuous integration section of the Better Scientific Software tutorial at ISC 2018. The presentation also includes link to hands-on for code coverage and demo of CI.
Cited by 0Open access
Apress eBooks · 2006
Cited by 0
T.-H. Wang, Chong Guan Tan · 2002
The ability to detect sections of code that have not been executed in a program or design has always been desired by hardware designers, since unexecuted code is clearly untested code. Unfortunately, there have been virtually no practical mechanisms for doing so. Given the combinatorial number of input possibilities for even a moderate design, exhaustive coverage obviously exceeds the capabilities of simulators. However, this does not mean that there cannot be useful heuristics, short of full coverage, that provide valuable feedback to hardware designers. This paper discusses a number of such practical approaches explored in a joint research project between Sun Microsystems and Chronologic Simulation. In addition to discussing the various intermediate approaches explored, the paper also discusses one approach that appears both practical and useful and its utility in uncovering untested sections in several Sun designs.
Cited by 11
Brian Marick · 1999
www.testing.com Code coverage tools measure how thoroughly tests exercise programs. I believe they are misused more often than they're used well. This paper describes common misuses in detail, then argues for a particular cautious approach to the use of coverage. There are other ways to measure the thoroughness of tests. See [Kaner96] for a list. These ways all fit under the umbrella term “test coverage. ” My claims in this paper are specific to code coverage. To avoid tedious repetition of the phrase “code coverage, ” I’ll follow common practice and use the shorthand term “coverage”. I’ll use the full phrase occasionally to remind you of the scope of the paper. Like code coverage itself, this paper is most useful to programmers testing their own code or to testers who read the source code while testing. It also describes coverage's relevance to the independent product tester (someone who doesn't look at the code) and to managers of developers and testers. What is code coverage? There are many different coverage measures. A simple one is to record which lines of code were executed. If a line has never been executed, it's a safe bet you didn't catch any bugs lurking in it. This type of coverage is usually called “statement coverage”. In this paper, I'll use a somewhat more powerful type. Many commercial tools measure some variant of this coverage; few measure anything more powerful. Different people use different names for this type of coverage: "segment coverage", "multiple condition coverage", "branch coverage " (arguably incorrectly), and so on. I'll use "multiple condition coverage". It measures whether each logical condition in the code has evaluated both true and false (in some execution of the program, not necessarily in the same one). Suppose your code looked like this:
Cited by 54
M. J. H. Smith, Micheal Smith · 2025
The Argonne Reactor Code (ARC) software system supports users in their fast reactor design goals by providing neutronic, thermal-hydraulic, and structural analysis capabilities. DASSH-F serves as a steady state thermal hydraulic capability within the ARC system and replaces the SE2-ANL software that preceded it. This document identifies the set of test problems used to assess the code coverage for DASSH-F. The goal is to document what parts of the existing DASSH-F code are touched by the set of test problems and which are not. Because the verification work remains to be done on DASSH-F, one can assume that most of these issues will be resolved as part of that work. The code coverage analysis of DASSH-F was performed with the Code Coverage Tool of the Intel Fortran compiler which requires modifications to the compilation of DASSH-F. The code coverage tables are given for each submodule of DASSH-F. Because DASSH-F links to modules in DIF3D, some details on coverage changes to the DIF3D linked files is provided. As will be seen, most of the uncovered parts/files can be ignored because they are either for error message and debugging output or obviously not needed by DASSH-F today. Seven features of the DASSH-F code were identified to not be covered by the existing testing suite and thus additional verification test problems are suggested to fully cover these sections.
Cited by 0Open access