GitHub - antithesishq/bombadil: Property-based testing for web UIs, autonomously exploring and validating correctness properties, finding harder bugs earlier

Property-based testing for web UIs, autonomously exploring and validating correctness properties, finding harder bugs earlier - antithesishq/bombadil

GitHub

Надежный код: как писать тесты, чтобы запускать фичи в продакшен одним днем

Писать или не писать тесты — выбор очевидный. Конечно, писать. Но если проект масштабный, одних unit‑тестов будет недостаточно: они бессильны на границах модулей, в интеграциях и пользовательских сценариях, а значит в этих местах будут пролезать баги. Такой код будет сложно поддерживать, вносить в него изменения и получать ожидаемый результат. В статье поговорим про разные стратегии тестирования под разные риски и кейсы. Поднимемся над привычными unit‑тестами и заглянем, что там есть еще. Спойлер: а еще там workflow‑, integration‑, property‑based‑ и resilience‑тесты.

https://habr.com/ru/companies/mindbox/articles/1000090/

#C# #unittesting #integration_testing #propertybasedtesting #pure_functions #clean_architecture

Надежный код: как писать тесты, чтобы запускать фичи в продакшен одним днем

Писать или не писать тесты — выбор очевидный. Конечно, писать. Но если проект масштабный, одних unit‑тестов будет недостаточно: они бессильны на границах модулей,...

Хабр

Нечёткое тестирование свойств

Есть две категории программистов. Первая пишет тесты, вторая работает. Шутейка, конечно, на троечку, но в каждой байке, застрявшей в пабликах мёртвых заархивированных форумов, под пылью и нафталином, — можно нащупать слой гранита настоящей правды. Модное ныне «покрытие кода тестами» напоминает попытку оклеить айсберг новогодней мишурой — вроде и весело, но Титаник все равно пойдет на дно. Я собираюсь рассказать о том, как правильно тестировать код в изоляции (интеграционные тесты — зверь из соседнего вольера, и о нем — в другой раз). Для этого нам потребуется пара определений. Фаззинг (от английского fuzzing ) — это способ тестирования, при котором программе скармливают огромные объемы случайных, полуслучайных или вообще намеренно испорченных данных, с надеждой выявить уязвимости или баги. Изначально этот метод применялся в академической среде для поиска дыр в безопасности, но быстро перекочевал в руки здравомыслящих разработчиков. Property-based testing , в свою очередь, представляет собой подход к тестированию, где вместо проверки конкретных примеров типа «дважды два — четыре» мы формулируем общие свойства системы. Например: «если функция принимает список и возвращает список, то длина результата не должна превышать длину входа». А дальше уже инструмент генерирует тысячи, миллионы вариантов входных данных и проверяет, соблюдается ли это условие. Taste it!

https://habr.com/ru/articles/983538/

#propertybasedtesting #fuzzing #testing

Нечёткое тестирование свойств

Есть две категории программистов. Первая пишет тесты, вторая работает. Шутейка, конечно, на троечку, но в каждой байке, застрявшей в пабликах мёртвых заархивированных форумов, под пылью и...

Хабр
So what have you been up to lately, Jan?
Meh, some renaming 🐫🎄🎅
https://discuss.ocaml.org/t/ann-qcheck-0-90-the-great-renaming/17613
#ocaml #quickcheck #pbt #propertybasedtesting
[ANN] QCheck 0.90: The Great Renaming

It is my pleasure to announce release 0.90 of the QCheck packages. QCheck is an OCaml library for randomized property-based testing in the style of Haskell’s QuickCheck. Release 0.90 · c-cube/qcheck · GitHub It has been over 12 years and 40 releases since @c-cube released version 0.1 back in October 2013. Over this period QCheck has grown organically with new combinators on a “by-need” basis and with a separate QCheck2 module offering generators with integrated shrinking. This has unfort...

OCaml
Ah, the riveting world of property-based testing for Python—because who wouldn't want to spend their day configuring test settings and suppressing health checks? 🤦‍♂️ Apparently, the key to a fulfilling life is exploring the endless menus of #Hypothesis documentation while debating if Auto lightdark mode is really the pinnacle of UI innovation. 🚀
https://hypothesis.readthedocs.io/en/latest/ #propertybasedtesting #Python #UIinnovation #softwaretesting #HackerNews #ngated
Hypothesis 6.151.9 documentation

Hypothesis 6.151.9 documentation

Currently working on a new way to test apps that rely on the operating system (https://github.com/orgs/Innmind/discussions/6)

Declarative code, composition and recursion is so powerful.

If achieved, this will open so many possibilities that my mind is melting rn 🤯

What may be possible:
- testing microservices interactions in a single process without mocks
- testing async code
- testing against race conditions
- testing cluster behaviour within a single process
- and probably more

This + #PropertyBasedTesting 🤩

About the efficacy of Property Based Testing. According to the study it's better than I (as a supporter) would have guessed.
https://dl.acm.org/doi/10.1145/3764068

#propertyBasedTesting #pbt

Interesting talk by https://mourjo.me/about property-based testing using jqwik for the examples: https://www.youtube.com/watch?v=5tCzdkPPX_s
#PropertyBasedTesting #pbt