mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

8.3K
active users

#propertytesting

0 posts0 participants0 posts today
Nicolas Fränkel 🇺🇦🇬🇪<p>Why <a href="https://mastodon.top/tags/PropertyTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PropertyTesting</span></a> Finds Bugs <a href="https://mastodon.top/tags/UnitTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>UnitTesting</span></a> Does Not</p><p><a href="https://buttondown.com/hillelwayne/archive/why-property-testing-finds-bugs-unit-testing-does/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">buttondown.com/hillelwayne/arc</span><span class="invisible">hive/why-property-testing-finds-bugs-unit-testing-does/</span></a></p><p><a href="https://mastodon.top/tags/testing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>testing</span></a></p>
Hacker News<p>Why Property Testing Finds Bugs Unit Testing Does Not (2021)</p><p><a href="https://buttondown.com/hillelwayne/archive/why-property-testing-finds-bugs-unit-testing-does/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">buttondown.com/hillelwayne/arc</span><span class="invisible">hive/why-property-testing-finds-bugs-unit-testing-does/</span></a></p><p><a href="https://mastodon.social/tags/HackerNews" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HackerNews</span></a> <a href="https://mastodon.social/tags/PropertyTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PropertyTesting</span></a> <a href="https://mastodon.social/tags/UnitTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>UnitTesting</span></a> <a href="https://mastodon.social/tags/SoftwareBugs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SoftwareBugs</span></a> <a href="https://mastodon.social/tags/BugHunting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BugHunting</span></a> <a href="https://mastodon.social/tags/ProgrammingInsights" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ProgrammingInsights</span></a></p>
Jan :rust: :ferris:<p><a href="https://floss.social/tags/Fuzzing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Fuzzing</span></a> along in <a href="https://floss.social/tags/CSVDiff" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CSVDiff</span></a> :awesome: </p><p>In the second screenshot I've highlighted some interesting parts:</p><p>Key field indices are 2 and 3, so when diffing the records, where key fields are highlighted, they'll be compared as `Modify`, because:<br>- key fields are equal between left and right record<br>- other fields are unequal between left and right record</p><p>The other two records on the right have no corresponding left record - so those are `Add`ed records</p><p><a href="https://floss.social/tags/Rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rust</span></a> <a href="https://floss.social/tags/FuzzTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FuzzTesting</span></a> <a href="https://floss.social/tags/RustLang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RustLang</span></a> <a href="https://floss.social/tags/PropertyTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PropertyTesting</span></a></p>
Jan :rust: :ferris:<p>Wow, <a href="https://floss.social/tags/FuzzTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FuzzTesting</span></a>/ <a href="https://floss.social/tags/PropertyTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PropertyTesting</span></a> is actually harder than doing an automatic proof.😓 </p><p>I didn't expect that!😮 </p><p><a href="https://floss.social/tags/SoftwareEngineering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SoftwareEngineering</span></a> <a href="https://floss.social/tags/Unexpected" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Unexpected</span></a> <a href="https://floss.social/tags/Testing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Testing</span></a> <a href="https://floss.social/tags/FormalVerification" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FormalVerification</span></a></p>
Ramin Honary<a href="https://www.well-typed.com/blog/2023/04/falsify/%20" rel="nofollow noopener" target="_blank">Property-based testing in Haskell with QuickCheck <code>falsify</code></a> <p>A few days ago, Edsko de Vries of <em>Well-Typed</em> published an in-depth article on <strong>property-based software testing,</strong> with a focus on the concept of “shrinking.”</p><p>In brief, property-based testing is sort-of like fuzz testing but for algorithms and protocols. Like fuzz testing, random test cases are procedurally generated, but unlike fuzz testing, the test cases are carefully designed to verify whether a software implementation of an algorithm satisfies a specific property of that algorithm, such as:</p><ul><li>“this function always fails if the index is larger than the array”</li><li>“this function always returns a result in <code>n*log(n)</code> number of iterations for input dataset of size <code>n</code>“</li><li><p>“the sequence of log messages is guaranteed to obey this rules of this particular finite-state automata: (connect | fail) -&gt; (send X | fail) -&gt; (receive Y | receive Z | fail) -&gt; success .”</p></li></ul><p><strong>Shrinking</strong> is the process of simplifying a failed test case. If you have found some input that makes your function return a value when it should have thrown an exception, or produce a result that does not satisfy some predicate, then that input is a “counterexample” to your assertion about the properties of that function. And you may want to be able to “shrink” that counterexample input to see if you can cause the function to behave incorrectly again but with a simpler input. The “<a href="https://hackage.haskell.org/package/QuickCheck%20" rel="nofollow noopener" target="_blank">QuickCheck</a>“ library provides a variety of useful tools to let you define property tests with shrinking.</p><p>Defining unit tests with such incredible rigor takes quite a lot of time and effort, so you would probably do not want to use property-based testing for your ordinary, every-day software engineering. If you are, for example, being scrutinized by the US Department of Government of Efficiency, you would likely be fired if you were to take so much time to write such high-quality software with such a strong guarantee of correctness.</p><p>But if you are, for example, designing a communication protocol that will be used in critical infrastructure for the next 10 or 20 years and you want to make sure the reference implementation of your protocol is without contradictions, or if you are implementing an algorithm where the mathematical properties of the algorithm fall within some proven parameters (e.g. computational complexity), property-based testing can give you a much higher degree of confidence in the correctness of your algorithm or protocol specification.</p><p><a class="hashtag" href="https://fe.disroot.org/tag/tech" rel="nofollow noopener" target="_blank">#tech</a> <a class="hashtag" href="https://fe.disroot.org/tag/software" rel="nofollow noopener" target="_blank">#software</a> <a class="hashtag" href="https://fe.disroot.org/tag/haskell" rel="nofollow noopener" target="_blank">#haskell</a> <a class="hashtag" href="https://fe.disroot.org/tag/welltyped" rel="nofollow noopener" target="_blank">#WellTyped</a> <a class="hashtag" href="https://fe.disroot.org/tag/quickcheck" rel="nofollow noopener" target="_blank">#QuickCheck</a> <a class="hashtag" href="https://fe.disroot.org/tag/unittesting" rel="nofollow noopener" target="_blank">#UnitTesting</a> <a class="hashtag" href="https://fe.disroot.org/tag/propertytesting" rel="nofollow noopener" target="_blank">#PropertyTesting</a></p>
jnpn<p>Seems like I found what I was looking for </p><p><a href="https://github.com/vouch-opensource/fugato" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/vouch-opensource/fu</span><span class="invisible">gato</span></a></p><p><a href="https://mastodon.social/tags/propertytesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>propertytesting</span></a> <a href="https://mastodon.social/tags/test" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>test</span></a> <a href="https://mastodon.social/tags/check" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>check</span></a></p>
robrich<p><a href="https://dev.to/mbernard/what-s-wrong-with-the-current-state-of-unit-testing-18gk" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">dev.to/mbernard/what-s-wrong-w</span><span class="invisible">ith-the-current-state-of-unit-testing-18gk</span></a> - a series on getting started with <a href="https://hachyderm.io/tags/PropertyTesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PropertyTesting</span></a> in <a href="https://hachyderm.io/tags/dotNET" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dotNET</span></a>. Given a true condition (function) generate random values to validate it always is. Nice series <a href="https://github.com/mbernard" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/mbernard</span><span class="invisible"></span></a>.</p>
arialdo<p>Just realized that the implementation of the classic reversal-of-a string Property Test that virtually all the tutorials use is not that correct. Indeed, </p><p>rev rev xs == xs</p><p>happily passes for</p><p>rev xs = xs</p><p>That sucks. <a href="https://mastodon.online/tags/propertytesting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>propertytesting</span></a></p>