먼지 쌓인 키보드
[ISTQB CTFL] 실라버스 B유형 문제 정리/요약 본문
* 테스트 케이스의 정의
- 특정 테스트 컨디션을 위해 개발된 입력값, 기대 결과, 실행 사전 조건, 실행 사후조건의 조합
* 테스팅의 주요 목적
- 결함 예방과 장애 및 결함 발견
- 테스트 대상의 품질 수준에 대한 자신감 획득
* 장애
- 예상했던 기능과 다른 부분
* 테스트 활동과 업무
테스트 설계 : 테스트 케이스에서 수행할 테스트 데이터 식별
테스트 구현 : 테스트 프로시저의 우선순위화와 테스트 데이터 생성
테스트 실행 : 불일치를 분석하여 해당 불일치의 원인 판단
테스트 완료 : 미해결 결함에 대한 상태 변경 요청
* 테스터와 개발자 차이
개발자 < 테스터 : 무엇이 잘못될지 예견할 수 있는 능력
개발자 : 제품/서비스를 설계하고 구축하는데 더 관심이 있음
* 소프트웨어 개발 수명주기
- 각 개발 활동에 대응하는 테스팅 활동이 있어야함.
- 문서의 초기버전이 작성되면 리뷰를 시작
- 테스트 분석과 설계야말로 대응하는 개발
- 테스팅 활동은 소프트웨어 개발 수명주기의 초기 단계에 시작
* 컴포넌트 통합 테스팅(모듈 테스팅)
- 인터페이스 명세를 기반
- 통신 장애를 찾는데 초점을 맞춤
- 테스트 접근 방법으로 기능 및 구조적 테스트 유형을 사용
* 테스트 유형과 테스트 레벨
모든 테스트 유형이든지 모든 테스트 레벨에서 수행할 수 있음
* 확인 / 리그레션 테스팅
확인 : 전에 찾은 결함이 수정되었는지를 확인
리그레션 : 수정에 의해 시스템의 다른 부분에 영향이 없는지 확인
* 유지보수 영향도 분석의 역할
영향도 분석 : 유지보수 시스템의 변경이 그만한 가치가 있는지 결정할 때 사용
수정에 영향을 받는 시스템 영역을 파악하는데 사용
* 정적 테스팅
- 리뷰를 도입함으로써, 명세의 품질이 좋아지며, 개발과 테스팅에 필요한 시간이 줄어듬
- 동적 테스팅만 수행했을때는 발견하지 못했던 코딩 결함을 찾을 수 있다.
* 공식 리뷰의 역할
관리자 ; 리뷰 수행 여부를 결정, 비용 효율성을 지속적으로 모니터링
중재자 : 리뷰 회의가 효과적으로 진행되도록 함
작성자 : 리뷰 후 작업 산출물의 결함을 수정
* 리뷰
서기 역할이 있다 : 워크쓰루, 기술 리뷰, 인스펙션
잠재젹 결함을 찾는 것 : 모든 리뷰 유형의 목적
미팅은 저자가 주도 : 인스펙션은 저자가 주도하지않음
리뷰어들은 개별 리뷰를 통해 잠재 결함을 발견 : 모든 리뷰 유형에 개별 리뷰가 포함
* 탐색적 테스팅
테스터가 테스트를 수행할 때 테스트 설계를 적극적으로 제어하고 새롭고 더 나은 테스트 설계를 위해 테스트하는 동안 얻은 정보를 사용하는 비공식적인 테스트 설계 기법
* 블랙박스
요구사항과의 차이를 확인
사용자 스토리를 테스트 베이시스로 사용
* 화이트박스
테스트 대상의 선택 구조에 기초해 커버리지 측정
테스트 대상 내부의 진행절차 확인
* 경험기반 기법
일어날 가능성이 있는 결함과 그 분포를 기반으로 테스트
* 동등 분할 = 특정 파티션
모든 분할의 각 분할에서 최소 한 개의 값을 사용해 테스트 케이스를 작성
* 상태 전이 테스팅
상태 전이 다이어그램은 일반적으로 유효한 전이만 보여줌
커버리지 측정 : 일반적으로 백분율료 표시. (테스트된 전이 수 / 전체 전이 수)로 계산
*유스케이스 테스팅
- 유스케이스 : 소프트웨어 기능에 대한 요구사항을 통합
소프트웨어 항목간의 상호작용을 설계하는 특정 방법
액터(사용자, 하드웨어, 컴포넌트, 시스템)와 대상(유스케이스를 적용하는 컴포넌트나 시스템)간의 관계
- 기능에 초점을 맞추고 있어 사용자 인터페이스의 사용성은 고려하지않음
* 구문 테스팅과 커버리지
- 구문 테스팅 : 코드의 실행가능한 구문을 실행
- 구문 커버리지(백분율)
(테스트로 실행한 구문의 수) / (테스트 대상의 모든 실행 가능한 구문의 수)
* 결정 테스팅과 커버리지
- 결정 테스팅 : 코드에 존재하는 결정문을 실행하고 결과에 따라 실행되는 코드를 테스트
- 결정 커버리지(백분율)
(테스트로 실행된 결정문 결과의 수) / (테스트 대상의 가능한 모든 결정문 결과의 수)
* 오류 추정
- 테스터가 과거의 경험에 비추어 테스트 대상에 어떤 결함이 있을지, 개발자가 어떤 실수를 했을지 추측
* 테스트 독립성의 이점
- 독립적인 테스터는 가지고 있는 다양한 배경, 기술적인 관점, 성향이 달라 개발자와는 다른 유형의 장애를 찾아낼수있음
- 독립적인 테스터는 이해관계자가 시스템 명세를 정의하고 구현하면서 만든 가정에 대해 확인하고 이의를 제기하고 틀렸음을 입증할수있음.
(비교)
* 테스트 독립성의 단점
- 개발팀과의 고립으로 협업이 어렵고 개발팀에게 피드백 전달이 늦어져 개발팀과 적대적인 관계가 형성될수있음
- 개발자가 품질에 대한 책임감을 잃을 수 있음
* 테스트 매니저/관리자
- 테스트 수행 중 수집한 정보를 기반으로 테스트 요약 보고서 작성
- 테스트 정책과 전략을 개발하고 리뷰
- 테스트 계획서 작성과 업데이트
(비교)
* 테스터
- 다른 사람이 작성한 테스트 케이스 리뷰
- 상세 테스트 수행 일정 수립
- 요구사항, 명세 및 테스트 용이성 모델의 분석, 리뷰, 평가
* 테스트 시작/종료조건
시작조건
- 테스트 가능한 요구사항, 사용자 스토리나 모델
- 이전 테스트 레벨의 종료조건을 충족한 테스트 항목의 가용여부
- 테스트 환경 가용 여부
종료조건
- 계획한 테스트 실행 완료
- 정의한 커버리지 수준의 도달
- 해결하지 못한 결함수가 합의된 수보다 적음
- 추정 잔존 결함의 수가 충분히 적음
- 신뢰성, 수행 효율성 등등에 관련된 품질 특성의 수준이 원하는 수준에 도달
* 테스트 케이스 우선순위와 종속성
- 테스트 케이스는 우선순위에 따라 일정을 수립해야하지만 종속성도 함께 고려해야함
예제문제)
테스트케이스 |
우선순위 |
기술적 종속성 |
논리적 종속성 |
TC1 |
높 |
TC4 |
|
TC2 |
낮 |
|
|
TC3 |
높 |
|
TC4 |
TC4 |
중 |
|
|
TC5 |
낮 |
|
TC2 |
TC6 |
중 |
TC5 |
|
풀이 1. 높음 우선순위는 (TC1, TC3) 2. (TC1과 TC3)은 TC4에 종속 3. 그렇기 때문에 순서는 TC4-TC1-TC3이거나 TC4-TC3-TC1 4. 중간 우선순위는 TC4와 TC6이지만 TC4는 제외하여 TC6이 와야함 5. TC6은 TC5에 종속 6. TC5는 TC2에 종속 7. (TC2-TC5-TC6) 순서가 됨 8. 최종은 (TC4-TC1-TC3-TC2-TC5-TC6)이거나 (TC4-TC3-TC1-TC2-TC5-TC6) |
* 테스트 추정 기법
- 추정 : 테스팅 시작전 계획을 돕기위해 필요한것
- 메트릭 기반 기법
기존 유사한 프로젝트에서 얻은 메트릭에 기반하거나 보편적인 값을 바탕으로 테스트 노력 예측
- 전문가 기반 기법
테스팅 작업의 책임자나 전문가의 경험을 기반으로 테스트 노력 예측
* 리스크
- 미래에 부정적인 결과를 가져오는 이벤트의 발생 가능성
- 리스크 수준은 이벤트 발생 가능성과 이벤트로 인한 영향도로 결정
(= 리스크 수준은 원치 않는 일이 일어날 가능성과 그 영향도의 조합으로 결정)
* 제품 리스크 vs 프로젝트 리스크
- 제품 리스크 : 작업 산출물이 사용자나 이해관계자의 합당한 니즈를 충족하지 못할 가능성
- 프로젝트 리스크 : 발생하면 프로젝트 목적 달성 능력에 부정적인 영향을 줄 수 있는 상황
* 파일럿 프로젝트
- 도구 선택과 사전 검증이 성공적으로 끝난 다음 선택한 도구를 조직에 도입하는 시점
* 파일럿 프로젝트의 목적
- 깊이 있는 도구 지식의 습득
- 도구를 기존 프로세스와 프랙티스에 어떻게 적용할지 평가하고 무엇을 변경할지 결정
- 도구와 테스트 자산의 사용, 관리, 저장, 유지보수에 대한 기준 결정
- 목표한 가치를 적절한 비용으로 달성할 수 있는지 평가
'공부 관련 > 소프트웨어 QA' 카테고리의 다른 글
[ISTQB CTFL] 실라버스 C유형 문제 정리/요약 (1~20번) (0) | 2019.12.04 |
---|---|
오류/결함/장애 비교 예제 (0) | 2019.12.03 |
OR AND 커버리지 문제 (구문, 결정, 조건, 조건/결정, 변경 조건/결정, 다중 조건) (0) | 2019.11.04 |
정적 vs 동적 비교 (0) | 2019.11.03 |
오류 / 결함 / 장애 (error/defect/failure) 의 차이 (0) | 2019.11.03 |