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)
|
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)
|