94 lines
2.5 KiB
Markdown
94 lines
2.5 KiB
Markdown
[Archived] 旧10.1系ドキュメントです。最新は ../INDEX.md を参照してください。
|
||
|
||
# Phase 10.1f - テストとベンチマーク
|
||
|
||
## 🎯 このフェーズの目的
|
||
Differential Testingでバグを発見し、性能向上を検証する。
|
||
|
||
## 🧪 Differential Testing戦略
|
||
|
||
### 1. テストフレームワーク
|
||
```rust
|
||
pub fn differential_test(code: &str) -> TestResult {
|
||
// CPythonで実行(オラクル)
|
||
let python_result = capture_python_execution(code)?;
|
||
|
||
// Nyashで実行
|
||
let nyash_result = execute_with_pythonparser(code)?;
|
||
|
||
// 結果比較
|
||
compare_results(python_result, nyash_result)
|
||
}
|
||
```
|
||
|
||
### 2. 比較項目
|
||
- **標準出力** - print文の結果
|
||
- **戻り値** - 関数の返す値
|
||
- **例外** - エラーメッセージ(正規化後)
|
||
- **副作用** - グローバル変数の変更等
|
||
|
||
### 3. テストコーパス
|
||
```
|
||
test_corpus/
|
||
├── basic/ # 基本構文テスト
|
||
├── stdlib/ # 標準ライブラリから抜粋
|
||
├── pypi_top100/ # 人気ライブラリから抜粋
|
||
└── edge_cases/ # エッジケース集
|
||
```
|
||
|
||
## 📊 ベンチマーク
|
||
|
||
### 1. 性能測定対象
|
||
```python
|
||
# 数値計算ベンチマーク
|
||
def mandelbrot(max_iter=100):
|
||
# フラクタル計算
|
||
pass
|
||
|
||
# ループベンチマーク
|
||
def sum_of_primes(n):
|
||
# 素数の和
|
||
pass
|
||
|
||
# 再帰ベンチマーク
|
||
def ackermann(m, n):
|
||
# アッカーマン関数
|
||
pass
|
||
```
|
||
|
||
### 2. 測定項目
|
||
- **実行時間** - CPython vs Nyash
|
||
- **メモリ使用量** - 最大/平均
|
||
- **コンパイル時間** - AST変換時間
|
||
- **フォールバック率** - 関数別統計
|
||
|
||
## 🐛 バグ発見と報告
|
||
|
||
### 発見されたバグの例
|
||
```
|
||
[BUG-001] for/else semantics mismatch
|
||
Python: else executed when no break
|
||
Nyash: else never executed
|
||
Fixed in: commit abc123
|
||
|
||
[BUG-002] Division operator difference
|
||
Python: 5/2 = 2.5 (float)
|
||
Nyash: 5/2 = 2 (integer)
|
||
Fixed in: commit def456
|
||
```
|
||
|
||
## ✅ 完了条件
|
||
- [ ] Differential Testingフレームワークが動作する
|
||
- [ ] 基本的なテストコーパスが準備されている
|
||
- [ ] 10個以上のバグを発見・修正
|
||
- [ ] ベンチマークで2倍以上の高速化を確認
|
||
- [ ] CI/CDパイプラインに統合されている
|
||
|
||
## 📈 成功の測定
|
||
- **カバレッジ率**: 70%以上の関数がコンパイル
|
||
- **性能向上**: 純Pythonループで2-10倍
|
||
- **バグ発見数**: Phase毎に10件以上
|
||
- **テスト成功率**: 95%以上
|
||
|
||
## ⏭️ 次のフェーズ
|
||
→ Phase 10.1g (ドキュメント作成) |