Filters








294 Hits in 1.5 sec

Branching processes for QuickCheck generators

Agustín Mista, Alejandro Russo, John Hughes
2018 SIGPLAN notices  
In this paper, we adapt results from an area of mathematics known as branching processes, and show how they help to analytically predict (at compile-time) the expected number of generated constructors,  ...  In QuickCheck (or, more generally, random testing), it is challenging to control random data generators' distributionsspecially when it comes to user-defined algebraic data types (ADT).  ...  Acknowledgments We would like to thank Michał Pałka, Nick Smallbone, Martin Ceresa and Gustavo Grieco for comments on an early draft.  ... 
doi:10.1145/3299711.3242747 fatcat:agefaqmw3nbatc363mkfhm2vju

Branching processes for QuickCheck generators

Agustín Mista, Alejandro Russo, John Hughes
2018 Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell - Haskell 2018  
In this paper, we adapt results from an area of mathematics known as branching processes, and show how they help to analytically predict (at compile-time) the expected number of generated constructors,  ...  In QuickCheck (or, more generally, random testing), it is challenging to control random data generators' distributions---specially when it comes to user-defined algebraic data types (ADT).  ...  Acknowledgments We would like to thank Michał Pałka, Nick Smallbone, Martin Ceresa and Gustavo Grieco for comments on an early draft.  ... 
doi:10.1145/3242744.3242747 dblp:conf/haskell/MistaRH18 fatcat:osj3izockfe3rn6zfirpjs2wzi

Semantic Fuzzing with Zest [article]

Rohan Padhye, Caroline Lemieux, Koushik Sen, Mike Papadakis, Yves Le Traon
2019 arXiv   pre-print
Generator-based testing tools in the lineage of QuickCheck are a promising way to generate random syntactically valid test inputs for these programs.  ...  We present Zest, a technique which automatically guides QuickCheck-like random-input generators to better explore the semantic analysis stage of test programs.  ...  Figure 2 shows a generator for XML documents in the junit-quickcheck [43] framework, which is a Java port of QuickCheck [30] .  ... 
arXiv:1812.00078v2 fatcat:gutor7pgojcaxlnwjvpqms4zea

QuickChecking Patricia Trees [chapter]

Jan Midtgaard
2018 Lecture Notes in Computer Science  
In this paper we illustrate how to build a QuickCheck model of the data structure for the purpose of testing a mature OCaml library implementing it.  ...  Patricia trees are a space-efficient, purely functional data structure, useful for efficiently implementing both integer sets and dictionaries with integer keys.  ...  Acknowledgments We thank Jesper Louis Andersen for sharing his expertise with alternative integer generators, Jean-Christophe Filliâtre for his Patricia tree library implementation and for promptly providing  ... 
doi:10.1007/978-3-319-89719-6_4 fatcat:hbdltzon3fgpnmasqo7nfnudpq

Finding race conditions in Erlang with QuickCheck and PULSE

Koen Claessen, Michal Palka, Nicholas Smallbone, John Hughes, Hans Svensson, Thomas Arts, Ulf Wiger
2009 SIGPLAN notices  
In Erlang, each process has a unique, dynamically-assigned identifier ("pid"), and to send a message to  ...  We present three tools (QuickCheck, PULSE, and a visualizer) that in combination can be used to test and debug concurrent programs in unit testing with a much better possibility of detecting race conditions  ...  QuickCheck generates random test cases from each property, tests whether the property is true in that case, and reports cases for which the property fails.  ... 
doi:10.1145/1631687.1596574 fatcat:4ef4scibgjcmphevlmuhalsvcu

Finding race conditions in Erlang with QuickCheck and PULSE

Koen Claessen, Michal Palka, Nicholas Smallbone, John Hughes, Hans Svensson, Thomas Arts, Ulf Wiger
2009 Proceedings of the 14th ACM SIGPLAN international conference on Functional programming - ICFP '09  
In Erlang, each process has a unique, dynamically-assigned identifier ("pid"), and to send a message to  ...  We present three tools (QuickCheck, PULSE, and a visualizer) that in combination can be used to test and debug concurrent programs in unit testing with a much better possibility of detecting race conditions  ...  QuickCheck generates random test cases from each property, tests whether the property is true in that case, and reports cases for which the property fails.  ... 
doi:10.1145/1596550.1596574 dblp:conf/icfp/ClaessenPSHSAW09 fatcat:okp2f672gffdzkw22e4ciufyse

Find more bugs with QuickCheck!

John Hughes, Ulf Norell, Nicholas Smallbone, Thomas Arts
2016 Proceedings of the 11th International Workshop on Automation of Software Test - AST '16  
We present a new automated method to adapt random test case generation so that already-discovered bugs are avoided, and further test effort can be devoted to searching for new bugs instead.  ...  Acknowledgment We would like to thank Hans Svensson for his help in getting the AUTOSAR tests set up and running.  ...  This work was partly funded by EU FP7 project PROWESS, and by the Swedish Foundation for Strategic Research project RAWFP.  ... 
doi:10.1145/2896921.2896928 dblp:conf/icse/HughesNSA16 fatcat:4ebl5ohehvesnpjkpr6ikrmbki

QuickCheck Testing for Fun and Profit [chapter]

John Hughes
2006 Lecture Notes in Computer Science  
In general, Quviq QuickCheck permits any data-structure containing embedded generators to be used as a generator for data-structures of that shape-something which is very convenient for users, but quite  ...  For example, the Haskell QuickCheck generator for times of day, represented as pairs of hours and minutes, is (where {X,Y} is Erlang's notation for pairs).  ... 
doi:10.1007/978-3-540-69611-7_1 fatcat:oyx2zehnjzcqdf4wzthxdn5mum

Extracting QuickCheck specifications from EUnit test cases

Thomas Arts, Pablo Lamela Seijas, Simon Thompson
2011 Proceedings of the 10th ACM SIGPLAN workshop on Erlang - Erlang '11  
This QuickCheck state machine can then be used to generate tests, which include the EUnit tests, but also include many new and different combinations that can augment the test suite.  ...  In particular for implementations that have side-effects, writing a good set of EUnit tests is often difficult and labour intensive.  ...  Acknowledgements We are very grateful to Neil Walkinshaw and Kirill Bogdanov both for writing the StateChum system and for their help and advice on getting it running for us.  ... 
doi:10.1145/2034654.2034666 dblp:conf/erlang/ArtsST11 fatcat:m72tntvpibgwfeds757j27rd7e

xmonad in Coq(experience report)

Wouter Swierstra
2012 Proceedings of the 2012 symposium on Haskell symposium - Haskell '12  
The Program framework automatically generates the stronger types for the separate case branches.  ...  Using Haskell types The extraction process generates Haskell functions and data types for all the definitions and data types.  ... 
doi:10.1145/2364506.2364523 dblp:conf/haskell/Swierstra12 fatcat:tmipna3hsrbydmv6y2inuhfrbu

Iterative Refinement of Reverse-Engineered Models by Model-Based Testing [chapter]

Neil Walkinshaw, John Derrick, Qiang Guo
2009 Lecture Notes in Computer Science  
The process can in principle be entirely automated, and only requires a very small amount of manually generated information to begin with.  ...  We have implemented the technique for use in the development of Erlang systems and describe both the methodology as well as our implementation.  ...  The authors would like to thank Thomas Arts, John Hughes, Koen Claessen and Hans Svensson at ITU / Chalmers, Gothenburg for their valuable suggestions and comments.  ... 
doi:10.1007/978-3-642-05089-3_20 fatcat:gdk3cujy6jextlqptya5jybhyq

Testing noninterference, quickly

Catalin Hritcu, John Hughes, Benjamin C. Pierce, Antal Spector-Zabusky, Dimitrios Vytiniotis, Arthur Azevedo de Amorim, Leonidas Lampropoulos
2013 Proceedings of the 18th ACM SIGPLAN international conference on Functional programming - ICFP '13  
Taken together, our best methods enable us to quickly and automatically generate simple counterexamples for all these bugs.  ...  To reduce the time wasted on proof attempts doomed to fail due to broken definitions, we advocate modern random testing techniques for finding counterexamples during the design process.  ...  An alternative strategy is to generate instructions in a forward style only: if we generate a branch then we save the current state along with the branch target, but keep generating instructions as if  ... 
doi:10.1145/2500365.2500574 dblp:conf/icfp/HritcuHPSVAL13 fatcat:xg5leydmkfa3tjv6snaufbm2xe

Testing and Tracing Lazy Functional Programs Using QuickCheck and Hat [chapter]

Koen Claessen, Colin Runciman, Olaf Chitil, John Hughes, Malcolm Wallace
2003 Lecture Notes in Computer Science  
The reason is that for the generation of a Branch to terminate, two recursive generations must terminate.  ...  QuickCheck is unique in using specifications directly, both for test case generation and as a test oracle.  ... 
doi:10.1007/978-3-540-44833-4_3 fatcat:qdfbmcdcxzbknerf6wbgkiz27q

Less Arbitrary waiting time [article]

Michał J. Gajda
2021 arXiv   pre-print
But it is also the easiest way to make it run for an unreasonably long time.  ...  Property testing is the cheapest and most precise way of building up a test suite for your program. Especially if the datatypes enjoy nice mathematical laws.  ...  We also provide a fully generic implementation, so error-prone coding process is removed.  ... 
arXiv:2011.03537v2 fatcat:wyagmi2f55bf5bvcphppzavmhm

Flexible Probabilistic Modeling for Search Based Test Data Generation

Robert Feldt, Shin Yoo
2020 Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops  
While the former constrains the generation process to produce valid values the latter allows learning and tuning to specific goals.  ...  Rather than searching for an individual, or even sets of, test case(s) or datum(s) that fulfil specific needs the goal can be to learn a generative model tuned to output a useful family of values.  ...  enable complex dependencies between multiple choices and aspects of the generation process.  ... 
doi:10.1145/3387940.3392215 dblp:conf/icse/FeldtY20 fatcat:4xdujt2gy5budmkqh4bykkcejm
« Previous Showing results 1 — 15 out of 294 results