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):
|
||||
|
||||
Reference in New Issue
Block a user