Sources
Groups
- ACM Special Interest Group on Algorithms and Computation Theory (ACM SIGACT)
- ACM Special Interest Group on Programming Languages (ACM SIGPLAN)
- ACM Special Interest Group on Software Engineering (ACM SIGSOFT)
- IFIP Working Group 2.8
- Research in Software Engineering (RiSE)
Journals
Events
- Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH)
- Conference on Programming Language Design and Implementation (PLDI)
- Dagstuhl
- International Conference on Automated Software Engineering (ASE)
- International Conference on Functional Programming (ICFP)
- International Conference on Runtime Verification (RV)
- International Conference on Software Engineering (ICSE)
- International Conference on Testing Software and Systems (ICTSS)
- International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS)
- International Symposium on Distributed Computing (DISC)
- International Symposium on Memory Management (ISMM)
- International Symposium on Software Testing and Analysis (ISSTA)
- Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE)
- Principles and Practice of Parallel Programming (PPoPP)
- Symposium on Principles of Distributed Computing (PODC)
- Symposium on Principles of Programming Languages (POPL)
Mailing lists
Blogs
Topics
Systematic concurrency testing (SCT)
Deterministic testing for concurrent programs, by controlling the scheduling decisions made to intelligently explore the state space. Can be complete or incomplete. Draws from model checking and program verification.
People
- Alastair F. Donaldson1
- Chao Wang
- Jeff Huang
- Konstantinos Sagonas
- Koushik Sen
- Madanlal (Madan) Musuvathi
- Patrice Godefroid
- Sebastian Burckhardt
- Shaz Qadeer
- Adam Betts
- Akash Lal
- Azalea Raad
- Bengt Jonsson
- Burcu Kulahcioglu Ozkan
- Cheng Huang
- Christopher Lidbury
- Colin Runciman
- Cormac Flanagan
- George Necula
- Jacob Burnim
- Jeroen Ketema
- John Erickson
- Katherine E. Coons
- Kathryn S. McKinley
- Magnus Lång
- Mahmoud Abdelrasoul
- Markus Kusano
- Matt McCutchen
- Michael Emmi
- Michalis Kokologiannakis
- Milo M. K. Martin
- Mohamed Faouzi Atig
- Naling Zhang
- Pantazis Deligiannis
- Parosh Aziz Abdulla
- Paul Thomson
- Pravesh Kothari
- Rashmi Mudduluru
- Rupak Majumdar
- Santosh Nagarakatte
- Shuo Chen
- Simin Oraee
- Stavros Aronis
- Tayfun Elmas
- Tuan Phong Ngo
- Viktor Vafeiadis
- Wolfram Schulte
- Zvonimir Rakamaric
Papers
Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem (ps)
Patrice Godefroid.
PhD thesis, 1996.Dynamic partial-order reduction for model checking software (pdf)
Cormac Flanagan and Patrice Godefroid.
In Symposium on Principles of Programming Languages (POPL). 2005.Iterative Context Bounding for Systematic Testing of Multithreaded Programs (pdf)
Madanlal Musuvathi and Shaz Qadeer.
In Conference on Programming Language Design and Implementation (PLDI). 2007.Effective Random Testing of Concurrent Programs (pdf)
Koushik Sen.
In International Conference on Automated Software Engineering (ASE). 2007.Fair Stateless Model Checking (pdf)
Madanlal Musuvathi and Shaz Qadeer.
In Conference on Programming Language Design and Implementation (PLDI). 2008.Race Directed Random Testing of Concurrent Programs (pdf)
Koushik Sen.
In Conference on Programming Language Design and Implementation (PLDI). 2008.A Randomized Scheduler with Probabilistic Guarantees of Finding Bugs (pdf)
Sebastian Burckhardt, Pravesh Kothari, Madanlal Musuvathi, and Santosh Nagarakatte.
In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 2010.Delay-bounded Scheduling (pdf)
Michael Emmi, Shaz Qadeer, and Zvonimir Rakamaric.
In Symposium on Principles of Programming Languages (POPL). 2011.Multicore Acceleration of Priority-Based Schedulers for Concurrency Bug Detection (pdf)
Santosh Nagarakatte, Sebastian Burckhardt, Milo M. K. Martin, and Madanlal Musuvathi.
In ACM SIGPLAN Notices. June 2012.Bounded Partial-order Reduction (pdf)
Katherine E. Coons, Madan Musuvathi, and Kathryn S. McKinley.
In International Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA). 2013.CONCURRIT: A Domain Specific Language for Reproducing Concurrency Bugs (pdf)
Tayfun Elmas, Jacob Burnim, George Necula, Koushik Sen.
In Conference on Programming Language Design and Implementation (PLDI). 2013.Concurrency Testing Using Schedule Bounding: an Empirical Study (pdf)
Paul Thomson, Alastair F. Donaldson, and Adam Betts.
In Symposium on Principles and Practice of Parallel Programming (PPoPP). 2014.Dynamic Partial Order Reduction for Relaxed Memory Models (pdf)
Naling Zhang, Markus Kusano, and Chao Wang.
In Conference on Programming Language Design and Implementation (PLDI 2015). 2015.Asynchronous Programming, Analysis and Testing with State Machines (pdf)
Pantazis Deligiannis, Alastair F. Donaldson, Jeroen Ketema, Akash Lal, and Paul Thomson.
In Conference on Programming Language Design and Implementation (PLDI). 2015.Stateless Model Checking Concurrent Programs with Maximal Causality Reduction (pdf)
Jeff Huang.
In Conference on Programming Language Design and Implementation (PLDI). 2015.Concurrency Testing Using Controlled Schedulers: An Empirical Study (pdf)
Paul Thomson, Alastair F. Donaldson, and Adam Betts.
In Transactions on Parallel Computing (TOPC). 2016.Uncovering Bugs in Distributed Storage Systems during Testing (not in Production!) (pdf)
Pantazis Deligiannis, Matt McCutchen, Paul Thomson, Shuo Chen, Alastair F. Donaldson, John Erickson, Cheng Huang, Akash Lal, Rashmi Mudduluru, Shaz Qadeer, and Wolfram Schulte.
In Conference on File and Storage Technologies (FAST). 2016.Promoting Secondary Orders of Event Pairs in Randomized Scheduling using a Randomized Stride (pdf)
Mahmoud Abdelrasoul.
In Conference on Automated Software Engineering (ASE). 2017.Optimal Dynamic Partial Order Reduction with Observers (pdf)
Stavros Aronis, Bengt Jonsson, Magnus Lång, and Konstantinos Sagonas.
In International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). 2018.Optimal Stateless Model Checking under the Release-Acquire Semantics (pdf)
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, Tuan Phong Ngo.
In International Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA). 2018.Effective lock handling in stateless model checking (pdf) Michalis Kokologiannakis, Azalea Raad, and Viktor Vafeiadis.
In International Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA). 2019.Sparse record and replay with controlled scheduling (pdf)
Christopher Lidbury and Alastair F Donaldson.
In Conference on Programming Language Design and Implementation (PLDI). 2019.Trace aware random testing for distributed systems (pdf) Burcu Kulahcioglu Ozkan, Rupak Majumdar, and Simin Oraee.
In International Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA). 2019.
My papers
- Déjà Fu: A Concurrency Testing Library for Haskell (pdf)
Michael Walker and Colin Runciman.
In Symposium on Haskell (Haskell). 2015.
Venues
- Conference on Automated Software Engineering (ASE)
- Conference on File and Storage Technologies (FAST)
- Conference on Programming Language Design and Implementation (PLDI)
- International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS)
- International Conference on Automated Software Engineering (ASE)
- International Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA, now SPLASH)
- Symposium on Principles and Practice of Parallel Programming (PPoPP)
- Symposium on Principles of Programming Languages (POPL)
- Transactions on Parallel Computing (TOPC)
- International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS)
Test case generation
Test cases are hard to write by hand, so rather than do that, have a tool attempt to discover interesting ones. By reading the output, a programmer can (a) add good tests to the testsuite; and (b) spot potential issues when expected tests don’t show up, or when unexpected ones do.
People
- Alex Groce
- David R. MacIver
- John Regehr
- Koen Claessen
- Nicholas Smallbone
- Rudy Braquehais
- Alistair F. Donaldson
- Andrea Mattavelli
- Arpit Christi
- August Shihttp://mir.cs.illinois.edu/~awshi2/
- Aws Albarghouthi
- Benjamin C. Pierce
- Calvin Smith
- Caroline Lemieux
- Chaoqiang Zhang
- Colin Runciman
- Darko Marinov
- Eric Eide
- Gabriel Ferns
- Giovanni Denaro
- Javier Paris
- John Derrick
- John Hughes
- Josie Holmes
- Kirill Bogdanov
- Koushik Sen
- Leonidas Lampropoulos
- Lingming Zhang
- Mauro Pezze
- Maximilian Algehed
- Michael Hicks
- Mike Papadakis
- Moa Johansson
- Mohammad Amin Alipour
- Neil Walkinshaw
- Pietro Braione
- Rahul Gopinath
- Rohan Padhye
- Yang Chen
- Yves Le Le Traon
Papers
Increasing Functional Coverage by Inductive Testing: A Case Study (pdf)
Neil Walkinshaw, Kirill Bogdanov, John Derrick, and Javier Paris.
In Conference on Testing Software and Systems (ICTSS). 2010.QuickSpec: Guessing Formal Specifications Using Testing (pdf)
Koen Claessen, Nicholas Smallbone, John Hughes.
In Conference on Tests and Proofs (TAP). 2010.Swarm Testing (pdf)
Alex Groce, Chaoqiang Zhang, Eric Eide, Yang Chen, and John Regehr.
In International Symposium on Software Testing and Analysis (ISSTA). 2012.FitSpec: refining property sets for functional testing (pdf)
Rudy Braquehais and Colin Runciman.
In Symposium on Haskell (Haskell). 2016.Generating Focused Random Tests Using Directed Swarm Testing (pdf)
Mohammad Amin Alipour, Alex Groce, Rahul Gopinath, and Arpit Christi.
In International Symposium on Software Testing and Analysis (ISSTA). 2016.Quick Specifications for the Busy Programmer (pdf)
Nicholas Smallbone, Moa Johansson, Koen Claessen, Maximilian Algehed.
In Journal of Functional Programming (JFP). 2017.Discovering Relational Specifications (pdf)
Calvin Smith, Gabriel Ferns, and Aws Albarghouthi.
In Foundations of Software Engineering (FSE). 2017Speculate: Discovering Conditional Equations and Inequalities about Black-Box Functions by Reasoning from Test Results (pdf)
Rudy Braquehais and Colin Runciman.
In Symposium on Haskell (Haskell). 2017.Coverage guided, property based testing (pdf)
Leonidas Lampropoulos, Michael Hicks, and Benjamin C. Pierce.
In International Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA). 2013.An Extensible, Regular-Expression-Based Tool for Multi-Language Mutant Generation (pdf)
Alex Groce, Josie Holmes, Darko Marinov, August Shi, and Lingming Zhang.
In International Conference on Software Engineering (Tool Demonstrations) (ICSE). 2018.SUSHI: A Test Generator for Programs with Complex Structured Inputs (pdf)
Pietro Braione, Giovanni Denaro, Andrea Mattavelli, Mauro Pezze.
In International Conference on Software Engineering (Tool Demonstrations) (ICSE). 2018.Semantic Fuzzing with Zest (pdf)
Rohan Padhye, Caroline Lemieux, Koushik Sen, Mike Papadakis, and Yves Le Le Traon.
In International Symposium on Software Testing and Analysis (ISSTA). 2000.Test-Case Reduction via Test-Case Generation: Insights From the Hypothesis Reducer (pdf)
David R. MacIver and Alastair F. Donaldson
In European Conference on Object-Oriented Programming (ECOOP). 2020.
My papers
- Cheap Remarks about Concurrent Programs (pdf)
Michael Walker and Colin Runciman.
In Functional and Logic Programming Symposium (FLOPS). 2018.
Venues
- European Conference on Object-Oriented Programming (ECOOP)
- Haskell Symposium (Haskell)
- International Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA, now SPLASH)
- International Conference on Software Engineering (ICSE)
- International Conference on Testing Software and Systems (ICTSS)
- International Conference on Tests and Proofs (TAP)
- International Symposium on Software Testing and Analysis (ISSTA)
- Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE)
- Journal of Functional Programming (JFP)
Test case reduction
Once we have produced (either hand-written by a programmer or generated with a tool) a test case which exhibits some fault, we want to throw away all the incidental complexity, and find the simplest test case which exhibits the same bug.
This overlaps heavily with test case generation, but differs in motivation.
People
- Alex Groce
- John Regehr
- Ákos Kiss
- Andreas Zeller
- Chaoqiang Zhang
- Chengnian Sun
- Ghassan Misherghi
- Jibesh Patra
- Josie Holmes
- Kevin Kellar
- Michael Pradel
- Mohammed Amin Alipour
- Qirun Zhang
- Ralf Hildebrandt
- Renáta Hodován
- Sai Zhang
- Satia Herfert
- Tianxiao Gu
- Yang Chen
- Yuanbo Li
- Zhendong Su
Papers
Simplifying failure-inducing input (pdf)
Ralf Hildebrandt and Andreas Zeller.
In International Symposium on Software Testing and Analysis (ISSTA). 2000.HDD: Hierarchical Delta Debugging (pdf)
Ghassan Misherghi and Zhendong Su.
In International Conference on Software Engineering (ICSE). 2006.Practical Semantic Test Simplification (pdf)
Sai Zhang.
In International Conference on Software Engineering (ICSE). 2013.Cause Reduction for Quick Testing (pdf)
Alex Groce, Mohammed Amin Alipour, Chaoqiang Zhang, Yang Chen, and John Regehr.
In International Conference on Software Testing, Verification and Validation (ICST). 2014.Practical Improvements to the Minimizing Delta Debugging Algorithm (pdf)
Renáta Hodován and Ákos Kiss
In International Joint Conference on Software Technologies (ICSOFT). 2016.One Test to Rule Them All (pdf)
Alex Groce, Josie Holmes, and Kevin Kellar.
In International Symposium on Software Tetsing and Analysis (ISSTA). 2017.Automatically reducing tree-structured test inputs (pdf)
Satia Herfert, Jibesh Patra, and Michael Pradel.
In International Conference on Automated Software Engineering (ASE). 2017.Perses: syntax-guided program reduction (pdf)
Chengnian Sun, Yuanbo Li, Qirun Zhang, Tianxiao Gu, and Zhendong Su.
In International Conference on Software Engineering (ICSE). 2018.
Venues
- International Conference on Automated Software Engineering (ASE)
- International Conference on Software Engineering (ICSE)
- International Conference on Software Testing, Verification and Validation (ICST)
- International Joint Conference on Software Technologies (ICSOFT)
- International Symposium on Software Testing and Analysis (ISSTA)
How to review this memo
Check when the last change was. Hopefully I was kind enough at the time to note down the latest edition of all the conferences.
Look through new conference proceedings. Pick out papers which have interesting titles.
Examine the list of papers2. Throw away those which don’t fit, record those which do.
Look through people’s websites. Again pick out papers with interesting titles.
If super keen, search for some keywords on Google Scholar, or look up reverse citations of papers in these lists.
Look through references of papers newly added for more candidate papers, people, and conferences. Prune by titles, then examine, then add. Repeat until I get bored.
Decide if anyone needs to be bolded (or unbolded).
Bold people are those who, at the time of writing, I considered to be key figures in the field to keep an eye on.↩︎
There are a lot of papers, it would take an inordinate amount of time for me to carefully read every single one which looks interesting. But usually it’s good enough to just read enough to get the gist, and then read individual papers more closely as time, interest, and need permit.
For this initial examination, I do something like the first two passes in How to Read a Paper. My second pass is usually a skim reading, unless the paper really grabs me; I save a proper second pass for when I read the paper more fully.↩︎