수업내용/목표
소프트웨어 테스팅에 필요한 기본적인 이론 지식을 습득하고, 다양한 소프트웨어 특성에 맞는 테스팅 기술을 식별할 수 있다. 또한, 소프트웨어 개발에 필수적인 테스팅 방법을 적절하게 활용할 수 있다. 본 강좌는 소프트웨어에 관심이 있고, 소프트웨어 개발이 가능한 수강생들에게 유익한 강좌가 될 것이다.
주차 | 주차명 | 주차별 학습목표 | 차시명 |
---|---|---|---|
1 | 테스팅의 기본 개념 | 소프트웨어 테스팅의 기본 개념을 습득할 수 있다. | 1-1. 소프트웨어 품질 |
1-2. 에러, 결함, 실패 | |||
1-3. 완벽한 테스팅의 불가능성 | |||
1-4. 테스팅 자동화 기술 소개 1 | |||
1-5. 테스팅 자동화 기술 소개 2 | |||
1-6. 테스팅 불가능 프로그램 | |||
2 | 블랙박스 테스팅 | 블랙박스 테스팅의 기본 원리인 파티션 기법, 경계값 분석 기법, 조합 테스팅을 습득할 수 있다. | 2-1. 블랙박스 테스팅의 기본 |
2-2. 등가 파티션 | |||
2-3. 등가 파티션 예제 | |||
2-4. 경계값 분석 | |||
2-5. 조합 테스팅 | |||
2-6. 조합 테스팅과 제약조건 | |||
3 | 프로그램 구조 | 분기 제어, 데이터 흐름 등 프로그램 구조 분석의 기본 개념을 습득할 수 있다.. | 3-1. 제어 흐름 그래프 |
3-2. 테스트 적합도 개념 | |||
3-3. 구조 커버리지 | |||
3-4. 고급 커버리지 개념 | |||
3-5. 데이터 흐름 | |||
3-6. 데이터 흐름 커버리지 | |||
4 | 로직 및 뮤테이션 커버리지 | 대상 SW 소스코드를 효과적으로 테스트하기 위한 커버리지 기반 테스팅 기술을 익힐 수 있다. | 4-1. 다양한 로직 커버리지 |
4-2. MC/DC 커버리지 | |||
4-3. 다양한 로직 커버리지 간 상호 관계 | |||
4-4. 뮤테이션 커버리지 | |||
4-5. 뮤테이션 연산자 | |||
4-6. RIPR 버그 검출 프로세스 모델을 통한 여러 테스트 커버리지 기술 비교 | |||
5 | 소스코드 기반 테스트 케이스 자동생성 | 복잡한 SW 소스코드를 대상으로 높은 커버리지를 달성할 수 있는 테스트 케이스 자동생성 기술을 적용할 수 있다. | 5-1. SW의 높은 복잡도에 대한 이해 및 예제 |
5-2. Concolic (CONCrete + symbOLIC) 테스팅 소개 | |||
5-3. C 프로그램 대상 Concolic 테스팅 도구 CROWN 소개 | |||
5-4. Concolic 테스팅 통한 테스트 실사례 | |||
6 | 랜덤 테스팅 | 랜덤 테스팅 및 적응형 랜덤 테스팅의 개념을 이해하고 및 실습 사례를 적용할 수 있다. | 6-1. 랜덤 테스팅의 기본 |
6-2. 랜덤 테스팅 고급 기술 | |||
6-3. Randoop 적용 | |||
6-4. 적응형 랜덤 테스팅 기본 | |||
6-5. 적응형 랜덤 테스팅의 한계 | |||
6-6. 프로퍼티 테스팅 | |||
7 | 회귀 테스팅 | 계속적으로 변화하는 프로그램을 효율적으로 테스트하기 위한 테스트 스위트 최적화 기법을 활용할 수 있다. | 7-1. 회귀 오류 |
7-2. Retest-All 접근법 | |||
7-3. 테스트 스위트 최소화 | |||
7-4. 테스트 케이스 선택 | |||
7-5. 테스트 케이스 우선순위화 | |||
7-6. 연속적 통합과 회귀테스팅 | |||
8 | 결함 위치 식별 | 디버깅 효율을 높이기 위해 결함의 위치를 추정하는 다양한 기법을 적용할 수 있다. | 8-1. 델타 디버깅: 이진검색 |
8-2. 델타 디버깅: 재귀버전 | |||
8-3. 정보 추출 기반 결함 위치 식별 | |||
8-4. 스펙트럼 기반 결함 위치 식별 | |||
8-5. SBFL 성능 분석 | |||
8-6. 기계학습 기반 결함 위치 식별 | |||
기말시험 |
과제명 | 퀴즈 | 토론 | 중간고사 | 기말고사 |
---|---|---|---|---|
반영비율 | 60% | 0% | 0% | 40% |
※ 퀴즈 60%와 기말고사 40%로 퀴즈와 기말고사를 다 푸시고 총 60% 이상 점수 획득 시, 이수증을 발급받을 수 있습니다. 주차별로 퀴즈가 제공되며, 기말고사는 1번의 기회만 제공되니 유의하시기 바랍니다.
이 강좌는 유익한 내용이 다수 포함되어 있습니다. 강좌 수준은 전공 기초정도이며, 앞서 "소프트웨어 공학 : 왜, 무엇을, 어떻게?" 강좌와 "클라우드 서비스 아키텍처" 강좌를 선수로 듣고 수강하시면 훨씬 도움이 되실 것입니다.
이 강좌는 여러가지 참고자료가 많이 있습니다.
강의 교안을 교재로 제공합니다.