Random testing: Difference between revisions

Content deleted Content added
Undid revision 810402000 by Jarble (talk) This is a quote, so it shouldn't be linked.
Implementations: incorrect inline external linking
Line 81:
*directed random test generation - f.ex. "feedback-directed random test generation"<ref name="PachecoLET2007">{{cite journal|last=Pacheco|first=Carlos|author2=Shuvendu K. Lahiri |author3=Michael D. Ernst |author4=Thomas Ball |title=Feedback-directed random test generation|journal=ICSE '07: Proceedings of the 29th International Conference on Software Engineering|date=May 2007|pages=75–84|url=http://people.csail.mit.edu/cpacheco/publications/feedback-random.pdf|publisher=IEEE Computer Society|issn=0270-5257}}</ref> or "adaptive random testing" <ref name="ART">{{cite journal|last=Chen|first=T.Y.|author2=H. Leung |author3=I.K. Mak | title=Adaptive Random Testing |journal=Advances in Computer Science - ASIAN 2004. Higher-Level Decision Making |date= 2005|pages=320–329|url=http://www.utdallas.edu/~ewong/SYSM-6310/03-Lecture/02-ART-paper-01.pdf|publisher=Lecture Notes in Computer Science Volume 3321}}</ref>
 
== Implementations ==
 
Some tools implementing random testing:
* [[QuickCheck]] - a famous test tool, originally developed for [[Haskell (programming language)|Haskell]] but ported to many other languages, that generates random sequences of API calls based on a model and verifies system properties that should hold true after each run. Check this [http://www.quviq.com/documents/QuviqFlyer.pdf QuviQ QuickCheck flyer] for a quick overview.
*[https://randoop.github.io/randoop/ Randoop] - generates sequences of methods and constructor invocations for the classes under test and creates [[JUnit]] tests from these
*[https://github.com/Datomic/simulant/wiki/Overview Simulant] - a [[Clojure]] tool that runs simulations of various agents (f.ex. users with different behavioral profiles) based on a statistical model of their behavior, recording all the actions and results into a database for later exploration and verification
*[https://docs.eiffel.com/book/eiffelstudio/autotest AutoTest] - a tool integrated to EiffelStudio testing automatically Eiffel code with contracts based on the eponymous research prototype.<ref name="AutoTest"/>·
*[https://code.google.com/p/yeti-test/ York Extensible Testing Infrastructure (YETI)] - a language agnostic tool which targets various programming languages (Java, JML, CoFoJa, .NET, C, Kermeta).
*[https://github.com/codelion/gramtest GramTest] - a grammar based random testing tool written in Java, it uses BNF notation to specify input grammars.
 
==Critique==