테스트 Flashcards

1
Q

테스트

A

[정의] 숨어있는 결함(Fault)과 요구 사항의 차이점을 찾기 위해 소프트웨어를 분석하고 평가하는 프로세스
[특징]
- 성공적인 테스트는 무결점이 아닌 결함을 찾는 데 있음
- 기대하지 않는 결함이 있다는 전제하에 계획 수립
[주요이슈] (인조전투복)
- 중요성 인식 부족, 조직적 역량 부재, 전문인력 부족, 투자 부족, SW 품질 및 복잡도 증가
[해결방안]
- 자동화툴(Junit/PMD/Mockup, Auto Rollbak) 활용
- 뮤테이션/비버깅 테스트 병행
- ISO 29119/TMMi/ISO25000 표준 활용
- Agile, TDD 활용

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

테스트 원리

A

[정의] ISTQB에서 제시한 효과적 테스트 위해 테스트 수행시 발생, 지켜야하는 원칙 수립한 기본원리
[목적] 수정 위한 결함 발견, Side/Ripple Effect 확인, 신뢰성/가용성 등 시스템 특성 평가
* 결함의 원인을 밝히고 코드를 수정하는 디버깅과는 달리 테스팅은 결함을 발견하기 위한 활동
원리
1. 완벽한 테스팅 불가 : 모든 가능성 테스팅 불가, Risk 분석 필요 (Risk 기반 테스팅)
2. 결함존재 증명 : 결함이 존재함을 밝히는 활동 (테스트 본연 역할)
3. 테스팅 개발 초 시작 : 설정한 테스트 목표에 집중(요르돈 법칙, 명세기반 기법, 정적기법(FTR))
4. 결함 집중 : 결함의 80%는 코드 20%에서 발생 (파레토 법칙, 경험기반 테스트, 스파이크 테스트)
5. 오류부재의 궤변 : 사용성이 낮은 경우 오류 부재는 품질과 무관 ( ISO 2502n, 요구사항 추적, 인터뷰)
6. 정황 의존적 : 테스트 환경에 의존적 (회귀 테스트, 도메인 기반 테스트)
7. 살충제 패러독스 : 동일 테스트 케이스 반복 수행 시 결함 발견 어려움( 경험기반, 탐색적 테스트)
* Agile, MSA 확산 따른 경량화, 다양화 기반의 개발 환경 대응 위한 테스팅 효율화 방안 고려 필요

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

ISO/IEC 29119

A

[정의] 체계적 S/W 테스트 절차와 원리/가이드 지원을 위한 SW SDLC 테스팅 프로세스, 산출물 국제표준
구성
1. Part 1(BS 7925-1) Concept & Vocabulary : SW 테스팅 원리와 프랙티스, SW테스트 개념/생명주기
2. Part 2(IEEE 1008) Process : SW 생명주기 프로세스 표준(ISO/IEC 12207)의 테스팅 프로세스
3. Part 3(IEEE 829) Documentation : 조직, 테스트 문서관리, 동적 테스트 프로세스 문서
4. Part 4(BS 7925-2)Testing Techniques : 정적,동적,비기능 테스트 케이스 설계 기법, 테스트 커버리지 측정
5. Part 5(ISO29119) Keyword-Driven Testing : 키워드 주도 테스팅 F/W, Tools 요구사항
[도입방안]
- 사전 학습 : Best Practice(ISTQB 테스팅 BP 학습), ISO 29119 Working Group 참여
- 내부 절차 : TMMI 기반 성숙도 수준 측정 (현 조직의 테스팅 Practices 평가를 통해 Level 점검)
[연계표준]
- ISO/IEC 33063(테스팅 프로세스 심사모델 ), TMMi(조직 테스트역량 평가)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

IEEE 29119-3(829)

A

[정의] 소프트웨어 테스팅 국제 표준, ISO 29119 중 테스트 문서 양식 표준(IEEE 829)
[특징] 테스트 설계 명세(테스트 조건 포함) 및 테스트 케이스 표준 양식 제시
[테스트 케이스 구성요소] (IC 사스기결 추중비)
1. ID : 테스트 케이스 식별자
2. TEST Case명 : 테스트 내용 명료한 표현
3. 사전조건 : 선행 조건, 구동환경, 테스트 데이터 정의
4. Test Step(절차) : 7단계 이내 권고
5. 기대결과 : 의도된 동작 판단 근거
6. 결과(합격/불합격) : Pass/Fail/Not Tested/Blocked-사전조건 미충족
7. 추적성 : 테스트 케이스 관련 요구사항, 적용기법 등
8. 중요도 : 시간적 제약성 고려, 수행 기준
9. 비고 : 작성 의도 등

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

ISO/IEC 33063

A

[리드] 테스팅 프로세스 심사모델
[정의] ISO/IEC 29119-2를 기반으로 한 소프트웨어 테스팅 프로세스 심사 국제 표준 모델
[특징]
- 심사범위 : 테스트 단계, 테스트 타입, 테스트 레벨든 모든 영역
- 레퍼런스 : ISO/IEC 15504-5(SPICE)의 성숙도 모델과 ISO/IEC 29119-2 테스트 프로세스
* ISO/IEC 29119-2의 테스트 프로세스를 이용하여 평가 모델 구성
[구성요소] (범참용오성)
- 프로세스 범위
- 프로세스 참조 모델
- 테스트 용어, 사례
- 테스트 평가 모델에 대한 오버뷰
- 테스트 프로세스 성숙도 레벨 (성과지표(조관동정), 능력지표 (불수관구예혁))
* TMMi, TPI, Test SPICE등의 국제 표준화
* 국내 주도로 제정된 표준이기 때문에 향후 SW 테스팅 시장에 주도권 확보

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

테스트 프로세스

A

[정의] SW 테스트를 계획, 분석, 실행, 리포팅, 마감으로 단계화하여 체계적으로 관리/수행하는 테스트 체계
[필요성] 척도/현황 파악, 프로세스 통제, 자원 효율화, 가시성 확보
[프로세스] (계분실리마) (수행활동/산출물)
1. 테스트 계획수립 : 테스트 Scope/Risk 정의, 테스트 추정 및 접근법 선정 (테스트 계획서, 테스트 디자인)
2. 테스트 분석/설계 : 테스트 베이시스 리뷰, 테스트 케이스 설계, 우선순위 선정 (테스트 설계서, TC)
3. 테스트 구현/실행 : 테스트 하네스/Suites, 실행 및 결함 분석 (테스트 프로시저, 테스트 실행 결과서)
4. 테스트 실행완료/보고 : 테스트 증적 취합, 완료조건 판단 (테스트 요약 보고서, 테스트 최종 보고서)
5. 테스트 마감 : 프로세스 평가, 결함추적 관리 (테스트 프로세스 심사 보고서, 테스트 프로세스 개선 계획서)
* 프로세스의 지속적 개선 및 서비스 적시성이 중시되는 DevOps 개발 환경 확산에 따른 최적화 전략 필요

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

테스트 계획

A

[정의] 테스트 베이시스, 테스트케이스 기반자료, SRS , 아키텍처 , 설계문서
[작성절차]
1. 계획검토 : 일정, 인원, 협조 확보
2. 테스트 범위 대상선정 : 체크리스트, 브레인스토밍
3. TC 정의/작성 : 화이트, 블랙박스
4. 타당성 확인 : Repository, R&R
5. TC 유지관리 : 형상관리, 회귀테스트 시 사용
[테스트 케이스]
- 특정 요구사항 준수 확인을 위한 개발된 입력값, 실행조건, 예상된 결과
- 테스트케이스 묶음(Test Suite)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

테스트 설계 기법

A

[정의] 테스트 설계 과정을 통해 테스트 케이스와 테스트 데이터를 설계하고 명세화하는 기법
[설계기법 - ISTQB 4.2기준]
1. 내부구조 참조여부 : 블랙/화이트
2. 설계근원 기준 : 명세/구조/경험
[설계기법-상세]
1. 명세기반 기법 : 불구동경원조결시상분R(유즈케이스/페어/직교/분류트리)
2. 구조기반 기법 : 구결조조변다(SC/DC/CC/C.DC/MC.DC/MCC)
3. 경험기반 기법 : 경탐오체특(탐색적테스팅, 오류추정, 체크리스트-경험과 노하우를 분류정리/특성테스팅-9126특성기반 도출, 비기능테스트에 주로 사용), (+)파레토법칙
[유형별 설계 기법]
- 구조기반 (화이트박스) : 컴포넌트/시스템 코드 분석, 기개발 테스트 케이스 이용, 추가 테스트 케이스 도출
- 명세기반 (블랙박스) : 테스트 베이시스 문석 분석, 기능적/비기능적 테스트 케이스 도출
- 경험기반 (블랙박스) : 지식, 경험에서 테스트 케이스 도출

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

테스트 차터

A

[정의] 탐색적 테스팅에서 테스트의 범위와 목적, 테스트 방법 등을 정의위한 테스트 참조 문서(승인서)
[특징] Test Insight 제공, 테스트 체계화, 리스크 기반 접근, Lessons Learned로 활용
[구성요소] 1) 테스트 범위/목적 2) 테스트 세션/일정 3) 테스트 대상/절차 4) 테스트 결함/이슈 5) 테스트 경험

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

테스트 커버리지 & 코드 커버리지

A

[테스트 커버리지]
- (정의) 기능, 소프트웨어, 사용자 요고사항의 최대 검증 범위의 보장을 위한 블랙박스 테스트 기법
- (매커니즘) 단위,기능,승인, 통합 테스트
- (목적) Feature coverage, Risk coverage, Requirement coverage
- (특징) 불필요한 테스트 케이스 탐지, 결함 누출 방지
[코드 커버리지]
- (정의) 코드가 실행된 범위를 확인하기 위해 정적 도구로 검증하는 화이트 박스 테스트 기법
- (코드 커버리지 레벨) Statement, Branch, Function, Loop, Condition 커버리지
- (유형) 코드 계측, 런타임 계측
- (특징) 정량적 정보 제공, Dead/Error 코드 제거

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

커버리지

A

[리드] 테스트 충분성 지표
[개념] 시스템 또는 소프트웨어 구조가 테스트 스위트(Suite)에 의해 테스트 된 정도, 즉 테스트의 충분함(Thoroughness)을 측정하는 비율
[활용] 테스트 완료조건으로 활용
[유형] (구결조조변다)
1. 구문(Statement) : 명령문을 적어도 한번수행
2. 결정(Decision) : 결정문이 적어도 한번씩 참과 거짓 결과를 수행
3. 조건(Condition) : 각 조건이 적어도 한번은 참과 거짓이 되도록
4. 조건/결정(Condition/Decision) : 결정조건과 개별조건이 각각 참, 거짓 결과가 한번씩 수행하는 케이스
5. 변경조건/결정 (Modified Condition/Decision) : 내부조건식(개별조건)이 다른개별조건식에 무관하게 독립적으로 전체조건식 결과에 영향줌. 최소순환 복잡도 고려
6. 다중조건 (Multiple Condition) : 모든 개별 식 조건의 모든 조합 고려 커버리지

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

테스트 완료조건(Exit Criteria)

A

[리드] 테스트 종료 기준
[정의] 정량화 지표 활용, 하나의 테스트 레벨 또는 특정 목적의 테스팅에 대한 종료 시점 결정 위한 테스트 완료 조건
[수립기준] 의도한 SW 목적 달성 증명, 제약 사항/리스크 수준 고려
* SW 복잡화 및 활용 확산 따른 안전성 요구 증가, 품질 확보 위한 ExitCriteria 수립 필요
[유형] (완목기커리스)
1. 테스트 완전성 : 모든 테스트 케이스 수행, 중대결함 없을 시 (실행 TC 수/계획 TC 수 = 1)
2. 테스트 목적 달성 : 초기 정의된 품질목표 달성 시 (Defect/시간 = 0)
3. 테스트 기준 통과 : 테스터가 수립한 테스트레벨 및 완료조건 기준 충족 시 (90%이상 케이스 만족시)
4. 테스트 커버리지 : 클라이언트 요구사항 모두 충족 시 (MC/DC 100%)
5. 테스트 리스크 : 예상되었던 모든 리스크 제거 시 (재발견 Defect, 발견 Defect = 0)
6. 테스트 스케쥴 : 예정 테스트 일정 종료 시 (테스트 완료일 < 출시일)
* TEST 설계 부정확, 실행 관리 미비 시 오류 부재의 궤변, 살충제 패러독스 등 테스트 신뢰성 저하 문제 발생

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

테스트 베드

A

[정의] 실제와 동일 환경 또는 결과 예측이 가능한 가상 환경을 구축하여 개발 기 술의 적합성, 사용성을 테스트 해보는 환경
[구성요소]
1. Test Harness : 테스트를 수행하기 위해 필요한 Stub 과 Driver 로 구성된 테스트 환경
2. Test Driver : Test Tool / 가상 인증 서버
3. Test Stub : Emulator / 더미 컴포넌트

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

테스트 하네스

A

[정의] 테스트을 지원하는 목적하에 생성된 코드와 데이터의 집합으로 Test Driver를 포함하는 테스트를 위한 Tool
[구성요소] (드스스 케스목)
1. Test Driver : 시험 대상 모듈을 호출, 파라메터 전달, 상향식 테스팅에 필요, Test Tool/xUnit
2. Test Stub : 시험 대상 모듈이 호출, 하향식 테스팅에 필요, Emulator/Dummy 컴포넌트
3. Test Suites : 테스트 케이스의 집합
4. Test Case : 입력 값, 실행 조건, 기대 결과 등의 집합
5. Test Script : 테스트 절차 명세, 자동화
6. Mock Object : 예정된 시늉/행위를 하는 객체, Stub는 Stubbed Date를 단순 반환하는 것의 차이
* 단위테스트와 통합테스트에 테스트 하네스가 주로 사용됨

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

테스트 드라이버 & 스텁

A

[정의] 모듈간 상/하향식 테스트를 위하여 테스트 대상모듈의 역할을 대신 수행하는 테스트모듈
[유형]
1. 드라이버 (Driver)
- 상향식 통합 테스트에서 해당 모듈이 Call하는 가상의 상위 계층 모듈
- 상위모듈 대체, Bottom-Up(상향식), 하위모듈의 중요성 높을때 활용
- (단) 초기구조파악이 어려움, (장) 초기 오류 발견 용이
- JDBC 연결 모듈, 가상 인증 서버
2. 스텁 (Stub)
- 하향식 통합 테스트에서 해당 모듈이 Call 및 Return하는 가상의 하위 계층 모듈
- 하위모듈 대체, Top-Down(하향식), 상위모듈의 중요성 높을때
- (단) 입출력이 일반적으로 하위에 있어 테스트 어려움 (장) 구현 용이
- Emulator, Dummy Component

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

테스트 오라클

A

[정의] 테스트 수행 결과의 참/거짓 여부 판단 위한 사전 정의 참 값 대입, 비교 수행 기법 및 활동 매커니즘
[특징]
1. 제한된 검증 : 모든 케이스 판단 적용 어려움
2. 수학적 기법적용 : 테스트 시 수학적 기법 이용, 오라클 값 산정
3. 테스트 자동화 활용 : 자동화 결과의 정확성 보장, 결과 값 자동 비교하는 결정자 역할
[유형] (참샘휴일)
1. 참(true) : 모든 입력 값에 대해 결과 확인
2. 샘플링 : 특정 일부 값에 대해서 결과 맞는지 확인
3. 휴리스틱 : 샘플링 값 + 휴리스틱 판단 결과 확인
4. 일관성 검사 : 변경이 있는 경우 전후의 결과 값이 같은 지 확인 (회귀 테스트)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

테스트 더블

A

[정의] 테스트 대상 코드를 Stub, Dummy, Mock, Fake 등 기법 이용하여 주변에서 격리하거나 상호작용하도록 하는 객체
[역할]
1. 테스트 대상코드 격리 : 협력 객체 의존성 제거. 테스트 대상에 집중 효과
2. 테스트 속도 개선 : 복잡한 계산에 따른 시간 지연 대체
3. 예측 불가능한 실행 요소 제거 4. 특수한 상황 시뮬레이션 5. 감춰진 정보 획득
[유형] (더블-덤스FM스)
1. Dummy : 인스턴스 객체만 필요한 경우 → 0, null, false 리턴
2. Test Stub : 구현 기능의 최대 단순화 → Void, 고정 값 리턴(Dummy + 동작하는 것처럼 기능)
3. Fake Object : 부수효과, 연쇄동작 방지 위한 경량화. 실제 객체 수행 기능 중 일부 변경
→ if(a=1){ return true; } else { false;}
4. Mock Up : 특정 조건 따른 Action 수행(수준 정교화), Case 별 파라미터 return 및 Fail 처리
→ Library: Mockito, JMock, Easy Mock 예) 두 객체간 상호 결과로 특정 메서드 호출 여부 확인
→ 상태기반: setName()/GetName(), 행위기반: method A() {method B()};
5. Test Spy : 기능 + 메서드 호출 등 기록 정보 제공. 메시지 처리 결과 return 구현
→ 설계 또는 명세가 제대로 되지 않은 경우 > Callcount++, getCallcount()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

V모델

A

[정의] 명세화된 기능이 올바르게 수행하는지 개발자 관점의 Verification(검증)과 사용자 관점의 Validation(확인)을 지원하는 Test Model
[특징] 추적성, 확장성, 신뢰성
[구성도]
- 검증(Verification) : 제품 생산 활동 (과정) / 각 단계 별 수행 / 개발자 관점 / Inspection, Peer Review
- 확인(Validation) : 생산된 제품 대상 (결과) / 시작과 종료 단계 / 사용자 관점 / 단위,통합,시험,인수 테스트
[구성요소]
1. Verification(FTR) (요기상구)
- 요구 분석 : 사용자 요구사항 수집분석(기능,비기능)
- 기본 설계 : 요구사항에 따른 기능설계
- 상세 설계 : 요구사항에 대한 상세기능설계
- 구현 : 기능구현,이벤트순서i/f구현
2. Validation (단통시인)
- 단위 테스트 : 개별모듈테스트 개발자에의해 수행
- 통합 테스트 : 모듈을결합하여 시스템테스트(빅뱅,하향식,상향식통합,백본) =>컴포넌트간 i/f
- 시스템 테스트 : 통합모듈에 대한 시스템적 테스트(실제 최종사용 환경수행)
- 인수 테스트 : 사용자의 만족여부(알파,베타,감마)=>비기능 특성에 대한 확신

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

테스트 유형

A

[테스트 유형]
1. 프로그램 실행 여부
- 동적 테스트(구현 후) : 화이트 박스 테스트(구조), 블랙 박스 테스트(명세)
- 정적 테스트(구현 전) : Code Review, Work Through, Inspection
2. 테스트 설계 근원(Origin) 기준 - ISO/IEC/IEEE 29119-4 기반
- 명세기반 테스트(동등분학,경계값,결정테이블,상태전이), 구조기반(구문,조건등), 경험기반 테스팅(탐색적,오류추정,체크리스트)
3. 동적 테스팅 중 프로그램 내부구조(코드) 참조 여부
- 블랙박스 테스팅(명세/경험 기반), 화이트박스 테스팅(전통적 구분, 구조기반)
4. 테스트 시각
- 검증(Verification) : 개발자 시각, 확인(Validation) : 사용자 시각, 고객관점
5. 테스트 단계
- 단위, 통합, 시스템, 인수, 설치 테스트
6. 테스트 목적
- 회귀, 병행, 부하, 성능, 유지보수, 안전, 회복, 강도 테스트

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

명세기반 테스트(블랙박스)

A

[리드] 요구사항 명세서 기반 기능적 테스트
[정의] 시스템 명세를 기반으로 테스트 케이스를 도출 및 실행하여 결함을 찾는 테스트 기법
[특징]
- Black Box Test : 시스템 내부는 Black Box로 간주
- Data Driven : 입출력 데이터 흐름에 초점
* 원시코드를 보지 않고 목적 코드만으로 데이터 중심의 입출력 테스트 수행, 기능 및 성능 테스트
[기법] (불구동경 원조결시 상분R) - ISO/IEC/IEEE 29119-4 기반
- 구문 규칙 (Syntax) : 적합, 부적합 (ID, Password 유효 범위 체크)
- 동등분할 (Equivalence Partitioning) : 대푯값
- 경계값 분석 (Boundary Value Analysis) : 영역, 유효, 비유효 경계값
- 조합 테스트 (Combinatorial Test) : 페어와이즈 테스팅(Pairwise Testing), 직교분할 테스팅
- 결정 테이블 (Decision Table) : True/False 표현
- 원인 결과 그래프(Cause Effect Graphe) : 원인(좌측),결과(우측) 그래프, AND/OR/NOT, E.I.O.R 원인간 제약
- 시나리오 (Scenario) : Use Case 테스트
- 상태 전이 (State Transition) : 상태들 사이의 천이
- 분류 트리 (Classification Tree) : 트리 구조
- 랜덤 테스트 (Random Testing)
[검증기준] Input 검사, Output 검사, Case 검사, Othogonal Array 검사

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

구조기반 테스트(화이트박스)

A

[리드] 코드 기반 White box 테스트
[정의] SW 구현 코드 기반 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 기법
( 구조기반 테스트 = 코드기반 테스트 = 테스트 커버리지)
[특징]
- White Box Test : 프로그램 내부 구조 및 복잡도를 검증하는 테스트
- Logic Driven : 코드구조의 효율성 및 오류사항 발견하기 위한 테스트
* 프로그램 내부로직 참조, 허용되는 논리적 경로 파악 및 복잡도 계산, Logic 중심 기능 테스트
[기법] (구결조조변다)

<커버리지>
1. 구문(Statement) : 모든 명령문 적어도 한번수행
2. 결정(Decision) : 결정문 적어도 한번씩 참/거짓 결과 수행
3. 조건(Condition) : 각 조건 적어도 한번 참/거짓 결과
4. 조건/결정(Condition/Decision) : 결정/개별조건 각각 참/거짓 결과가 한번씩 수행
5. 변경조건/결정(MC/DC) : 개별 조건식이 전체 조건식의 결과에 영향을 주는 조건 조합 (영향 없는 조건 제외)
6. 다중조건 커버리지(Multiple Condition) : 모든 개별 식 조건의 모든 조합 고려 커버리지
<경로/대상에 따른> 화이트 박스
1. 기초 경로 검사, 2. 조건 검사, 3.루프 검사, 4.데이터 흐름 검사 (루프 종류 : 단일 루프, 중첩 루프, 연결 루프)
[검증기준] 문장검증 기준, 분기점 조사, 개별 조건, 경로 검증 기준
* ISO/IEC 26262, ISO/IEC 61508, DO-178B/C 등에서도 MC/DC 기반 테스트 케이스 도출
</커버리지>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

MC/DC

A

[정의] 개별 조건식이 전체 조건식의 결과에 영향을 주는 조건 조합을 찾아 커버리지를 테스트하는 방법
[특징] 결과에 독립적(각 조건들은 결과에 독립적), N+1 테스트 케이스 (N개의 입력조건에서 N+1개 케이스)
[사례] A&B&C -> 4개의 CASE
* ISO/IEC 26262, ISO/IEC 61508, DO-178B/C 등에서도 MC/DC 기반 테스트 케이스 도출

23
Q

그레이박스 테스트

A

[정의] 블랙/화이트박스 테스트의 장점 활용하여 내부 구조 정보 기반 테스트 케이스를 생성하고 블랙박스 형태로 수행하는 테스트 기법
[필요성]
- 통합테스트 및 보안성 테스트 목적으로 사용
- 테스트 프로세스 소요시간 최소화
[세부기법] (메회패교)
- 메트릭스(행렬) 테스트(변수 체크), 회귀 테스트(변경 집중 테스트), 패턴 테스트(테스트 자동화), 직교배열 테스트(최소 테스트)

24
Q

경험기반 테스트

A

[정의] 이전에 테스터가 다루었던 유사 어플리케이션이나 기술에서의 경험, 직관, 테스트의 기술 능력으로부터 테스트 케이스를 추출하는 기법
[특징] 1. 시스템에 대한 지식 요구 2.경험/지식 정도에 따라 효율 차이 3. 공식적 기법으로 다루기 어려운 케이스
기법
1. 탐색적 테스팅 : 휴리스틱 테스팅 기법 (Test Charter, Time-Boxing )
2. 오류 추정 : Ad-hoc 테스팅, 직관과 경험에 의하여 결함 발생 형태 예측 TC 도출
3. 체크리스트 기반 테스팅 : 다른 테스트의 보완적 기법으로 주로 사용
4. SW 특성에 따른 테스트 : ISO/IEC 25010의 품질특성을 근간 경험적 TC 도출(기능성,신뢰성..)

25
Q

탐색적 테스팅

A

[리드] 전문가 경험/지적능력 활용
[정의] Test Charter/Time-Boxing 기반 테스트 실행 집중 통한 결함 발견 효율성 향상, 휴리스틱 테스팅 기법
[특징] 휴리스틱 접근법, 체계화된 구조, 효율성 기반
* 명세기반의 공식적 테스트와 병행, 보완적 역할 수행
[수행기법]
- 목표 중심 전략 : 테스트 목표와 Charter 기반, Time-Box(60~120분) 내
- 실행 기반 테스팅 : 수행/설계 동시 진행, Test Note/Debriefing(요약 회고) 결과 관리
- 휴리스틱 테스팅 기법 : 전문가 경험/지식 의존적, 예외적/경험적 우선순위 높은 결함 발견 효과적
[프로세스]
1. 계획 : 제품 목적 식별, 기능 식별, 리스크 분석, 전략수립, 계획수립, 차터작성
2. 설계&실행 : 차터 테스트 수행, 회고,결과보고서(Test Charter, Time Boxing)
3. 종료 : 테스트 회고, 종료보고서 작성 (Test Note(아이디어,지속적 학습)/Debriefing(요약 회고))
[전략적 활용 방안] Risk 기반 테스팅과 연계, Agile 프로젝트 테스팅 기법으로 활용
* 탐색적 테스팅 성과는 테스터 경험과 역량과 비례. Risk 고려한 테스트 엔지니어 선정 중요

26
Q

통합 테스트

A

[정의] 컴포넌트 간 인터페이스, 시스템 간 상호연동 동작 테스트, 기능/비기능 특성 포함 통합적 테스팅 기법
[특징]
- 비기능 특성 테스트 포함(성능, 연결성 등)
- 기능적, 구조적 접근법 모두 활용(아키텍처 이해 기반한 계획 수립 필요)
[유형]
1. 백본 : 가장 중요하고 리스크가 높은 모듈로 초기 통합, 드라이버/스텁 필요
2. 빅뱅 : 모든 테스트 모듈 동시 통합, 결함 격리 어려움, 실 모듈로 테스트
3. 상향식 : 가장 하위의 모듈부터 통합, 테스트 드라이버 필요, 상위 결함 설계 발견 용이
4. 하향식 : 가장 상부의 모듈부터 통합 , 테스트 스텁 필요 , 하부 결함 발견 용이
* 백본, 상향, 하향 통해 빅뱅 Risk 감소

27
Q

시스템 테스트

A

[정의] 개발 프로젝트 범위에서 정의된 전체 시스템 또는 제품 동작 테스트
[특징]
- 인수 전 사용자 요구사항 만족도 검증
- 환경특성 장애 리스크 최소화. 가용성 및 안전성 보장 확인
- 시스템 기능(명세기반 블랙박스) 및 성능 비기능(신사호유이성보,가용성/성능/보안 테스트) 모두 포함
[유형] (강성보복 신설보호 기구)

<안전성>
- 강도 테스트(Stress) : 정해진 시간내 과중한 양 처리 여부
- 성능 테스트 (Performance) : 응답속도, 처리량, 처리속도등 목표 성능 테스트
- 보안 테스트 (Security) : 보안 체계 점검
- 복구 테스트(Recovery) : 오류로부터 회복 정도
<신뢰/호환성 측면>
- 신뢰성 테스트 (Reliablity) : 신뢰성 목표 및 오류나 고장의 발생 정도
- 설치 용이성 테스트 (Installability)
- 보수 용이성 테스트(Serviceablity) : 유지보수 단계의 정의 만족 여부
- 호환성/변환 테스트 (Compatiblility/Conversion) : 기존 시스템과의 호환성/변환성 테스트
<기타>
- 기억장치 테스트 (Storage) : 주기억장치/보조 기억장치의 크기 요구 사항 만족 여부
- 구성 테스트 (Configuration) : H/W나 S/W의 구성
</기타></안전성>

28
Q

사용자테스트

A

[리드] 제품 출시전 최종결정
[정의] 사용자 또는 고객 주도로 실행되는 제품의 출시 가능성에 대한 확신을 얻기 위한 테스트
* 시스템의 일부 또는 비기능적 특성을 포괄적 검증하는 활동 및 절차
[유형] 알파 테스트 - 베타 테스트 - 인수 테스트

29
Q

알파/베타 테스트

A
  1. 알파 테스트 : 개발된 SW의 정식출시 전 선택된 사용자에 의해 통제된 환경에서 수행하는 내부테스트
  2. 베타(필드) 테스트 : 개발된 SW의 정식출시 전 기존/잠재 고객에 의한 다양한 환경에서 수행되는 외부테스트 (클로즈 베타, 오픈 베타)
    [비교] 알파 vs 베타
    - (환경) 개발 환경 / 사용자 환경
    - (주체) 내부 사용자 / 외부 사용자
    - (목적) SW 신뢰도, 결함 발견, 부하 검사 / 사용자에 의한 제품 평가
    - (인수기준) 해당 제품의 인수기준 준용 / 개별 테스터가 임의 선정
    - (설계) 테스트 명세서 활용 / 개별 테스터가 독자적 결정
    * 사용자 관점 테스트로 예측하지 못한 결함의 발견에 용이하며 종료 후 인수 테스트 전환
30
Q

인수 테스트

A

[정의] 제품 출시 전 최종 단계로 배포 가능성과 확신의 획득을 위한 사용자 중심의 테스트
[분류]
1. 공식적 인수테스트
- (개념) 통제되고 관리되는 프로세스를 가진 최종 사용자 또는 독립적인 테스트 팀에 의해 수행되는 테스트
- (유형) 사용자 인수 테스트, 비즈니스 인수 테스트, 계약 인수 테스트, 규정 인수 테스트, 운영상 인수 테스트
2. 비공식적 인수테스트
- (개념) 테스팅 절차가 엄격하지 않으며 주관과 경험에 기반하여 예측하지 못한 결함 발견에 유리한 테스트
- (유형) 알파 테스트, 베타 테스트

31
Q

성능 테스트

A

[정의] 개발된 시스템이 주어진 환경에서 요구항목 목표치 달성 여부 확인 비기능 품질 테스트
[목적] (성병용결 + 보안)
- 성능측정(성능 적절성 측정), 병목제거(튜닝, 결함조치), 용량검증/산정(Peak 대응성 확인), 결함 검출(운영 전 사전 오류 검출)
[프로세스] 1. 성능요구분석/계획수립 2.성능목표수립, 스크립트 설계 3.이행(단통임안) 4.결과보고, Controller, Agent, Log 수집기
[유형]

<시험>(단통임안)
1. 단위성능 테스트 : 단위 모듈 튜닝
2. 통합성능 테스트 : 실제가동상황, 목표성능검증
3. 임계성능 테스트 : 최대성능검증,임계점/임계사용자수도출
4. 안정성 성능테스트
<시험> (루(마)티스확가)
1. 루프백 테스트 : 병목지점 도출, 논리적구간별 루프백코드추가
2. 스파이크 테스트 : 트랜잭션 동시발생, 수강신청등
3. 티어 테스트 : 티어간 통신 재현,티어간 병목유무 검증
4. 확장성 테스트 : 확장계수, 증설시 성능향상비율
5. 가용성 테스트 : Long Run테스트, 자원불균형여부, 성능저하/다운 검증
</시험></시험>

32
Q

Little’s Law

A

[일반적 정의] 특정 공간에 유입되는 물체가 존재하는 상황에서 해당 구조의 성능 측정에 활용되는 법칙
- L= λ * W (L: 임의 공간 오브젝트수 λ : 오브젝트의 유동량, W: 오브젝트의 점유시간)
[성능테스트 정의]
- 특정 시스템의 초당 처리 건수(TPS)의 Active user수 등 성능측정 위한 이론 적용 법칙
[기준항목]
- User = Named User, Active User(부하주는 사용자), Concurrent User(실 사용자)
- Time = Mean Response Time(응답시간), Think Time(한번 요청후 다음 요청까지 시간), Request Interval
- Throughput = TPS
[사례]
- Active User(L) = TPS(λ ) * Response Time(W)
- Concurrent user(L) = TPS (λ) * Request Interval(W)
* 사용자가 증가함에 따라 응답시간 저하, TPS 증가
* TPS가 더 이상 증가하지 않고 완만하게 되는 시점을 임계점으로 판단

33
Q

회귀 테스트

A

[정의] 프로그램에 수정/확장 후 Side/Ripple Effect 최소화 목적으로 기존 기능을 반복 테스트 하는 기법
[필요성] (사리)
- Side Effect(부작용), Ripple Effect(파급효과) 최소화, SW 신뢰성 보증
* MSA, DevOps 등 복잡성 증가, 자동화 확산 따른 중요성 증가
[유형] (올셀프)
1. Retest All : TC전부, 완전성, 고비용, 고위험S
2. Selective : 변경대상, ROI, 선정난해, 일반S
3. Priority : 핵심위주, 비용절감, 선정난해, 저위험S
[효율화 전략]
1. 적합한 회귀 테스트 방법 선택 : Retest All, 선택적 테스트(Selection, 슬라이싱 기법, 자료 흐름 분석 기법, 변경 영향 분석), 테스트 우선 순위화(APFD), 테스트 최소화(Minimization – 중복 TC 식별)
2. 테스트 자동화 적용 : Record&Replay(CASE Tool), TestCase 형상관리→ 테스트 자동화, 오픈소스(Selenium, Guitar, Sikuli), 테스트 업무 프로세스에 RPA 활용

34
Q

몽키 테스트

A

[정의] 시험자의 개입 없이 단순히 랜덤으로 이벤트를 발생시켜 의도하지 못한 결함 발견 테스트
[목적] 의도하지 않은 결함 발견, 기능 테스트 자동화 수행, 테스트 수행에 대한 빠른 피드백
* 시스템 이해도 수준에 따른 테스트 유형
[수행시기] 단위 테스트 수행시, 스트레스 테스트 수행시 용이
[유형]
1. Dumb Monkey
2. Smart Monkey
3. Brilliant Monkey
[차별화] 명확한 모듈 경계, 독립적 배포 및 기술 다양성을 고려한 설계 수행

35
Q

페어와이즈 테스팅

A

[정의] Test data 값들 간 최소 한번씩 조합 통한 TC 작성, 커버리지 일정 수준 보장 및 TC 도출 효율성 목적 테스트 기법
[특징] 경제적 TC 도출, 테스팅 효과성 확보, Pair 조합 결함 제거
[원리]
1. 대부분의 결합은 2개 요소의 상호작용에 따라 발생함
2. 필요한 값들이 다른 파라미터 값과 최소한 한번씩은 조합을 이루는 TC 사용
[절차]
1. Pair 그룹선정 : 두 가지 요소의 개별 조합만을 고려
2. 입력값 선택 : 먼저, 두 가지 요소(파라미터)의 각 값들을 중복되지 않게 배열
3. Pair 조합 구성 : 나머지 요소의 값들을 각각의 값과 순차적으로 중복되지 않게 배정
[효과적 활용 방안]
1. 간단한 조합 효과적, 경우의 수 증가 시 휴리스틱 조합 어려움: Tool 활용(Allpairs, PICT, pairwise 등)
2. TC 보완 : 경험기반 리스크 분석 통한 기능 및 모듈 테스트케이스 추가, 수행
* TC 경우의수: All combination(완전성) > Orthogonal array > pairwise(효율성)

36
Q

직교분할 테스팅

A

[정의] 직교 배열표 대입 통한 테스트 케이스 도출, 각 행과 열의 페이와이즈 설계 기법
[특징] 조합이 전체 산출 결과에 균등 분포. 직교 배열표에 대입하여 TC 도출
[사례]
[웹 페이지의 섹션 (Top, Middle, Bottom) 테스트]
1) 요소(factor) 수 = 3 (상단, 중간, 하단)
2) 레벨 수 (가시성) = 2 (숨김 또는 표시됨)
3) Array Type = LRuns (2^3) = LRuns (8) =L4
[효과적 활용 방안]
- 입력 항목이 많고 각 변수 값 들이 다양한 경우 테스트 케이스 숫자를 줄일 수 있음
- 6 Sigma를 포함 산업공학 분야 실험계획 및 분석도구로 활용
- 여러 테스트 기법을 추가 적용하여 보장성 증대

37
Q

임베디드 테스트

A

[정의] 임베디드 시스템에서 SW, HW의 기능적, 비기능적 속성을 검사하고 결함이 없는지 확인하기 위한 테스트
[테스팅과정]
- 1)호스트환경에서 개발 2)호스트환경 시험(에뮬레이터사용) 3)타겟환경으로 포팅 4)타겟환경에서 시험
[문제점]
- 1)타겟시스템의 열악성 2)플랫폼 다양성/플랫폼 불안정성 3)다양한 환경으로 인한 테스트케이스 재사용성 저하 4)산출물 관리 어려움 5)호스트와 타겟환경간 통신속도문제
[해결방안]
- 자동화 시험 장비 활용, 멀티플 V모델 테스트 활용 (모델, 프로토타입, Final 제품)

38
Q

Record & Replay

A

[리드] 사용자의 이벤트 중심
[정의] 이벤트 기반 시스템에서 발생하는 각종 이벤트들과 그 발생 시간을 저장하고 저장된 이벤트를 재실행 시켜서 문제점을 찾아내는 테스팅 기법
* 임베디드 SW 테스트에서 활용
[절차]
1. Record : 테스트관리자 명령 → 이벤트 후킹 → 이벤트 송신(캡쳐) → 이벤트 저장(XML형태)
2. Replay : 테스트관리자 재실행명령 → 이벤트변환(RAW이벤트 변환, 타켓 Agent전송) → 이벤트전달(PG전달) → 결과전달

39
Q

리스크기반 테스팅

A

[리드] 우선순위 기반 테스팅
[정의] 한정된 자원에서 리스크의 Likelihood, Impect기반 우선순위 수립 통한 전략적 테스트 수행 기법
[필요성] 1) 프로젝트 대형화, 다양한 위험증가 대응 2) 자원의 효율적 분배, 활용
[수행절차] (식분대전추)
1. 리스크 식별 : 리스크 기능적/기술적 아이템 분리 (Risk Item)
2. 리스크 분석 : 식별 위험의 정량적 분석 (위험/영향 Matrix)
3. 리스크 대응 계획 : 위험 대응목록
4. 테스팅 전략 수립 : Master Test Plan
5. 리스크 추적 : 모니터링 (위험 관리 대장)
[영역] (이스타파스타)
- ITA (intensive) : 기술적 리스크 큰 경우 (개발 테스팅, Inspection 수행)
- STA (severe) : 반드시 테스트 필요 (완전한 코드 인스펙션 + Walhthrough)
- STTA(strong) : 사업적 리스크 큰 경우 (인수테스팅, Walkthrough 수행)
- FTA (fundamental) : 기본적인 테스트 (유즈케이스 테스팅)
* Risk = 장애발생 가능성 * 장애로 인한 영향
[테스팅 전략 사례]
1. 기술 Risk 우선 : STA → ITA → STTA→ FTA
2. 사업 Risk 우선 : STA → STTA → ITA → FTA

40
Q

뮤테이션 테스트

A

[정의] Mutant Generator 통한 의도적 소스코드 변경, 테스트 및 뮤테이션 스코어 평가 통한 테스트 신뢰성 향상 기법
[구성요소]
1. 뮤턴트 제너레이터 : 오퍼레이터 활용, 뮤턴트 생성
2. 뮤턴트 오퍼레이터 : 속성/서비스/입력/출력 값 변경
3. 뮤턴트 : 원본 프로그램+ 연산자 삽입
4. 뮤테이션 스코어 : 동등 뮤턴트, Dead 뮤턴트, Kill 뮤턴트
[프로세스]
1. 컴포넌트 변용 2. 오류형태 파악 3. 연산자 결정 4. 테스트 수행
[변환연산자] (뮤턴트 오퍼레이터)
1. 속성 변경 2. 서비스 변경 3. 입력 변경 4. 출력 변경
[뮤턴트 스코어]
- 뮤테이션 스코어 = Dead 뮤턴트 / (뮤턴트 수 - 동등 뮤턴트 수)
- 스코어 높을수록 우수

41
Q

비버깅 테스트

A

[정의] 무작위의 의도적 오류코드 삽입, 검출 여부 측정 통한 잔존 오류 도출, 오류 검출 효율성 판단 테스트 기법
[목적] 테스트작업의 효율성 측정, 잔존오류 예측, 배포시기의 결정
[SWIFI 기법] (Software Implemented Fault Injection)
1. 컴파일 타임 인젝션 : 소스코드 수정. 뮤테이션 테스트. a=a+1&raquo_space; a=a-1. 프로그래머 실수와 유사
2. 런타임 주입 : 소프트웨어 트리거 통한 오류 삽입. 시간 기반 트리거(타이머 활용)/인터럽트 기반 트리거(시스템 코드 특정 위치/이벤트 인터럽트 생성)
3. 메모리 공간 손상(RAM, CPU 레지스터, I/O Map), Syscall Interposition 기법(커널 인터페이스 호출 가로채어 결합 주입), N/W 수준 결합 삽입(패킷 손상/손실/순서변경)
[오류 삽입 도구]
- MODIFI (Model-Implemented Fault Injection) : XML 오류 모델링
- Ferrari (Fault 및 ERRor Automatic Real-Time Injection) : 특정 메모리 위치, 시간 초과 시 결합 주입
- Beyond Security beSTORM : 블랙박스 보안 분석. 상용. Fuzzing 수행

42
Q

백투백 테스트

A

[정의] 제어모델과 실제모델 각각 동일 값 입력 실행, 결과 비교 및 불일치 원인 분석 테스트 기법
* 2개이상의 다양한 모듈에 동일한 입력값 실행 -> 결과 비교
[특징] 1) 높은신뢰성(항공기,자동차) 2) 설계명세기반 (비교 테스트)
[프로세스]
1. 테스트 케이스 작성
2. 병렬 테스트수행
3. 테스트 결과값 비교
4. 불일치 원인분석
[기술요소] 동일 요구 명세서, 병행 개발, 병렬 테스트, 구현 정확성 판단(동일입력,동일 출력)

43
Q

퍼즈 테스트

A

[리드] Zero-Day Attack 선제적 대응
[정의] SW에 랜덤 데이터를 입력함으로써 SW의 조직적인 실패를 유발시켜 발생되는 예외, 오류 등을 분석하고 보안취약점을 찾아내는 테스팅 기법
[특징]
- 무작위 테스팅, Exception, Crashing, DUT(Device Under Test)
- (장) 빠르고 효율적인 취약점 탐색 (단) 분석이 난해한 대상이면 수행불가
* Validation 단계에서 동적 테스트와 병행, Zero-day 취약점의 탐지 및 제거 통한 제품 신뢰성 향상 제공
[종류]
1. Blackbox Fuzz Testing
- 입력 값 무작위적, 어플리케이션 실행이 멈추거나(crash) 실행이 일시적 보류(hang)되면 테스트 실패로 간주 그렇지 않다면 테스트 통과
- 단순, 취약점 발견확률이 낮음
2. Whitebox Fuzz Testing
- 소스코드 필요. 취약점 발견 확률 높은 부분 분석
- 분석복잡. 규모 큰 프로그램 적용 어려움(포인트조작, 알고리즘 연산, OS&Library 호출)

44
Q

침투 테스트

A

[정의] 합벅적으로 허가를 받아 시스템의 보안 취약점이 악용될 수 있는지를 침투 또는 공격으로 시도하는 보안 테스트
[조건] 고객사 보안담당자와 사전협의 필수
[프로세스] 탐색 → 스캐닝 → 공격 → 접근권한 유지 (탐스공접)
[테스트 유형] 외부(Block box) 테스트(실제 환경에 접근), 내부(White box)테스트(내부 정보 제공), 혼합형

45
Q

지각 테스팅

A

[정의] 픽셀수준 바이너리 이미지 비교 통한 변경 부분 TC 도출, 자동화 UI 회귀테스팅 기법
[필요배경] Agile 방법론 => 잦은 변경 => 잦은 회귀테스팅 필요 => 지각테스팅 수행
[절차]
1.개발제품 스크린샷→2.스테이징 스크린샷→3.URL매핑→4.그래픽비교(픽셀)→5.차이검사(수동,시각적 차이)
* 테스트 환경 구성 시간 소요, 효과적 테스트 위한 환경 구성 필요
[지각테스팅 효과적 수행방안]
1. 자동화 툴 활용: DPXDT(Restful API), Viff(자바스크립트/DSL), Pix-Diff(멀티브라우저지원)
2. 잦은 변경 환경 회귀테스트: 웹 UI, 지능형 임베디드 I/F 등 잦은 변경 Application의 회귀테스트 시 활용

46
Q

사용성 테스트,사용성 평가

A

[정의] 제품의 UX/UI 품질 향상 위해 테스팅 통한 사용자의 피드백을 수집, 또는 반응을 추적하는 테스트
[목적] 사용자 만족도 제고, 제품 완성도 향상, 쉬운 학습, 사용자 실수 최소화
* UI/UX개선을 위해 UX극대화 포인트 접점 파악
[유형] (탐평검비)
1. 탐색 테스트 : (초반) 디자인 컨셉, 유효성 평가 / 목업, 화면 디자인 (A/B테스팅, RITE, 페이퍼 프로토타이핑 등)
2. 평가 테스트 : (초중반) 컨셉의 효율성 평가 / 정량적 자료, 과제 수행
3. 검증 테스트 : (후반) 사용성 보증, 표준 부합여부 / 실행척도(속도, 정확도 등) (벤치마킹 테스트, A/B테스팅)
4. 비교 테스트 : (전체) 대안 평가 / 인터페이스 스타일, 요소의 평가
[절차]
1. 계획 단계 : 평가 목적 및 대상 분석 , 사용자 정의 / 사용성 테스트 계획서
2. 설계 단계 : 테스트 디자인, 참가자 선정 / 사용성 테스트 설계서
3. 실행 단계 : 진행 스크립트 작성, 사전&본 테스트 / 관찰 Data, 사후 설문
4. 분석 및 보고 : 결과 분석, 보고서 작성 / 사용성 테스트 결과 보고서

47
Q

기기 호환성 테스트

A

[정의] 디바이스에서 APP 정상 동작 여부, 유효성 검증 테스트 기법
[필요성] 모바일 기기 폭발적 증가, 모바일 서비스 증가, 기기 간 특성 차이
[수행방법]
- 하이브리드 앱 : Contents, Navigation, Size, Function & Feature
- 네이티브 앱 : 설치/업데이트, 플랫폼의존성, 버전 관리
[관련도구]
1. 디바이스 : Real Device, Emulator
2. 도구 : Test Express, Appium
3. 서비스 : AWS Device Farm, Google Test Lab

48
Q

A/B 테스트

A

[정의] Web사이트 개발시, 한가지 요소에 대해 두가지 이상의 버전을 시험하여 더 나은 것을 판별하는 기법
[특징] 1.실험군(treatment)과 대조군(control) 분리/별도 설정, 2.고객의 CTR(Click-Through-Rate) 비교 통한 유의미한 차이 검정
[절차] 1.조사수행 2.가설 세우기 3.변형 4. 테스팅 5.결과 분석 및 결과 도출[조가변테결]
[원리]
1. 같은 유저 동일화면 : 동일유저는 동일화면을 봐야하며 비교금지
2. Alternative별 Weight : 선택별 가중치를 두어 불공평한 상황을 보정
3. Dashboard : 시간대별 접속자 기본 정보별 선택사항 통계확인
4. Override by a URL Parameter : 개발별 각 선택사항을 쉽게 전환
[사용자 분리방안] 노출분산 방식(알고리즘 테스트 적합), 사용자분산 방식(UI/UX 테스트 적합), 시간분할 방식(노출/사용자 사용불가 시 대안적 사용) - 구글 Optimize 등 활용
[문제점/해결방안]
- (문) 나쁜 서비스 노출 따른 고객 이탈, 장기 노출 따른 잔존율 확인 난해
- (해) MAB(Multi Armed Bandit) 통한 탐색(Exploration)/활용(Exploitation) 최적화 방안 도출

  • 예) 최초 방문: 무작위 할당, Trial+1 > 재방문(TTL 이내 같은 페이지, TTL 이후 무작위 할당) > 고객 상품 구매 시 Conversion +1 > Conversion Rate 계산 > Reward 값 갱신
49
Q

카오스 테스트

A

[리드] 인위적 혼돈기반 취약 점검
[정의] 실 서비스에 장애를 주입하여 출시 전 테스트에서 드러나지 않은 아키텍처상의 문제를 테스트하는 방법
* 프로덕션 서비스의 각종 장애 조건을 견딜 수 있는 시스템의 신뢰성을 확보하기 위해 분산 시스템을 테스트 하는 방법
[절차] (절차/설명/사례) (정가실결문)
1. 정상 상태 : 정상지표 측정 (CPU load, Memory, NW I/O)
2. 가설 수립 : 정상적인 상태 유지 가설 기반 테스트 시나리오 설계 (DB 다운, 접속 초과, DDoS 공격)
3. 실험 디자인 : 실험 범위/규칙 설정 (작업 범위, 롤백 계획)
4. 결과 확인 : 가설 검증 및 문제점 확인 (장애 감지 시간, 알림/전파/복구 시간)
5. 문제점 수정 : 문제점 수정 및 지속적 개선 (45분간 접속 지연)
* 최소 작업 범위 위주로 Canary Deployment 방식으로 테스트 수행
[테스트 기법]
- Chaos Proxy : Proxy삽입 통신 확인 (OSS)
- Chaos Monky : 가상 서버, 컨테이너 테스트 (Netflex OSS)
- Kube Monky : 쿠버네티스의 Pod 테스트 (무작위 종료)
- Gremlin : Fault 주입 통한 테스트 (API 호출)
* 카오스 테스트는 자동화를 통한 지속적 실험 및 지속적 개선 활동 필요

50
Q

Canary Test

A

[정의] 새로운 소프트웨어의 업데이트나 기능을 소수의 사용자에게 적용하여 시스템의 안정성과 기능성을 검증할 수 있도록 하는 기법
[적용원리] 점진적 배포방식 기반
[특징]
1.A/B 테스트 기능, 2. 위험최소화, 3.실시간 모니터링과 피드백
[구성도]
[수행절차]
1.소규모배포 1)계획/준비 2)소수사용자 그룹 선정 3)새기능 소규모 배포
2.분석/전체배포 4)모니터링/데이터수집 5)분석/평가 6)전체배포/수정
[고려사항/해결방안]
1.대표성 문제 -> 테스트케이스
2.모니터링 복잡성 -> 상용분석툴(ELK)
3.추가인프라비용 -> 테스트전용 인프라로 활용

51
Q

POC

A

[정의] 신기술 사전 검증 목적, 시나리오 기반 기술 신뢰성, 도입 타당성 검증 기법
[특징] 1) 귀납적(결과를 놓고 이를증명) 2) 사전검증(신제품 사전검증) 3) 테스트 기반(임계치 테스트)
[절차] 1. 성공기준 정의 2. 공학적 분석 및 시험 3. 성공기준 기반 평가(통계적/확률적 추론과 평가) 4. 도입여부 결정(결과로 판단)
[추진방법]
1. 프로토타입 방법 : Mock-up등 통한 시연, Gap 발견
2. 파일럿 프로젝트 : 프로젝트문제점, 개선안마련, 피드백제공-Spike방법(Agile, Scrum, XP)

52
Q

BMT

A

[리드] 상용 SW 품질평가 성능시험
[정의] 최적 제품 선정 목적, 동일환경 다수제품 평가 통한 객관적 성능 검증 기법
[특징] 1.객관적 성능 평가(성능, 부하) 2.최적제품 선정(동일환경 다수 제품) 3. 상호 운용성 검증
[법근거] 5억 이상 분리발주 SW, 2개 이상 경쟁업체
[대상] 제품 선정 시점
[절차] 1.BMT 대상선정 2.계획 수립/심의 3.공고/설명회/접수 4.BMT 수행(TTA) 5.결과측정/심의 6.선정

53
Q

PILOT

A

[정의] 검증 기술의 실제 업무 적용 목적, 유사 환경 기반 결함, GAP 검증 기법
[특징] 시범 운용, 사전 시험, 적합성 판단
[대상] 이미 검증된 기술, 도입 확정 기술
[절차] 1. 시험 계획수립 2. 시범 운용환경 설정 3. 시범 운용 4. 의견 수렴 5. 피드백 6. 보완 정비
[차별화] 각 기법별 활용 방안
- PoC, Pilot Test : OSS 도입 전 기술 검토 및 적용 테스트
- BMT : Cots, 장비 도입 전 성능 비교