Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

QuickCheck - это программная библиотека , в частности библиотека комбинаторов , изначально написанная на языке программирования Haskell , предназначенная для помощи в тестировании программного обеспечения путем создания тестовых примеров для наборов тестов .

Программное обеспечение [ править ]

Он совместим с компилятором , Glasgow Haskell Compiler (GHC) и интерпретатором , Gofer системы Хаскелла пользователя ( Hugs ). Это бесплатное программное обеспечение с открытым исходным кодом, выпущенное под лицензией BSD .

В QuickCheck утверждения пишутся о логических свойствах, которые должна выполнять функция . Затем QuickCheck пытается создать тестовый пример, который опровергает такие утверждения. Как только такой тестовый пример найден, QuickCheck пытается сократить его до минимального подмножества отказов, удаляя или упрощая входные данные, которые не нужны для провала теста.

Проект начался в 1999 году. QuickCheck не только используется для тестирования обычных программ, но и полезен для создания функциональной спецификации , для документирования того, какие функции должны выполняться, и для тестирования реализаций компилятора. [1]

Повторные реализации QuickCheck существуют для нескольких языков:

  • C [2] [3] [4]
  • C ++ [5] [6] [7]
  • Курица [8]
  • Clojure [9] [10] [11]
  • Общий Лисп [12]
  • Coq [13]
  • D [14]
  • Вяз [15]
  • Эликсир [16] [17]
  • Эрланг [18]
  • F # и C # , Visual Basic .NET (VB.NET) [19]
  • Фактор [20]
  • Вперед [21]
  • Ио [22]
  • Ява [23] [24] [25] [26] [27] [28] [29]
  • JavaScript [30] [31] [32] [33]
  • Юлия [34]
  • Logtalk [35]
  • Lua [36]
  • Objective-C [37]
  • OCaml [38]
  • Perl [39]
  • Пролог [40] [41]
  • PHP [42]
  • Пони [43]
  • Python [44]
  • R [45]
  • Ракетка [46]
  • Рубин [47]
  • Ржавчина [48] [49]
  • Скала [50] [51] [52]
  • Схема [53]
  • Smalltalk [54]
  • Стандартный ML [55]
  • Свифт [56]
  • TypeScript [57]
  • Уайти [58]

См. Также [ править ]

  • Проверка модели SPIN

Ссылки [ править ]

  1. ^ "Data.Collections.Properties" . hackage.haskell.org .
  2. ^ Pennebaker, Эндрю (mcandre) (13 октября 2011). «qc» . GitHub . Проверено 9 декабря 2011 года .
  3. ^ Сито, Андреа (nivox) (27 июля 2014). "quickcheck4c" . GitHub . Проверено 27 июля 2014 года .
  4. ^ Vokes, Скотт (30 марта 2015). «Кража: тестирование на основе свойств для C» . GitHub . Проверено 16 ноября 2015 года .
  5. ^ "QuickCheck" . Software.legiasoft.com . Проверено 9 декабря 2011 года .
  6. ^ "CppQuickCheck" . GitHub . Проверено 30 марта 2015 года .
  7. ^ "RapidCheck" . GitHub . Проверено 30 марта 2015 года .
  8. ^ Пеннебейкер, Эндрю (Макандре). "cluckcheck" . GitHub . Проверено 9 декабря 2011 года .
  9. ^ Brandmeyer, Meikel (kotarak). "ClojureCheck" . Bitbucket . Проверено 9 декабря 2011 года .
  10. ^ Дрейпер, Рид (Риддрейпер) (9 мая 2013 г.). "простая проверка" . GitHub . Проверено 21 августа 2013 года .
  11. ^ Дрейпер, Рид (Риддрейпер) (27 марта 2014 г.). "org.clojure / test.check" . GitHub . Проверено 27 марта 2014 года .
  12. ^ "cl-quickcheck" . Клики . Проверено 9 декабря 2011 года .
  13. ^ "QuickChick" . GitHub . Проверено 26 августа 2019 года .
  14. ^ Pennebaker, Эндрю (mcandre) (27 октября 2011). "dashcheck" . GitHub . Проверено 9 декабря 2011 года .
  15. ^ "вяз-исследования / тест" . GitHub . Проверено 20 ноября 2018 года .
  16. ^ Томас, Дэйв (pragdave) (17 июля 2017). «quixir: Тестирование Elixir на основе свойств» . GitHub . Проверено 1 апреля 2019 года .
  17. ^ Альферт, Клаус. "propcheck: Тестирование Эликсира на основе свойств" . GitHub . Проверено 1 февраля 2021 года .
  18. ^ «PropEr: основанный на QuickCheck инструмент тестирования свойств для Erlang» . GitHub . Проверено 8 мая 2019 года .
  19. ^ "FsCheck" . GitHub . 25 июня 2015 года . Проверено 25 июня 2011 года .
  20. ^ Pennebaker, Эндрю (mcandre) (13 октября 2011). "проверка фактов" . GitHub . Проверено 9 декабря 2011 года .
  21. ^ Leanovate (26 апреля 2016 г.). "Гоптер" . Проверено 26 апреля 2016 года .
  22. ^ Pennebaker, Эндрю (mcandre) (17 октября 2011). «IoCheck» . GitHub . Проверено 9 декабря 2011 года .
  23. ^ "Модуль QuickCheck FunctionalJava" . Функциональная Java . Проверено 14 августа 2015 года .
  24. ^ «Quickcheck для Java» . Quickcheck.dev.java.net . Проверено 9 декабря 2011 года .
  25. ^ "JCheck" . JCheck . Проверено 9 декабря 2011 года .
  26. ^ "junit-quickcheck" . junit-quickcheck . Проверено 3 июля 2013 года .
  27. ^ "jqwik для платформы JUnit5" . jqwik . Проверено 19 июня 2017 года .
  28. ^ «Тестирование свойств Quick Theories для Java 8» . нкрединбург . Проверено 30 октября 2017 года .
  29. ^ «Тестирование свойств JetCheck для Java 8» . JetBrains . Проверено 10 июля 2018 года .
  30. ^ Томпсон, Даррин (Дарринт). "qc.js" . Bitbucket . Проверено 9 декабря 2011 года .
  31. ^ Крокфорд, Дуглас. "jscheck" . GitHub . Проверено 21 октября 2017 года .
  32. ^ Dubien, Николас (dubzzz). «быстрая проверка» . GitHub . Проверено 3 февраля 2018 года .
  33. ^ «JSVerify - тестирование на основе свойств для JavaScript. Как QuickCheck» . jsverify.github.io .
  34. ^ "Checkers.jl" . Проверено 8 апреля 2018 года .
  35. ^ "lgtunit" . Проверено 26 февраля 2020 года .
  36. ^ "lua-quickcheck" . GitHub . Проверено 25 февраля 2017 года .
  37. ^ Пеннебейкер, Эндрю (Макандре). "objcheck" . GitHub . Проверено 9 декабря 2011 года .
  38. ^ Соколов, Рома (маленький-архат). "окамл-квикчек" . GitHub . Проверено 9 декабря 2011 года .
  39. ^ «Тест: LectroTest: Учебник» . Проект LectroTest был вдохновлен модулем QuickCheck Haskell, созданным Коэном Клаессеном и Джоном Хьюзом: http://www.cs.chalmers.se/~rjmh/QuickCheck/ .
  40. ^ "библиотека (быстрая проверка)" .
  41. ^ Амарал, Клаудио; Флоридо, Марио; Коста, Витор Сантос (2014). «PrologCheck - Тестирование на основе свойств в Прологе» . Материалы Двенадцатого Международного симпозиума по функциональному и логическому программированию (FLOPS 2014) . Конспект лекций по информатике. 8475 : 1–17. DOI : 10.1007 / 978-3-319-07151-0_1 . ISBN 978-3-319-07150-3.
  42. ^ Oestreicher, Стефан (steos). "PhpQuickCheck" . GitHub . Проверено 12 ноября 2015 года .
  43. ^ Валь, Маттиас (mfelsche). "поничек" . GitHub . Проверено 26 декабря 2018 года .
  44. ^ MacIver, Давид (26 апреля 2016). «Гипотеза» . Проверено 26 апреля 2016 года .
  45. ^ «quickcheck: рандомизированное тестирование для R» . GitHub . 11 сентября 2017 года.
  46. ^ "Quickcheck" . docs.racket-lang.org .
  47. ^ Pennebaker, Эндрю (mcandre) (14 сентября 2017). «Rubycheck: порт Ruby фреймворка модульного тестирования QuickCheck» . GitHub .
  48. ^ Галант, Эндрю (BurntSushi). «QuickCheck for Rust (с усадкой)» . GitHub . Проверено 27 мая 2015 года .
  49. ^ «Тестирование свойств, подобных гипотезе, для Rust» .
  50. ^ "ScalaCheck" . Проверено 30 июня, 2016 .
  51. ^ "скальпропс / скальпропс" . GitHub . Проверено 30 июня, 2016 .
  52. ^ "ньяя" . GitHub . Проверено 30 июня, 2016 .
  53. ^ «Scheme-Check: рандомизированное модульное тестирование для схемы PLT» . Архивировано из оригинала в декабре 2005 года. Scheme-Check - это модуль, который реализует рандомизированное модульное тестирование в схеме PLT. С помощью Scheme-Check вместо создания множества отдельных тестов вы указываете свойства своего кода, а Scheme-Check генерирует большое количество наборов случайных данных для проверки этих свойств. Scheme-Check - это, по сути, порт Scheme для QuickCheck.
  54. ^ Пеннебейкер, Эндрю (Макандре). «КвикСмаш» . GitHub . Проверено 9 декабря 2011 года .
  55. ^ "QCheck / SML" . Contrapunctus . 22 ноября 2011 . Проверено 9 декабря 2011 года .
  56. ^ «SwiftCheck: QuickCheck для Swift» . GitHub . 3 ноября 2017 года.
  57. ^ Dubien, Николас (dubzzz). «быстрая проверка» . GitHub . Проверено 3 февраля 2018 года .
  58. ^ Чин, Дженис. «QuickCheck для Уэйри» (PDF) . Проверено 20 апреля 2020 года .

Дальнейшее чтение [ править ]

  • Клаессен, Коэн; Хьюз, Джон (2002). «Тестирование монадических программ с помощью QuickCheck» ( PostScript ) . Уведомления SIGPLAN . 37 (12): 47–59. CiteSeerX  10.1.1.111.1618 . DOI : 10.1145 / 636517.636527 . Проверено 29 января 2006 года .
  • Клаессен, Коэн и Хьюз, Джон (2000). «QuickCheck: легкий инструмент для случайного тестирования программ на Haskell» (PDF) . Труды Международной конференции по функциональному программированию (ICFP), ACM SIGPLAN . Проверено 29 января 2006 года .
  • Клаессен, Коэн и Хьюз, Джон (2003). «Тестирование на основе спецификаций с помощью QuickCheck» . Удовольствие от программирования, краеугольные камни вычислений, Джереми Гиббонс и Уге де Мур (ред.) . Пэлгрейв: 17–40. Архивировано из оригинала на 4 июля 2007 года . Проверено 29 января 2006 года .
  • Клаессен, Коэн (август 2004 г.). «QuickCheck: случайное тестирование на основе спецификации» . Презентация Летнего института «Тенденции в тестировании: теория, методы и инструменты» . Архивировано из оригинала ( PPT ) 30 апреля 2007 года . Проверено 29 января 2006 года .
  • Клаессен, Коэн; Рансимен, Колин; Читил, Олаф и Хьюз, Джон (2002). «Тестирование и отслеживание ленивых функциональных программ с помощью QuickCheck и Hat» . Расширенное функциональное программирование: 4-я международная школа, конспект лекций по информатике . Springer Verlag. 2638 : 59–99. Архивировано из оригинала ( PostScript ) 12 октября 2006 года . Проверено 29 января 2006 года .