Testcase similarity - jjin-choi/study_note GitHub Wiki

λͺ©μ  : ν…ŒμŠ€νŠΈ κ°„ μœ μ‚¬λ„λ₯Ό λ°”νƒ•μœΌλ‘œ cluster 및 Failure μ˜ˆμΈ‘ν•˜μ—¬ license 및 검증 νš¨μœ¨ν™”

Abstract

  • SoC 크기가 컀짐에 따라 검증 μžλ™ν™” / νš¨μœ¨ν™”κ°€ ν•„μˆ˜μ μ΄λ‹€.
    • Regression automation 을 진행. ν…ŒμŠ€νŠΈλ“€μ˜ log, environments, ν…ŒμŠ€νŠΈλ“€κ³Ό κ΄€λ ¨λœ νŒŒμΌλ“€μ— λŒ€ν•œ 정보λ₯Ό DB ν™”.
    • λΉ λ₯Έ μ‹œκ°„ 내에 μ •ν™•ν•œ 검증을 μœ„ν•΄μ„œλŠ” 경제적 (license) 및 μ‹œκ°„μ  νš¨μœ¨ν™”κ°€ ν•„μš”ν•¨μ„ λŠλ‚Œ.
  • νš¨μœ¨ν™” λ°©μ•ˆ 쀑 ν•˜λ‚˜λ‘œ, ν…ŒμŠ€νŠΈ 이름을 λΆ„μ„ν•˜λŠ” μ‹œλ„λ₯Ό ν•˜μ˜€λ‹€. (ref : μ§€μ²œλ‹˜ λ…Όλ¬Έ)
    • ν…ŒμŠ€νŠΈ 이름이 μœ μ‚¬ν•  경우, ν•΄λ‹Ή ν…ŒμŠ€νŠΈμ˜ κ²°κ³Όκ°€ μœ μ‚¬ν•  것이라고 κ°€μ •ν•˜μ˜€κ³ , μ‹€μ œλ‘œ μ–΄λŠμ •λ„ νš¨κ³Όκ°€ μžˆμ—ˆλ‹€.
    • ν•œκ³„μ μ€ μ΄λ¦„λ§ŒμœΌλ‘œλŠ” ν…ŒμŠ€νŠΈ κ²°κ³Όλ₯Ό μœ μΆ”ν•΄λ‚΄κΈ°κ°€ μ–΄λ €μšΈ λΏλ”λŸ¬, 이름이 μœ μ‚¬ν•˜λ”λΌλ„ μ „ν˜€ λ‹€λ₯Έ κ²°κ³Όκ°€ λ‚˜μ˜€κΈ°λ„ ν•˜μ˜€λ‹€.
    • κ·ΈλŸ¬λ‚˜ 이 방식을 톡해 ν…ŒμŠ€νŠΈ κ°„μ˜ μœ μ‚¬λ„λ₯Ό λΆ„μ„ν•¨μœΌλ‘œμ¨ regression νš¨μœ¨ν™”λ₯Ό ν•  수 μžˆμ„ κ²ƒμ΄λΌλŠ” 생각을 κ°–κ²Œ λ˜μ—ˆλ‹€.
  • λ”°λΌμ„œ μš°λ¦¬λŠ”, 더 효과적인 방법을 λͺ¨μƒ‰ν•˜κΈ° μœ„ν•΄ DB에 μŒ“μΈ 둜그 데이터λ₯Ό μ΄μš©ν•˜μ—¬ ν…ŒμŠ€νŠΈμ˜ ꡬ성 μš”μ†Œλ₯Ό νŒŒμ•…ν•΄λ‚΄κ³ , κ΅¬μ„±μš”μ†Œ κ°„μ˜ similarity λ₯Ό 뢄석.
    • λ˜ν•œ, big data λΆ„μ„ν•˜κΈ° μœ„ν•΄ Spark, MongoDB λ₯Ό μ΄μš©ν•œ pipeline κ΅¬μΆ•ν•˜μ—¬ μ—¬λŸ¬ μΈ‘λ©΄μ—μ„œ νš¨μœ¨ν™”.

Proposed Method

  • κ°€μ •

    • κ΅¬μ„±μš”μ†Œλž€ ? Task Class Function Sequence
    • 둜그 뢄석을 톡해 μ—λŸ¬κ°€ λ°œμƒν•œ ꡬ성 μš”μ†Œλ₯Ό νŒŒμ•…ν•  수 μžˆλ‹€.
  • Phase 1 : ν…ŒμŠ€νŠΈ 둜그 νŒŒμΌμ—μ„œ ν…ŒμŠ€νŠΈ ꡬ성 μš”μ†Œ νŒŒμ•…. κ΅¬μ„±μš”μ†Œλ₯Ό vectorize ν•˜μ—¬ cosine distance 계산

    • Phase 1 을 ν†΅ν•΄μ„œ λΉ„μŠ·ν•œ λ™μž‘μ„ ν•˜λŠ” ν…ŒμŠ€νŠΈλ“€μ„ νŒŒμ•…ν•΄ λ‚Ό 수 μžˆλ‹€.
    • Phase 1 결과둜 Testcase clustering 을 ν•˜μ—¬ λŒ€ν‘œ testcase (centroid) λ₯Ό μΆ”μΆœν•΄ λ‚Ό 수 μžˆλ‹€.
    • 각 cluster 의 centroid ν…ŒμŠ€νŠΈλ“€μ„ μˆ˜ν–‰ν•œλ‹€. (전체 쀑 10~20%, license 상황에 맞게 쑰절 κ°€λŠ₯)
  • Phase 2 : 둜그 νŒŒμΌμ—μ„œ λ‚˜νƒ€λ‚œ Errorλ₯Ό λΆ„μ„ν•˜μ—¬, ν•΄λ‹Ή error κ°€ λ°œμƒν•œ ꡬ성 μš”μ†Œμ— λŒ€ν•΄μ„œ κΈ°μ‘΄ distance 의 weight μ‘°μ •ν•˜μ—¬ similarity λ‹€μ‹œ 계산

    • Phase 2 λ₯Ό ν†΅ν•΄μ„œ μ—λŸ¬κ°€ λ°œμƒν•œ κ΅¬μ„±μš”μ†Œλ₯Ό νŒŒμ•…ν•˜κ³  cluster λ₯Ό λ‹€μ‹œ μƒμ„±ν•œλ‹€.
    • Phase 2 μ—μ„œ μž¬μƒμ„±λœ cluster 내에 μ‘΄μž¬ν•˜λŠ” ν…ŒμŠ€νŠΈλ“€λ„ λ™μΌν•œ Failure κ°€ λ°œμƒν•  지 μ˜ˆμΈ‘ν•  수 μžˆλ‹€.
  • ν•΄λ‹Ή ν…ŒμŠ€νŠΈμ˜ 디버깅이 μ™„λ£Œλ˜μ–΄ pass 되면, κ·Έ cluster 에 μ†ν•œ ν…ŒμŠ€νŠΈλ“€λ„ μˆ˜ν–‰ν•˜λ„λ‘ μžλ™ν™” κ°€λŠ₯.

Result

  • μ μš©ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ / ν…ŒμŠ€νŠΈ μ΄λ¦„λ§Œ λΆ„μ„ν–ˆμ„ λ•Œ / 이 λ…Όλ¬Έ 방법 κ²°κ³Ό 비ꡐ (μ‹œκ°„/λΉ„μš© μΈ‘λ©΄)
  • phase 1κ³Ό phase 2 κ²°κ³Ό 비ꡐ
  • weight 방식 μ—¬λŸ¬κ°œ 비ꡐ
  • learning ... ?
  • 기타 λ“±λ“± (λ‹€λ₯Έ similarity λ…Όλ¬Έλ“€ 찾아보고 λΉ„κ΅ν•˜κΈ°)

Discussion

  • result κ²°κ³Ό 뢄석

Further study

  • μΆ”ν›„ ML Training 을 톡해 Failure prediction 예츑 μ„±λŠ₯ ν–₯상 (Proposed method 에 ν¬ν•¨μ‹œμΌœλ„ 되고...)
  • Similarity κ°€ 맀우 높은 ν…ŒμŠ€νŠΈλŠ” pruning ν•  μˆ˜λ„ 있음
  • Version λ³€κ²½μœΌλ‘œ 둜그 데이터가 없을 κ²½μš°μ—λŠ” κΈ°μ‘΄ 뢄석 κ²°κ³Όμ—μ„œ difference κ°€ λ°œμƒν•œ 것을 기반으둜 clustering ν•  수 있음