Mutation check done on all accepted tasks; mutant fixes; dump filter in proxy
- skip sy-subrc lines and CDS type lengths; CDS literal mutants; mutate helper classes - proxy: sap_short_dumps shows only dumps of the current run - 26/26 tasks pass; results in docs/faz1-tasarim.md 11g Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
@@ -605,6 +605,21 @@ Ek bulgu: G0022'nin bütçesi (12 aktivasyon) referansın kendisine (13) yetmiyo
|
||||
|
||||
G0022 bundle'ı değiştirilmeden yeniden doğrulandı (harness düzeltmeleri + bütçe): oracle 100, null 0 → kabul.
|
||||
|
||||
## 11g. Mutasyon kontrolü (Adım D, 2026-10-03)
|
||||
|
||||
`harness/mutation.py`: referansın (test sınıfları hariç tüm objeler) implementasyonunda deterministik küçük değişiklikler; her mutant için oracle + gizli testler. Yakalandı = referans aktif ve en az bir gizli test düşüyor. Kabul: en az 2 geçerli mutant ve yakalama oranı ≥ %75. Generator artık oracle 100 / null 0'dan sonra mutasyon kontrolü yapar; hayatta kalan mutantlar onarım geri bildirimi olur. Yakalanan mutantlar `<görev>/faulty/` altında saklanır (kendi testlerin (a) puanı için aday hatalı referans).
|
||||
|
||||
Mutant türleri: ilişki operatörünü tersine çevirme (`<`→`>=`), koşul satırında `=`→`<>`, `AND`↔`OR`, `+`↔`-`, `*`→`/`, `abap_true`↔`abap_false`, tamsayı sabiti +1; CDS'te ayrıca `sum(`→`max(`, `inner join`→`left outer join`, literal değer.
|
||||
|
||||
Ayarlar (deneyle):
|
||||
- Sınır kaydırma (`<`→`<=`) kullanılmaz: sınıra sabitleme (clamp) kodunda eşdeğer olur (T13: `IF fee < 1. fee = 1.`).
|
||||
- `WHILE`/`DO` blokları atlanır: G0002'de bir mutant sonsuz döngü yaptı, unit test RFC bağlantısını ~8 dk kilitledi.
|
||||
- `sy-subrc`/`sy-tabix` satırları atlanır: çoğu davranış farkı değil short dump verir (`GETWA_NOT_ASSIGNED`).
|
||||
- CDS tip uzunlukları (`abap.char(1)`) atlanır.
|
||||
- Mantık yardımcı sınıfta olabilir (G0026: FM bir sınıfı çağırır) → hedef sözleşme değil, tüm referans objeleri.
|
||||
|
||||
Sonuç: T01, T13, T14, T15 ve kabul edilen 22 üretilmiş görevin hepsi geçti. Hayatta kalan mutantlar gerçek test boşluğu gösterir: `inner join`→`left outer join` (G0017, G0020: test verisinde eşleşmeyen satır yok), `sum(`→`max(` (G0019: grup başına tek satır). Süre: mutant başına ~10–50 s.
|
||||
|
||||
## 12. Açık sorular
|
||||
|
||||
Cevaplananlar (Adım 1.2):
|
||||
|
||||
@@ -86,7 +86,7 @@ Adım 3 görev ister; görevler el ile yazılırsa darboğaz olur. Bu yüzden il
|
||||
| A | Önek şeması: koşu 4 karakter base36, görev 3 karakter base36 (`Z005P001_`) | ✓ |
|
||||
| B | Harness: FUGR/FUNC, PROG, DDLS desteği (G2 kontrat kontrolü, abaplint dışa aktarımı, silme sırası) | ✓ T13–T15 oracle 100 / null 0. Server eşzamanlılık sorunu bulundu (harness'te retry) |
|
||||
| C | Görev üreteci: DeepSeek görev yazar (spec, seed, gizli testler, referans + local testler); kategori ve obje tipi dağılımına göre | ✓ `harness/generator.py`: üretim → yapı + statik kontrol + yerel abaplint → oracle/null doğrulama → en fazla 3 onarım turu. Pilot sonrası iyileştirildi (faz1-tasarim 11e) |
|
||||
| D | Otomatik görev doğrulama: oracle = 100, null = 0, gizli testler bozuk referansta düşmeli | oracle/null hazır; mutasyon kontrolü `harness/mutation.py` (2026-10-03) |
|
||||
| D | Otomatik görev doğrulama: oracle = 100, null = 0, gizli testler bozuk referansta düşmeli | ✓ oracle/null + mutasyon kontrolü (`harness/mutation.py`, generator'a bağlı). 26/26 görev geçti (faz1-tasarim 11g) |
|
||||
| E | Pilot: ~20 görev, tüm obje tipleri; kabul oranı ve gerçek maliyet ölçümü | ✓ 16/20 kabul, 0,16 $ / kabul edilen görev (faz1-tasarim 11e). Zor parti (5 görev): 5/5 kabul, 0,097 $ / kabul edilen görev (11f) |
|
||||
| F | Eval seti: 110 görev; Kral incelemesi. Eğitim havuzu: otomatik doğrulanmış görevler, eval ile çakışmasız | |
|
||||
| G | Ölçüm (1.6) ve yörünge üretimi (3.2) paralel worker'larla (bulut model: en fazla 6) | |
|
||||
|
||||
Reference in New Issue
Block a user