Personal tools

Blog articles/Testing

From HaskellWiki

< Blog articles(Difference between revisions)
Jump to: navigation, search
(HUnit)
(Added a link to "Code testing in Haskell"; updated the link for "QuickChecking a window manager")
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
== Type system enforcement ==
 
== Type system enforcement ==
  +
 
* [http://blog.moertel.com/articles/2007/08/15/a-bright-future-security-and-modern-type-systems A bright future: security and modern type systems]
 
* [http://blog.moertel.com/articles/2007/08/15/a-bright-future-security-and-modern-type-systems A bright future: security and modern type systems]
 
* [http://weblog.raganwald.com/2007/07/can-your-type-checking-system-do-this.html Can your type checking system do this?]
 
* [http://weblog.raganwald.com/2007/07/can-your-type-checking-system-do-this.html Can your type checking system do this?]
  +
   
 
== Testing, correctness and proofs ==
 
== Testing, correctness and proofs ==
Line 8: Line 10:
   
 
* [http://haskell.org/haskellwiki/Introduction_to_QuickCheck Introduction to QuickCheck]
 
* [http://haskell.org/haskellwiki/Introduction_to_QuickCheck Introduction to QuickCheck]
* [http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/01#xmonad_part1_model QuickChecking a window manager]
+
* [http://donsbot.wordpress.com/2007/05/01/roll-your-own-window-manager-part-1-defining-and-testing-a-model/ QuickChecking a window manager]
 
* [http://abstractabsurd.blogspot.com/2007/02/sussman-robustness-quickcheck.html Robustness and QuickCheck]
 
* [http://abstractabsurd.blogspot.com/2007/02/sussman-robustness-quickcheck.html Robustness and QuickCheck]
 
* [http://lstephen.wordpress.com/2007/07/29/parsec-parser-testing-with-quickcheck/ Parsec Parser Testing with QuickCheck]
 
* [http://lstephen.wordpress.com/2007/07/29/parsec-parser-testing-with-quickcheck/ Parsec Parser Testing with QuickCheck]
 
* [http://disparatemathematician.blogspot.com/2007/08/why-testing-code-should-be-laissez.html QuickCheck : Why Testing code should be Laissez-faire]
 
* [http://disparatemathematician.blogspot.com/2007/08/why-testing-code-should-be-laissez.html QuickCheck : Why Testing code should be Laissez-faire]
 
* [http://www.kennknowles.com/blog/2007/12/03/calculating-the-reflect-rotate-translate-normal-form-for-an-isometry-of-the-plane-in-haskell-and-verifying-it-with-quickcheck/ Calculating the reflect-rotate-translate normal form for an isometry of the plane in Haskell, and verifying it with QuickCheck.]
 
* [http://www.kennknowles.com/blog/2007/12/03/calculating-the-reflect-rotate-translate-normal-form-for-an-isometry-of-the-plane-in-haskell-and-verifying-it-with-quickcheck/ Calculating the reflect-rotate-translate normal form for an isometry of the plane in Haskell, and verifying it with QuickCheck.]
  +
* [http://www.jasani.org/2008/01/03/testing-haskell-with-quickcheck "Testing Haskell with QuickCheck"]
  +
   
 
===HUnit ===
 
===HUnit ===
   
* [http://blogs.teamb.com/craigstuntz/archive/2006/12/08/UnitTestingAndTypeSafety.aspx On Unit Testing and Type Safety]
+
* [[HUnit 1.0 User's Guide]]
  +
* [http://blogs.teamb.com/craigstuntz/2006/12/08/30370/ On Unit Testing and Type Safety]
 
* [http://leiffrenzel.de/papers/getting-started-with-hunit.html Getting started with HUnit]
 
* [http://leiffrenzel.de/papers/getting-started-with-hunit.html Getting started with HUnit]
* [http://hitesh-jasani.blogspot.com/2007/12/unit-testing-with-hunit-in-haskell.html Unit testing with HUnit]
+
* [http://www.jasani.org/2007/12/05/unit-testing-with-hunit-in-haskell Unit testing with HUnit]
  +
   
 
===Catch===
 
===Catch===
  +
 
* [http://neilmitchell.blogspot.com/2007/05/does-xmonad-crash.html Does XMonad crash? On proving pattern coverage with Catch]
 
* [http://neilmitchell.blogspot.com/2007/05/does-xmonad-crash.html Does XMonad crash? On proving pattern coverage with Catch]
 
* [http://neilmitchell.blogspot.com/2007/05/preconditions-on-xmonad.html Preconditions on XMonad]
 
* [http://neilmitchell.blogspot.com/2007/05/preconditions-on-xmonad.html Preconditions on XMonad]
 
* [http://neilmitchell.blogspot.com/2007/07/equational-reasoning-in-haskell.html Equational Reasoning in Haskell]
 
* [http://neilmitchell.blogspot.com/2007/07/equational-reasoning-in-haskell.html Equational Reasoning in Haskell]
  +
  +
  +
=== Other ===
  +
  +
* [http://ics.p.lodz.pl/~stolarek/blog/2012/10/code-testing-in-haskell/ Code testing in Haskell]
  +
   
 
== Proofs ==
 
== Proofs ==
Line 30: Line 41:
   
 
* [http://www.iis.sinica.edu.tw/~scm/?p=32 Developing Programs and Proofs Spontaneously using GADT]
 
* [http://www.iis.sinica.edu.tw/~scm/?p=32 Developing Programs and Proofs Spontaneously using GADT]
  +
   
 
===Coq===
 
===Coq===
Line 39: Line 51:
 
** [http://sequence.complete.org/node/360 The Third Law]
 
** [http://sequence.complete.org/node/360 The Third Law]
 
* [http://sequence.complete.org/node/363 Strongly Specified Functions]
 
* [http://sequence.complete.org/node/363 Strongly Specified Functions]
  +
   
 
=== Isabelle===
 
=== Isabelle===
   
 
* [http://users.lava.net/~newsham/formal/reverse/ Proving Haskell correct with Isabelle/HOL]
 
* [http://users.lava.net/~newsham/formal/reverse/ Proving Haskell correct with Isabelle/HOL]
  +
   
 
=== Related work ===
 
=== Related work ===
   
 
* See the section on [[Blog_articles/Comparisons#Theorem_provers|theorem provers]]
 
* See the section on [[Blog_articles/Comparisons#Theorem_provers|theorem provers]]
  +
   
 
== Further reading ==
 
== Further reading ==

Revision as of 18:52, 6 October 2012

Contents

1 Type system enforcement


2 Testing, correctness and proofs

2.1 QuickCheck


2.2 HUnit


2.3 Catch


2.4 Other


3 Proofs

3.1 GADTs


3.2 Coq


3.3 Isabelle


3.4 Related work


4 Further reading