Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Property-Based Testing in Rust

Property-Based Testing in Rust

I present how to use QuickCheck and Proptest.
QuickCheck is useful for general algorisms and Proptest is useful for domain logics.

The LT was performed at Shinjuku.rs#10 (https://forcia.connpass.com/event/178415/) on 2020/06/30.

Kentaro Matsumoto

June 30, 2020
Tweet

More Decks by Kentaro Matsumoto

Other Decks in Programming

Transcript

  1. Property-Based Testingとは • 満たすべき性質に注目して検証するテスト手法 ◦ 例 ▪ vec == reverse(reverse(vec))

    ▪ add(a, b) == add(b, a) • 多くの入力を自動生成し、それぞれの入力で仕様が 満たされていることを確認する。 • 入力と期待する出力の組を与えるのは、 Example-Based Testing。
  2. まとめ • Property-Based Testing ◦ 性質に注目するテスト手法 ◦ 大量の入力を自動生成して検証する • QuickCheck

    ◦ 型から入力を自動生成 ◦ 一般的なアルゴリズムの検証に使いやすい • Proptest ◦ QuickCheckより高機能 ▪ 入力の依存関係が定義できる ◦ ドメイン固有のロジックに使いやすい