
유지보수 단계 소프트웨어 변경 활동
기능 보강
적응
결함 수정
예방
리그레션 테스트 방식
Retest-All 방식
선택적 리그레션 테스트
테스트 최소화
테스트 우선순위화 방식
테스트 케이스에 우선순위를 두어 높은 테스트 케이스만을 활용
APFD 사용
리그레션 테스트 케이스의 우선순위를 결정
효과성을 평가하기 위한 척도
테스트 케이스 실행 비율 대비 검출된 결함의 비율을 측정
APFD가 높다는 것은
더 적은 수의 테스트케이스로 많은 결함을 빠르게 검출할 수 있다는 의미
APFD를 계산하는 공식

가장 오래된 전통적인 모형
전 작업이 완료되어야지만 다음 단계로 넘어감
개발 중심 모델
요구사항 분석 ▶ 설계 ▶ 구현 ▶ 테스팅 ▶ 유지보수 (요설구테유)

요구사항 분석
설계
구현
테스팅
유지보수

진화적 모델

요구사항이 명확하지 않은 경우에 적용
이터레이션(Ineration)과 점진적(Incremental) 개발 원칙
=> 요구사항 분석 ▶설계 ▶ 구현 ▶ 테스팅 반복

애자일 방법론
의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
1~3주의 반복 개발주기, 5가지 가치와 12가지 기본원리
5가지 가치
12가지 기본원리
짝 프로그래밍 (Pair Programming)
지속적인 통합 (CI; Continuous Integration)
테스트 기반 개발 (TDD; Test Driven Develop)
리펙토링 (Refactoring)
메타포어(Metaphor)
소규모 릴리즈
지속적 협력
집단 코드 소유권
코딩표준
일정한 작업속도
40시간근무
공통 개발환경
테스트 절차를 수행할 수 있는 정보가 자동으로 추출될 수 있을 정도로
정형화되고 상세한 모델을 기반으로 테스트 계획을 수립하고
테스트 케이스, 테스트 절차, 테스트 입력 및 예상 결과 등을 결정
장애가 발생하였을 때 큰 비용이 유발되는 자동차, 의료 분야와 같은
안전 필수 소프트웨어를 대상으로 수행
의사결정표 , UML 상태 다이어그램 , UML 액티비티 다이어그램과
같은 정형적 표현법을 이용하여
동작에 대한 상세한 모델링을 할수 있다.
장점
테스트 계획에서 테스트 종료까지
대부분의 활동 자동화 가능
다양한 유형의 문제를 이른 시점에 식별하는 방법
단점