코드 위의 하루 (A Day on the Code)

Chapter 6 정리 - 테스트와 디버깅, 소프트웨어 품질의 완성 본문

🍚전공이 밥 먹여준다믄/📕 소프트웨어공학

Chapter 6 정리 - 테스트와 디버깅, 소프트웨어 품질의 완성

code.with.siyeon 2025. 5. 12. 19:07

📌 과목 개요

  • 과목명: 소프트웨어공학
  • 교재: 『쉽게 배우는 소프트웨어공학 2판』 - 김치수 저
  • 중간고사 범위: Chapter 1 ~ Chapter 6
  • 시험 스타일: 테스트 종류 구분, 검증 vs 확인 설명, 디버깅과의 차이 분석

📚 Chapter 6 핵심 개념 요약

1. 소프트웨어 테스트란?

개발된 소프트웨어가 정상적으로 동작하는지 확인하고,
오류나 결함을 찾아내는 과정

  • 품질 향상의 핵심 활동
  • 잘못된 동작을 찾는 것이 주 목적 (오류가 없음을 증명하려는 게 아님!)

2. 테스트의 목적

  • 소프트웨어의 기능이 요구사항을 만족하는지 확인
  • 오류를 조기에 발견하고 수정
  • 제품의 신뢰성, 안정성 확보

3. 테스트의 종류 (범위 기준)

🔹 단위 테스트(Unit Test)

  • 개별 모듈/함수 단위 테스트
  • 보통 개발자가 직접 작성

🔹 통합 테스트(Integration Test)

  • 여러 모듈을 연결해 모듈 간 상호작용 테스트
  • 인터페이스 오류 발견

🔹 시스템 테스트(System Test)

  • 전체 시스템이 요구사항대로 동작하는지 확인
  • 기능뿐만 아니라 성능, 보안 등도 평가

🔹 인수 테스트(Acceptance Test)

  • 고객이나 사용자 입장에서 평가
  • 최종 사용자의 요구사항 충족 여부 판단

4. 검증(Verification) vs 확인(Validation)


 

✔️ 검증: 제품이 요구사항에 맞게 개발되고 있는지
✔️ 확인: 제품이 실제 사용자 요구를 충족하는지

 

5. 디버깅(Debugging)

테스트 결과 발견된 오류를 추적하고 수정하는 과정

  • 테스트와는 다름!
  • 테스트는 오류 발견, 디버깅은 오류 수정

💡 자주 나오는 시험 유형

  • 테스트 종류 나열 및 설명
  • 검증 vs 확인의 차이 설명
  • 디버깅의 정의 또는 테스트와의 차이
  • 인수 테스트가 어떤 관점인지 서술하는 문제

🎯 교수님이 강조한 포인트

  • “검증과 확인은 시험 단골 개념”
  • 단위 → 통합 → 시스템 → 인수 순서를 기억하라
  • 테스트는 존재하는 오류를 찾아내는 것, 없는 걸 입증하는 게 아님!

📌 내 오답노트 & 복습 포인트

  • 검증/확인 순서를 반대로 외움 ❌
  • 통합 테스트와 시스템 테스트의 차이를 헷갈림
  • 디버깅을 테스트랑 같은 의미로 오해함

📝 마무리 요약

  • 테스트는 오류를 찾아내고 품질을 높이기 위한 핵심 활동
  • 검증 vs 확인은 언제 무엇을 확인하는지 시점 중심으로 구분
  • 디버깅은 테스트 결과를 바탕으로 실제 오류를 수정하는 과정