Skip to main content
소프트웨어 테스팅 이미지

소프트웨어 테스팅




강좌 소개

수업내용/목표

소프트웨어 테스팅에 필요한 기본적인 이론 지식을 습득하고, 다양한 소프트웨어 특성에 맞는 테스팅 기술을 식별할 수 있다. 또한, 소프트웨어 개발에 필수적인 테스팅 방법을 적절하게 활용할 수 있다. 본 강좌는 소프트웨어에 관심이 있고, 소프트웨어 개발이 가능한 수강생들에게 유익한 강좌가 될 것이다.

홍보/예시 영상

강좌 운영 계획

 

강의계획서
주차 주차명 주차별 학습목표 차시명
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 아키텍처 평가 설계된 아키텍처를 분석하고 평가하는 원리를 설명할 수 있다. 4-1. 다양한 로직 커버리지
4-2. MC/DC 커버리지
4-3. 다양한 로직 커버리지 간 상호 관계
4-4. 뮤테이션 커버리지
4-5. 뮤테이션 연산자
4-6. RIPR 버그 검출 프로세스 모델을 통한 여러 테스트 커버리지 기술 비교
5 소스코드 기반 테스트 케이스 자동생성 ) 복잡한 SW 소스코드를 대상으로 높은 커버리지를 달성할 수 있는 테스트 케이스 자동생성 기술을 적용할 수 있다. 5-1. SW의 높은 복잡도에 대한 이해 및 예제
5-2. 동시성 SW의 높은 복잡도에 대한 이해 및 예제
5-3. Concolic (CONCrete + symbOLIC) 테스팅 소개
5-4. C 프로그램 대상 Concolic 테스팅 도구 CROWN 소개
5-5. Concolic 테스팅 통한 시스템 테스트 실사례
5-6. 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. 기계학습 기반 결함 위치 식별
기말시험

 

강좌운영팀 소개

교수자

유신 교수
유신 교수
현) KAIST 전산학과 교수
PhD in Computer Science, King’s College London, 2009
E-mail: shin.yoo@kaist.ac.kr
김문주 교수
김문주 교수
현) KAIST 전산학과 교수
PhD, Univ of Pennsylvania, 2001
E-mail: moonzoo@cs.kaist.ac.kr

강좌지원팀

안가빈
안가빈
KAIST 전산학부 석사과정
E-mail: agb94@kaist.ac.kr
김진솔
김진솔
KAIST 전산학부 석사과정
E-mail: steve-kim@kaist.ac.kr

강좌 수강 정보

이수/평가정보

이수/평가정보
과제명 퀴즈 토론 중간고사 기말고사
반영비율 60% 0% 0% 40%

※ 퀴즈 60%와 기말고사 40%로 퀴즈와 기말고사를 다 푸시고 총 60% 이상 점수 획득 시, 이수증을 발급받을 수 있습니다. 주차별로 퀴즈가 제공되며, 기말고사는 1번의 기회만 제공되니 유의하시기 바랍니다.

강좌 수준 및 선수요건

이 강좌는 유익한 내용이 다수 포함되어 있습니다. 강좌 수준은 전공 기초정도이며, 앞서 "소프트웨어 공학 : 왜, 무엇을, 어떻게?" 강좌와 "클라우드 서비스 아키텍처" 강좌를 선수로 듣고 수강하시면 훨씬 도움이 되실 것입니다.

교재 및 참고문헌

이 강좌는 여러가지 참고자료가 많이 있습니다.

자주 묻는 질문

강좌 교재가 따로 있나요?

강의 교안을 교재로 제공합니다.

강좌 교재가 따로 있나요?

네. 있습니다.

제목

소제목

내용

 

관련 강좌

  1. major

    Engineering
    (Computers & Communication)
  2. 강좌를 개발하고 운영하는 기관입니다. 컨소시엄으로 운영 시, 대표기관의 명칭이 나타납니다

    univ_name

    KAISTk
  3. 강좌의 구성 주차 수를 의미합니다. (강좌를 충실히 학습하기 위해 필요한 주당 학습시간을 의미합니다.)

    Course Week
    (Estimated Effort)

    08week
    (주당 03시간 00분)
  4. 본 강좌 이수자에게 인정되는 학습시간으로 해당 강좌의 동영상, 과제, 시험, 퀴즈, 토론 등의 시간을 포함합니다. (강의 내용과 관련된 동영상 재생 시간의 총 합계입니다.)

    Accredited learning time
    (Video Duration)

    32시간 00분
    (10시간 00분)
  5. 수강신청이 가능한 기간으로 해당 기간 내에만 수강신청이 가능합니다.

    Course Registration Period

    2019.01.07 ~ 2019.04.13
  6. 강좌가 운영되고 교수지원이 이루어지는 기간입니다. 이수증은 강좌운영기간이 종료된 이후에 발급받을 수 있습니다.

    Classes Period

    2019.02.04 ~ 2019.04.14