ソフトウェア設計とテスト 50 本ノック
学部50 問。全問無料です。
対象読者: 本テーマ第 1〜6 章の内容(Hoare 論理、網羅基準と境界値、性質ベーステスト、ビルドの依存グラフ、CI の確率と二分探索)を学んだ学部生。手計算と小さな Python の追跡ができれば足ります。
執筆: Claude Code(Sonnet 5.5)・監査 2 回(Claude Code)・最終 2026-10-12
読み込んでいます…
この冊について(出典・構成・使う定理)
主な参考文献
- P. Ammann, J. Offutt, Introduction to Software Testing
- G. Winskel, The Formal Semantics of Programming Languages
- B. Meyer, Object-Oriented Software Construction
- A. Zeller, Why Programs Fail
問題はすべて Rikai の書き下ろしです。参考文献の演習や本文は転載していません。
構成
- 1〜9: 契約と Hoare 論理
- 10〜19: テストの理論
- 20〜28: 性質ベーステストと縮約
- 29〜37: ビルドと依存関係
- 38〜45: 継続的インテグレーション
- 46〜50: 事例研究:教科書サイトの検査系
形式: 単一選択 18・複数選択 9・○× 6・数値 8・並べ替え 2・誤り探し 4・記述 3。難易度 ★〜★★★★: 10 / 20 / 20 / 0。
この冊で使う定義・定理(70)
- 定義 2.1 ビルドの模型 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 31, 34 番
- 定義 2.2 密閉性 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 29 番
- 定義 2.3 トポロジカル順 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 30 番
- 定義 8.1 版の制約と依存の解決 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 37 番
- 例 8.5 ロックファイルがないと、同じ宣言から時刻によって違う解が出る ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 36 番
- 命題 4.5 内容の比較による早期打ち切り ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 32 番
- 命題 8.4 ロックファイルによる取得の決定性 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 36 番
- 命題 4.7 内容を見ない方法では到達可能集合が最小 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 33 番
- 命題 4.4 過剰な宣言は正しさを損なわない ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 33 番
- 定理 4.1 クリーンビルドの一意性 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 33 番
- 定理 4.2 増分ビルドの正しさ ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 31, 32 番
- 定理 6.1 並列ビルドの時間の上下界 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 34, 35 番
- 定理 3.2 トポロジカル順の存在と計算 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 30 番
- 定理 8.2 版の解決は NP 完全 ビルドと依存関係:依存グラフ・増分ビルドの正しさ・版の解決 → 37 番
- 定義 2.2 検査・違反・誤りと警告 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 50 番
- 定義 5.1 決定的な生成 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 48, 49 番
- 定義 4.2 根拠のある命題 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 46 番
- 命題 6.2 構文的な検査は両立でき、意味的な検査は両立できない 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 47 番
- 命題 7.1 検査に合格した版だけが公開される 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 49, 50 番
- 命題 5.3 黄金テストは出力が決定的でなければ不安定になる 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 47 番
- 命題 5.2 出現順の関数としての採番は決定的である 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 48 番
- 定理 4.3 根拠のある命題の集合は最小不動点である 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 46 番
- 定理 3.2 識別子の一意性のもとでの解決の一意性 事例研究:教科書サイトの検査系を読む(相互参照・依存の閉包・決定的な生成) → 47 番
- 定義 2.3 不安定なテスト 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 39 番
- 定義 8.1 冪等な操作 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 45 番
- 定義 3.2 変更とマージキュー 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 38 番
- 命題 8.2 宣言的なデプロイは冪等で、再実行で収束する 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 45 番
- 命題 5.4 多数決つきの二分探索 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 42 番
- 命題 7.2 待ち時間の増え方と、段階の最適な順序 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 44 番
- 定理 6.2 まとめ検査の期待回数と最適な大きさ 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 43 番
- 定理 5.1 最初の不良コミットの二分探索 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 41 番
- 定理 4.1 不安定なテストを含む検査が落ちる確率 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 39, 40 番
- 定理 3.3 マージキューは主ブランチの不変条件を保つ 継続的インテグレーション:パイプライン・不安定なテスト・二分探索とまとめ検査 → 38 番
- 定義 7.1 契約の精密化(振る舞いの部分型) 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 7 番
- 定義 2.2 契約:事前条件と事後条件 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 1 番
- 定義 3.7 Hoare 論理の推論規則 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 5 番
- 定義 3.3 Hoare の三つ組:部分正当性と全正当性 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 4 番
- 定義 6.1 データ型の実装・表現不変条件・抽象化関数 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 8, 9 番
- 定義 3.4 表明への代入 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 2 番
- 定義 5.1 ループ変量 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 6 番
- 命題 6.4 抽象化関数が操作と可換なら実装は仕様を満たす 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 22 番
- 命題 3.6 代入の規則は後ろ向きである 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 2, 3, 4 番
- 定理 7.2 置換原則 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 7 番
- 定理 3.8 Hoare 論理の健全性 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 5 番
- 定理 6.2 表現不変条件の帰納法 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 8, 9 番
- 定理 5.2 変量による停止性:全正当性の規則の健全性 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 6 番
- 定理 4.2 最弱事前条件の性質 契約による設計:事前条件・事後条件・不変条件と Hoare 論理 → 3 番
- 定義 5.4 ddmin と 1-最小性 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 25 番
- 定義 3.1 生成器・生成分布・失敗率 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 20, 26 番
- 定義 6.1 変成関係 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 28 番
- 定義 2.1 性質と反例 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 20 番
- 定義 5.1 縮約 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 27 番
- 命題 3.4 特殊値を混ぜた生成分布の失敗率 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 23 番
- 命題 7.1 模倣関係と操作列のテスト 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 22 番
- 定理 5.5 ddmin の正しさと実行回数 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 25 番
- 定理 3.2 検出確率と必要な試行回数 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 21, 23, 26 番
- 定理 6.2 変成関係の検査が検出できる誤り 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 28 番
- 定理 4.1 再帰的な生成器の停止と大きさ 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 24 番
- 定理 5.2 縮約の停止性と局所最小性 性質ベーステスト:性質の書き方・生成・縮約と検出確率 → 27 番
- 定義 3.1 網羅基準 テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 11, 12, 13 番
- 定義 5.1 ペアワイズ網羅と被覆配列 テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 16, 17 番
- 定義 4.1 同値分割と境界値 テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 14, 15 番
- 定義 6.1 突然変異体と突然変異スコア テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 18 番
- 定義 2.4 故障・誤り状態・失敗 テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 10, 19 番
- 補題 2.5 伝播 ⇒ 感染 ⇒ 到達 テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 10, 19 番
- 命題 2.6 弱いオラクルは伝播した誤りも見逃す テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 19 番
- 定理 4.2 境界値テストが検出を保証する誤りのモデル テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 14, 15 番
- 定理 3.2 網羅基準の包含関係 テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 11 番
- 定理 5.2 ペアワイズ網羅の大きさ テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 16, 17 番
- 定理 3.4 MC/DC のテストの数 テストの理論:網羅基準・同値分割と境界値・突然変異テスト → 12, 13 番
運営: 夢現技研合同会社 ・料金 ・利用条件 ・特定商取引法に基づく表記