Skip to content

Commit f726d6d

Browse files
committed
added citations
1 parent 1d3a1b2 commit f726d6d

File tree

2 files changed

+80
-99
lines changed

2 files changed

+80
-99
lines changed

paper.bib

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
@techreport{chen1998metamorphic,
2+
author = {Chen, Tsong Y. and Cheung, Shing C. and Yiu, Shiu Ming},
3+
institution = { The Hong Kong University of Science and Technology},
4+
number = {HKUST-CS98-01},
5+
title = {Metamorphic testing: A new approach for generating next test cases},
6+
year = {1998}
7+
}
8+
9+
@inproceedings{clark2023metamorphic,
10+
author = {Clark, Andrew G. and Foster, Michael and Walkinshaw, Neil and Hierons, Robert M.},
11+
booktitle = {2023 IEEE Conference on Software Testing, Verification and Validation (ICST)},
12+
doi = {10.1109/ICST57152.2023.00023},
13+
keywords = {Software testing;Java;Graphical models;Computer bugs;Software;Test pattern generators;Usability;Metamorphic testing;Causality;DAGs},
14+
number = {},
15+
pages = {153-164},
16+
title = {Metamorphic Testing with Causal Graphs},
17+
volume = {},
18+
year = {2023}
19+
}
20+
21+
@article{clark2023testing,
22+
address = {New York, NY, USA},
23+
articleno = {10},
24+
author = {Clark, Andrew G. and Foster, Michael and Prifling, Benedikt and Walkinshaw, Neil and Hierons, Robert M. and Schmidt, Volker and Turner, Robert D.},
25+
doi = {10.1145/3607184},
26+
issn = {1049-331X},
27+
issue_date = {January 2024},
28+
journal = {ACM Trans. Softw. Eng. Methodol.},
29+
keywords = {causal testing, causal inference, Software testing},
30+
month = {nov},
31+
number = {1},
32+
numpages = {42},
33+
publisher = {Association for Computing Machinery},
34+
title = {Testing Causality in Scientific Modelling Software},
35+
volume = {33},
36+
year = {2023}
37+
}
38+
39+
@inproceedings{foster2024adequacy,
40+
author = {Foster, Michael and Wild, Christopher and Hierons, Robert M. and Walkinshaw, Neil},
41+
booktitle = {2024 IEEE Conference on Software Testing, Verification and Validation (ICST)},
42+
doi = {10.1109/ICST60714.2024.00023},
43+
keywords = {Measurement;Software testing;Correlation;Systematics;Computational modeling;Software systems;Kurtosis;software testing;causal inference;test adequacy},
44+
number = {},
45+
pages = {161-172},
46+
title = {Causal Test Adequacy},
47+
volume = {},
48+
year = {2024}
49+
}
50+
51+
@inproceedings{guderlei2007smt,
52+
author = {Guderlei, Ralph and Mayer, Johannes},
53+
booktitle = {Seventh International Conference on Quality Software (QSIC 2007)},
54+
doi = {10.1109/QSIC.2007.4385527},
55+
keywords = {Software testing;Statistical analysis;Random variables;Investments;Context modeling;Collaborative software;Software quality;Statistical distributions;Error correction;Probability},
56+
number = {},
57+
pages = {404-409},
58+
title = {Statistical Metamorphic Testing Testing Programs with Random Output by Means of Statistical Hypothesis Tests and Metamorphic Testing},
59+
volume = {},
60+
year = {2007}
61+
}

paper.md

Lines changed: 19 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ authors:
1212
orcid: 0000-0001-8233-9873
1313
affiliation: 1
1414
corresponding: true
15+
- name: Andrew Clark
16+
orcid: 0000-0002-6830-0566
17+
affiliation: 2
1518
- name: Christopher Wild
1619
orcid: 0009-0009-1195-1497
1720
affiliation: 1
@@ -20,14 +23,20 @@ authors:
2023
- name: Richard Somers
2124
orcid: 0009-0009-1195-1497
2225
affiliation: 1
26+
- name: Nicholas Lattimer
27+
orcid: 0000-0001-5304-5585
28+
affiliation: 1
2329
- name: Neil Walkinshaw
2430
orcid: 0000-0003-2134-6548
2531
affiliation: 1
26-
- name: Nicolas Lattimer
32+
- name: Rob Hierons
33+
orcid: 0000-0003-2134-6548
2734
affiliation: 1
2835
affiliations:
2936
- name: University of Sheffield, UK
3037
index: 1
38+
- name: Wherever Andy works now, UK
39+
index: 2
3140
date: 2 December 2024
3241
bibliography: paper.bib
3342
---
@@ -39,21 +48,21 @@ Causal Inference works by using domain knowledge to identify and mitigate for bi
3948
The Causal Testing Framework is a software testing framework that uses Causal Inference techniques to establish causal effects between software variables from pre-existing runtime data rather than having to collect bespoke, highly curated datasets especially for testing.
4049

4150
# Statement of need
42-
Metamorphic Testing is a popular technique for testing computational models (and other traditionally "hard to test" software).
51+
Metamorphic Testing @[chen1998metamorphic] is a popular technique for testing computational models (and other traditionally "hard to test" software).
4352
Test goals are expressed as _metamorphic relations_ that specify how changing an input in a particular way should affect the software output.
44-
Nondeterministic software can be tested using statistical metamorphic testing, which uses statistical tests over multiple executions of the software to determine whether the specified metamorphic relations hold.
53+
Nondeterministic software can be tested using Statistical Metamorphic Testing @[guderlei2007smt], which uses statistical tests over multiple executions of the software to determine whether the specified metamorphic relations hold.
4554
However, this requires the software to be executed repeatedly for each set of parameters of interest, so is computationally expensive, and is constrained to testing properties over software inputs that can be directly and precisely controlled.
46-
Statistical metamorphic testing cannot be used to test properties that relate internal variables or outputs to each other, since these cannot be controlled a priori.
55+
Statistical Metamorphic Testing cannot be used to test properties that relate internal variables or outputs to each other, since these cannot be controlled a priori.
4756

4857
By employing domain knowledge in the form of a causal graph --- a lightweight model specifying the expected relationships between key software variables --- the Causal Testing Framework circumvents both of these problems by enabling models to be tested using pre-existing runtime data.
49-
The causal testing framework is written in python but is language agnostic in terms of the system under test.
58+
The Causal Testing Framework is written in python but is language agnostic in terms of the system under test.
5059
All that is required is a set of properties to be validated, a causal model, and a set of software runtime data.
5160

5261
# Causal Testing
53-
Causal Testing has four main steps, outlined in \ref{fig:schematic}.
62+
Causal Testing @[clark2023testing] has four main steps, outlined in \ref{fig:schematic}.
5463
Firstly, the user supplies a causal model, which takes the form of a directed acyclic graph (DAG) in which an edge $X \to Y$ represents variable $X$ having a direct causal effect on variable $Y$.
5564
Secondly, the user supplies a set of causal properties to be tested.
56-
Such properties can be generated from the causal DAG: for each $X \to Y$ edge, a test to validate the presence of a causal effect is generated, and for each missing edge, a test to validate independence is generated.
65+
Such properties can be generated from the causal DAG @[clark2023metamorphic]: for each $X \to Y$ edge, a test to validate the presence of a causal effect is generated, and for each missing edge, a test to validate independence is generated.
5766
The user may also refine tests to validate the nature of a particular relationship.
5867
Next, the user supplies a set of runtime data in the form of a table with each column representing a variable and rows containing the value of each variable for a particular run of the software.
5968
Finally, the Causal Testing Framework automatically validates the supplied causal properties by using the supplied causal DAG and data to calculate a causal effect estimate, and validating this against the expected causal relationship.
@@ -62,106 +71,17 @@ Finally, the Causal Testing Framework automatically validates the supplied causa
6271

6372
## Test Adequacy
6473
Because the properties being tested are completely separate from the data used to validate them, traditional coverage-based metrics are not appropriate here.
65-
The Causal Testing Framework instead evaluates the adequacy of a particular dataset by calculating a statistical metric based on the stability of the causal effect estimate, with numbers closer to zero representing more adequate data.
74+
The Causal Testing Framework instead evaluates the adequacy of a particular dataset by calculating a statistical metric @[foster2024adequacy] based on the stability of the causal effect estimate, with numbers closer to zero representing more adequate data.
6675

6776
## Missing Variables
6877
Causal Testing works by using the supplied causal DAG to identify those variables which need to be statistically controlled for to remove their biassing effect on the causal estimate.
6978
This typically means we need to know their values.
7079
However, the Causal Testing Framework can still sometimes estimate unbiased causal effects using Instrumental Variables, an advanced Causal Inference technique.
7180

72-
## Feedback
81+
## Feedback Over Time
7382
Many scientific models involve iterating several interacting processes over time.
7483
These processes often feed into each other, and can create feedback cycles.
7584
Traditional Causal Inference cannot handle this, however the Causal Testing Framework uses another advanced Causal Inference technique, g-methods, to enable the estimation of causal effects even when there are feedback cycles between variables.
7685

77-
# Citations
78-
79-
Citations to entries in paper.bib should be in
80-
[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html)
81-
format.
82-
83-
If you want to cite a software repository URL (e.g. something on GitHub without a preferred
84-
citation) then you can do it with the example BibTeX entry below for @fidgit.
85-
86-
For a quick reference, the following citation commands can be used:
87-
- `@author:2001` -> "Author et al. (2001)"
88-
- `[@author:2001]` -> "(Author et al., 2001)"
89-
- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)"
90-
91-
# Figures
92-
93-
Figures can be included like this:
94-
![Caption for example figure.\label{fig:example}](figure.png)
95-
and referenced from text using \autoref{fig:example}.
96-
97-
Figure sizes can be customized by adding an optional second parameter:
98-
![Caption for example figure.](figure.png){ width=20% }
99-
10086
# Acknowledgements
101-
102-
We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong
103-
Oh, and support from Kathryn Johnston during the genesis of this project.
104-
105-
# References
106-
107-
Example paper.bib file:
108-
109-
@article{Pearson:2017,
110-
url = {http://adsabs.harvard.edu/abs/2017arXiv170304627P},
111-
Archiveprefix = {arXiv},
112-
Author = {{Pearson}, S. and {Price-Whelan}, A.~M. and {Johnston}, K.~V.},
113-
Eprint = {1703.04627},
114-
Journal = {ArXiv e-prints},
115-
Keywords = {Astrophysics - Astrophysics of Galaxies},
116-
Month = mar,
117-
Title = {{Gaps in Globular Cluster Streams: Pal 5 and the Galactic Bar}},
118-
Year = 2017
119-
}
120-
121-
@book{Binney:2008,
122-
url = {http://adsabs.harvard.edu/abs/2008gady.book.....B},
123-
Author = {{Binney}, J. and {Tremaine}, S.},
124-
Booktitle = {Galactic Dynamics: Second Edition, by James Binney and Scott Tremaine.~ISBN 978-0-691-13026-2 (HB).~Published by Princeton University Press, Princeton, NJ USA, 2008.},
125-
Publisher = {Princeton University Press},
126-
Title = {{Galactic Dynamics: Second Edition}},
127-
Year = 2008
128-
}
129-
130-
@article{gaia,
131-
author = {{Gaia Collaboration}},
132-
title = "{The Gaia mission}",
133-
journal = {Astronomy and Astrophysics},
134-
archivePrefix = "arXiv",
135-
eprint = {1609.04153},
136-
primaryClass = "astro-ph.IM",
137-
keywords = {space vehicles: instruments, Galaxy: structure, astrometry, parallaxes, proper motions, telescopes},
138-
year = 2016,
139-
month = nov,
140-
volume = 595,
141-
doi = {10.1051/0004-6361/201629272},
142-
url = {http://adsabs.harvard.edu/abs/2016A%26A...595A...1G},
143-
}
144-
145-
@article{astropy,
146-
author = {{Astropy Collaboration}},
147-
title = "{Astropy: A community Python package for astronomy}",
148-
journal = {Astronomy and Astrophysics},
149-
archivePrefix = "arXiv",
150-
eprint = {1307.6212},
151-
primaryClass = "astro-ph.IM",
152-
keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools},
153-
year = 2013,
154-
month = oct,
155-
volume = 558,
156-
doi = {10.1051/0004-6361/201322068},
157-
url = {http://adsabs.harvard.edu/abs/2013A%26A...558A..33A}
158-
}
159-
160-
@misc{fidgit,
161-
author = {A. M. Smith and K. Thaney and M. Hahnel},
162-
title = {Fidgit: An ungodly union of GitHub and Figshare},
163-
year = {2020},
164-
publisher = {GitHub},
165-
journal = {GitHub repository},
166-
url = {https://github.com/arfon/fidgit}
167-
}
87+
This work was supported by the EPSRC CITCoM grant EP/T030526/1.

0 commit comments

Comments
 (0)