2024.07.15 - 1일차
1. Overview
- Today's Topic: 테스트 개요
- Objective: 테스트에 관한 전반적인 지식 이해
2. Key Concepts
- Concept 1: 오류, 결함, 장애
- Explanation
- 결함- 장애를 유발할 수 있는 문제
- Concept 2: 테스팅, 디버깅, 재테스팅
- Explanation
- 디버깅- 테스팅을 통해 결함의 존재를 확인후 결함의 위치를 파악하고 이를 제거
- Concept 3:테스트, 품질 보증
- Explanation
3. Detailed Notes
- 결함 유형
- 누락 : 요구 명세서에 명시된 요구사항이 시스템의 구현에 반영되지 않은 결함
ex)출력하도록 명시되었으나 소프트웨어에 구현되지 않은 경우
- 부정확한 구현 : 요구사항이 소프트웨어에 부정확하게 반영된 결함
ex) 출력하도록 명시된 것이 다르게 구현된 경우
- 비관련 결함 : 요구 명세와 관련되지 않은 구현
ex) 요구 명세서에 언급된 기능 품질들과 무관한 경우
- 결함 해결 비용
유지보수(20)>인수 테스팅(5)>단위 테스팅(2)>코딩(1)>설게(0.5)>요구분석(0.1-0.2)
- 테스트의 진화 과정
- 레벨 1 : 테스트와 디버깅에 뚜렷한 차이가 없는 레벨
- 레벨2 : 프로그램이 올바르게 동장한다는 것을 입증하는 레벨
- 레벨3: 프로그램에 결함이 존재함을 보여주기위한 레벨
- 레벨4: 소프트웨어 개발 전 단계에서 발생하는 결함을 발견하는 레벨
- 레벨5: 사전에 결함을 방지하는 레벨
- 테스트 원칙
- 테스트는 개발팀과는 무관한 그룹이 수행해야 한다
- 결함이 발견되지 않을 것이라는 가정하에 계획을 세우면 안된다
- 타당하지 않고 예상 못한 경우에서도 테스트를 해야한다
- 프로그램의 결함이 남아있을 확률은 이미 발견된 결함의 수에 비례한다
- 테스트 케이스를 체계적으로 관리한다
- 각각의 테스트 결과를 철저하게 점검한다
- V&V
: verification(검증)과 validation(확인)의 약자
검증- 개발 과정에서 수행한 활동의 적합성 검사에 초점을 둠
확인- 결과물의 적합성에 초점을 둠
- 테스트 기본 용어
- 테스트 대상 : 테스트를 통해 결함을 검출하려는 대상 소프트웨어
- 시스템 테스트 : 전체 소프트웨어를 대상으로 한 테스트
- 컴포넌트. 단위 테스트 : 부분을 대상으로 한 테스트
- 피쳐 : 테스트 대상의 특성 중에서 테스트하고자 하는 측면 , 관점
- 정적 테스트 : 테스트 대상을 실행하지 않고 테스트를 수행하는 방식
- 동적 테스트 : 소프트웨어를 실행하는 방식으로 테스트
- 테스트 케이스: 입력과 대응되는 예상 결과를 묶은 것
- 테스트 절차 : 테스트를 준비하고, 실행하고, 결과를 관찰하고 기록하는 절차를 정의한 것
- 테스트 환경 : 테스트 대상을 실행하는 모든 환경으로 하드웨어, 운영 체제를 포함한 시스템 소프트웨어, 외부 연동 시스템, 공존하는 응용 소프트웨어, 테스트 도구 등을 포함한다
4. Diagrams / Visual Aids
- 관련된 다이어그램, 시각자료, 그림 등을 추가합니다.
5. Practical Examples / Exercises
- Example 1: 실제 예제 1
- Steps: 단계별 설명
- Exercise 1: 연습 문제 1
- Solution: 해결 방법
6. Questions / Clarifications
- Question 1: 질문 1
- Clarification: 질문에 대한 명확한 답변
- Question 2: 질문 2
- Clarification: 질문에 대한 명확한 답변
7. Summary
- Key Takeaways: 오늘 학습한 주요 내용 요약
8. Additional Resources
- Links: 추가 자료 링크
- Books / Papers: 관련 서적이나 논문
9. Reflections / Thoughts
- Today's Challenges: 오늘의 어려움
- Learnings: 배운 점
- Future Improvements: 향후 개선점