QuickCheck (original) (raw)
QuickCheck is a software library, specifically a combinator library, originally written in the programming language Haskell, designed to assist in software testing by generating test cases for test suites – an approach known as property testing.
Property | Value | |
---|---|---|
dbo:abstract | QuickCheck es una herramienta que el lenguaje de programación Haskell provee para poder probar las propiedades que deberían de cumplir las funciones, es decir, cada función tiene propiedades deseables lo que se logra con QuickCheck es ver si se cumplen total o parcialmente estas propiedades.Una ventaja notoria es que la propiedad es probada con una gran cantidad de casos generados aleatoriamente.Por ejemplo si tenemos una función suma: suma x y = x + y para ver si cumple la propiedad conmutativa de la suma de números enteros, para cualquier entero: prop_suma_conmutativa :: Int ->Int -> Boolprop_suma_conmutativa x y = suma x y == suma y x la función prop_suma_conmutativa al ser pasada como parámetro en quickCheck será verificada con varios casos aleatorios de enteros e indicará si eventualmente la función suma cumple o no la propiedad de la suma de números enteros. Detalles Teóricos importantes * QuickCheck toma como parámetro de entrada una propiedad * Las propiedades son un conjunto de afirmaciones parametrizadas que en Haskell son funciones normales que pueden ser entendidas por cualquier compilador o intérprete * Estas propiedades son verificadas con un número grande de casos de prueba generados de forma aleatoria * Los programadores controlan la distribución de los casos de prueba generados con reglas condicionales y generadores * Permite programar generadores propios * Las funciones que deseamos probar pueden ser polimórficas pero las propiedades a probar deben ser monomórficas. El siguiente ejemplo muestra un error, por esto:import Test.QuickCheckinsertOrdered :: (Ord a) => a -> [a] -> [a]insertOrdered a [] = [a]insertOrdered a (x:xs)| a <= x = a:[x] ++ xs | a > x = x: insertOrdered a xsprop_insertOrdered a (xs) = ordered(insertOrdered a xs)-- main = quickCheck prop_insertOrdered>:l MainMain> quickCheck prop_insertOrderedERROR - Unresolved overloading Notar en este ejemplo: * El nombre de la función para probar la propiedad, comienza con el prefijo prop_ (Ej. prop insertOrdered)esto es por convención. * Se usó una función auxiliar ordered para probar la propiedad * Podemos llamar la función quickCheck tanto en la línea de comandos como dentro de nuestro programa. * Otro punto interesante a notar es que inclusive luego de añadir el tipo a la función, devuelve el siguiente mensaje “Falsifiable, after 3 tests” (es) QuickCheck is a software library, specifically a combinator library, originally written in the programming language Haskell, designed to assist in software testing by generating test cases for test suites – an approach known as property testing. (en) QuickCheck(クイックチェック)は、テストスイート用のテストケースを生成してソフトウェアテストを行うための、Haskellで書かれたである。GHCコンパイラとインタプリタに対応している。 QuickCheckではプログラマは関数が満たすべき論理的性質をアサーションとして書く。テストは関数の引数の型が取り得る値をランダムに関数に与えることで、アサーションが失敗する条件を探そうと試みる。プロジェクトは2000年に始まった。QuickCheckは通常のプログラムのテストに加え、関数仕様の策定、関数がするべき挙動をドキュメントとして示す、コンパイラの実装をテストする、といったことにも有用である。 QuickCheckの実装はHaskell以外にも多数の言語に移植されている(C, C++, Chicken Scheme, Clojure, Common Lisp, D, Erlang, F#, Factor, Io, Java, JavaScript, Node.js, Objective C, OCaml, Perl, Python, Ruby, Scala, Scheme, Smalltalk, Standard ML)。 (ja) QuickCheck är ett verktyg för att med hjälp av upprepad slumpmässig testning, kontrollera att datorprogram skrivna i Haskell gör vad de är avsedda att göra. Verktyget skapades av John Hughes och , båda aktiva på Chalmers tekniska högskola. (sv) |
dbo:developer | dbr:John_Hughes_(computer_scientist) | |
dbo:genre | dbr:Software_testing | |
dbo:latestReleaseDate | 2020-11-14 (xsd:date) | |
dbo:latestReleaseVersion | 2.14.2 | |
dbo:license | dbr:BSD_licenses | |
dbo:operatingSystem | dbr:Unix-like dbr:Microsoft_Windows | |
dbo:programmingLanguage | dbr:Haskell_(programming_language) | |
dbo:wikiPageExternalLink | http://www.cs.chalmers.se/~koen/pubs/afp02-quickcheck.ps http://www.cse.chalmers.se/~rjmh/Papers/QuickCheckST.ps https://hackage.haskell.org/package/QuickCheck http://www.math.chalmers.se/~koen/pubs/entry-fop-quickcheck.html http://www.math.chalmers.se/~koen/pubs/entry-tt04-quickcheck.html http://www.eecs.northwestern.edu/%7Erobby/courses/395-495-2009-fall/quick.pdf https://github.com/nick8325/quickcheck https://web.archive.org/web/20061012125122/http:/www.cs.chalmers.se/~koen/pubs/afp02-quickcheck.ps https://web.archive.org/web/20070430065923/http:/www.math.chalmers.se/~koen/pubs/entry-tt04-quickcheck.html https://web.archive.org/web/20070704035801/http:/www.math.chalmers.se/~koen/pubs/entry-fop-quickcheck.html | |
dbo:wikiPageID | 9190673 (xsd:integer) | |
dbo:wikiPageLength | 16982 (xsd:nonNegativeInteger) | |
dbo:wikiPageRevisionID | 1121476565 (xsd:integer) | |
dbo:wikiPageWikiLink | dbr:Prolog dbr:Python_(programming_language) dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:Scheme_(programming_language) dbr:Hugs_(interpreter) dbr:Julia_(programming_language) dbr:Perl dbr:Unix-like dbr:Visual_Basic_.NET dbr:Interpreter_(computing) dbr:Library_(computing) dbc:Software_using_the_BSD_license dbr:Common_Lisp dbr:Compiler dbr:Coq dbr:Rust_(programming_language) dbr:SPIN_model_checker dbr:Test_suite dbr:Clojure dbr:Elixir_(programming_language) dbr:Elm_(programming_language) dbr:Free_and_open-source_software dbr:Glasgow_Haskell_Compiler dbr:Go_(programming_language) dbr:Logtalk dbr:Lua_(programming_language) dbr:Smalltalk dbr:Standard_ML dbr:Subroutine dbr:Combinator_library dbr:Functional_specification dbr:John_Hughes_(computer_scientist) dbr:BSD_licenses dbr:C++ dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbc:Free_software_programmed_in_Haskell dbr:TypeScript dbr:Whiley_(programming_language) dbr:Hackage dbr:D_(programming_language) dbr:Erlang_(programming_language) dbr:F_Sharp_(programming_language) dbr:Factor_(programming_language) dbr:Falsifiability dbr:PHP dbr:Haskell_(programming_language) dbr:Io_(programming_language) dbr:JavaScript dbr:Java_(programming_language) dbc:Software_testing_tools dbr:Chicken_(Scheme_implementation) dbr:Swift_(programming_language) dbr:Test_case dbc:Free_software_testing_tools dbr:PostScript dbr:Software_testing dbr:Microsoft_PowerPoint dbr:Microsoft_Windows dbr:OCaml dbr:Objective-C dbr:R_(programming_language) dbr:Racket_(programming_language) dbr:Wolfram_Mathematica dbr:Pony_(programming_language) | |
dbp:developer | Koen Claessen, John Hughes (en) | |
dbp:genre | dbr:Software_testing | |
dbp:language | English (en) | |
dbp:latestReleaseDate | 2020-11-14 (xsd:date) | |
dbp:latestReleaseVersion | 2.140000 (xsd:double) | |
dbp:license | dbr:BSD_licenses | |
dbp:name | QuickCheck (en) | |
dbp:operatingSystem | dbr:Unix-like dbr:Microsoft_Windows | |
dbp:programmingLanguage | dbr:Haskell_(programming_language) | |
dbp:repo | https://github.com/nick8325/quickcheck | |
dbp:wikiPageUsesTemplate | dbt:Cite_journal dbt:Div_col dbt:Div_col_end dbt:For dbt:Infobox_software dbt:Refbegin dbt:Refend dbt:Reflist dbt:Short_description dbt:Start_date_and_age dbt:URL dbt:Use_mdy_dates dbt:Wikibooks | |
dbp:wordnet_type | http://www.w3.org/2006/03/wn/wn20/instances/synset-software-noun-1 | |
dcterms:subject | dbc:Software_using_the_BSD_license dbc:Free_software_programmed_in_Haskell dbc:Software_testing_tools dbc:Free_software_testing_tools | |
gold:hypernym | dbr:Library | |
rdf:type | owl:Thing dbo:Software schema:CreativeWork dbo:Work wikidata:Q386724 wikidata:Q7397 yago:Abstraction100002137 yago:ArtificialLanguage106894544 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Language106282651 yago:ProgrammingLanguage106898352 yago:Writing106359877 yago:WrittenCommunication106349220 dbo:Library yago:Software106566077 yago:WikicatProgrammingLanguages | |
rdfs:comment | QuickCheck is a software library, specifically a combinator library, originally written in the programming language Haskell, designed to assist in software testing by generating test cases for test suites – an approach known as property testing. (en) QuickCheck(クイックチェック)は、テストスイート用のテストケースを生成してソフトウェアテストを行うための、Haskellで書かれたである。GHCコンパイラとインタプリタに対応している。 QuickCheckではプログラマは関数が満たすべき論理的性質をアサーションとして書く。テストは関数の引数の型が取り得る値をランダムに関数に与えることで、アサーションが失敗する条件を探そうと試みる。プロジェクトは2000年に始まった。QuickCheckは通常のプログラムのテストに加え、関数仕様の策定、関数がするべき挙動をドキュメントとして示す、コンパイラの実装をテストする、といったことにも有用である。 QuickCheckの実装はHaskell以外にも多数の言語に移植されている(C, C++, Chicken Scheme, Clojure, Common Lisp, D, Erlang, F#, Factor, Io, Java, JavaScript, Node.js, Objective C, OCaml, Perl, Python, Ruby, Scala, Scheme, Smalltalk, Standard ML)。 (ja) QuickCheck är ett verktyg för att med hjälp av upprepad slumpmässig testning, kontrollera att datorprogram skrivna i Haskell gör vad de är avsedda att göra. Verktyget skapades av John Hughes och , båda aktiva på Chalmers tekniska högskola. (sv) QuickCheck es una herramienta que el lenguaje de programación Haskell provee para poder probar las propiedades que deberían de cumplir las funciones, es decir, cada función tiene propiedades deseables lo que se logra con QuickCheck es ver si se cumplen total o parcialmente estas propiedades.Una ventaja notoria es que la propiedad es probada con una gran cantidad de casos generados aleatoriamente.Por ejemplo si tenemos una función suma: suma x y = x + y para ver si cumple la propiedad conmutativa de la suma de números enteros, para cualquier entero: Detalles Teóricos importantes (es) | |
rdfs:label | QuickCheck (es) QuickCheck (ja) QuickCheck (en) QuickCheck (sv) | |
owl:sameAs | freebase:QuickCheck yago-res:QuickCheck wikidata:QuickCheck dbpedia-es:QuickCheck dbpedia-ja:QuickCheck dbpedia-sv:QuickCheck https://global.dbpedia.org/id/2g3x1 | |
prov:wasDerivedFrom | wikipedia-en:QuickCheck?oldid=1121476565&ns=0 | |
foaf:isPrimaryTopicOf | wikipedia-en:QuickCheck | |
foaf:name | QuickCheck (en) | |
is dbo:wikiPageRedirects of | dbr:Quickcheck dbr:Quick_check | |
is dbo:wikiPageWikiLink of | dbr:Scala_(programming_language) dbr:List_of_computer_scientists dbr:Reductio dbr:List_of_programming_language_researchers dbr:Quickcheck dbr:Random_testing dbr:Combinator_library dbr:John_Hughes_(computer_scientist) dbr:PBT dbr:Darcs dbr:Formal_methods dbr:Software_testing dbr:Xmonad dbr:List_of_unit_testing_frameworks dbr:Quick_check | |
is foaf:primaryTopic of | wikipedia-en:QuickCheck |