shoutmix


ShoutMix chat widget

Selasa, 06 Mei 2014

Quickcheck

QuickCheck
QuickCheck  adalah perpustakaan combinator ditulis dalam Haskell, yang dirancang untuk membantu dalam pengujian perangkat lunak dengan menghasilkan kasus uji untuk uji suite. Hal ini kompatibel dengan compiler GHC dan interpreter Hugs.

Di QuickCheck programmer menulis pernyataan tentang sifat logis bahwa fungsi harus memenuhi; tes ini secara khusus dibuat untuk menguji dan mencoba pernyataan ini. Proyek ini dimulai pada tahun 1999. Selain digunakan untuk menguji program reguler, QuickCheck juga berguna untuk membangun spesifikasi fungsional, untuk mendokumentasikan apa fungsi harus lakukan, dan untuk implementasi pengujian compiler

Re-implementasi QuickCheck ada untuk C, C + +,  Skema Chicken, Clojure, Common Lisp,  D, Erlang, F #, Faktor, Io, Java, JavaScript,  Node.js,  Objective-C, OCaml,  Perl,  Prolog, Python,  Ruby,  Scala,  Skema,  Smalltalk  dan Standard ML.

didekati dengan masalah berikut : mereka harus menguji mereka - implementasi ulang ( di Jawa ) bagian dari sistem perangkat lunak besar yang sebelumnya ditulis dalam C + + . Sistem asli kurang didokumentasikan dan hanya sebagian kecil dari sumber-sumber yang tersedia.
Antara lain , mereka harus menulis parser untuk DSL rumah - brewn dirancang untuk menggambarkan struktur data. DSL adalah campuran dari ASN.1 dan BNF tata bahasa , menggambarkan struktur dari beberapa catatan data dan aturan bisnis sederhana yang relevan dengan pengolahan mengatakan catatan . DSL tidak Turing-lengkap , tetapi memungkinkan pengguna untuk menentukan fungsi-fungsi itu sendiri , tentukan matematika dan ekspresi boolean pada bidang dan dirancang sebagai " ASN.1 pada steroid " .
Masalahnya adalah , bahwa implementasi mereka ( di JavaCC ) pada parser DSL ini didasarkan pada deskripsi yang tersedia tunggal dari tata bahasa DSL , yang mungkin tidak lengkap . Mereka menguji implementasi pada beberapa contoh yang tersedia , tapi pertanyaannya tetap bagaimana menguji parser pada bagian besar data agar cukup yakin bahwa " segala sesuatu bekerja "

dirumuskan sebagai berikut :
 untuk menghasilkan dataset tes untuk program eksternal . Setiap dataset terdiri dari beberapa file , masing-masing berisi 1 " record "

     " record " pada dasarnya adalah tipe data Haskell
    mampu menghasilkan pseudo- acak " valid" dan " tidak sah " data, untuk menguji bahwa program eksternal mengkonsumsi semua " valid" sampel dan gagal untuk mengkonsumsi semua " tidak valid " yang . Penyimpangan dari perilaku ini menandakan kesalahan dalam program eksternal .

sumber: wikipedia, QT journal

0 comments:

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More