22/11/07 일반등급 출제기준
정적 테스팅(정적 테스팅 개요, 리뷰, 정적 분석) 7문제
8.1 개요
8.2 리뷰 프로세스
8.3 관리 리뷰
8.4 기술 리뷰
8.5 인스펙션 : 코드 등을 포함한 소프트웨어 산출물 동료 검토, (주재자, 작성자, 낭독자, 기록자, 검토자, 관리자 팀멤버X)
8.6 워크쓰루 : 비형식, 작성자 본인이 주최, 지식 공유를 하기도 함. 관리자 팀멤버X,
8.7 감사
8.8 정적 분석 : 코딩 표준, 순환 복잡도= E-N+2, 분기 노드들의 개수 +1,
CSTS가이드 예제
1. 요구사항 분석서, 설계서, 코드, 테스트 관련 문서 등 소프트웨어 개발 관련 모든 문서와 산출물이 리뷰 대상이 될 수 있다. [ O ]
2. 다음 중 감사(Audit)의 목적을 가장 잘 설명한 것은?
① 대상 작업물이 계획, 법규, 표준이나 명세를 충실히 지키는지를 평가한다.
② 소프트웨어 제품 및 프로세스가 규제, 표준, 가이드라인, 계획 절차를 준수하고 있는지 평가한다.
③ 개발자가 작성한 소스코드가 코딩표준 또는 코딩 지침에 맞게 작성되었는지 검토한다.
④ 현재 계획에 따라 진행 상황을 모니터하여 계획과 일정 상태를 평가하여 필요하다면 자원, 일정이나 프로젝트 범위 등을 변경한다.
3. 기술 리뷰는 관리자 직책을 담당하는 사람이 팀의 멤버로 참여하는 것을 금지하고 있다. [ X ]
-기술 리뷰는 관리자도 참가할 수 있다.
4. 정적 분석을 통해 식별할 수 있는 결함 유형과 거리가 먼 것은?
① 초기화하지 않고 사용한 변수
② 선언 후 사용하지 않은 함수
③ 선언 후 사용하지 않은 변수
④ 요구사항과 다른 연산 결과
5. 다음 프로그램 코드는 K&R 코딩 스타일을 따른다. [ O ]
| if (x == 1) { 프로그램 문장; } |
| BSD | K&R | GNU |
| if (...) { do something(); } |
if (...) { do something(); } |
if (...) { do something(); } |
6. 다음의 자료 흐름도에서 변수 x에 대한 오류 패턴을 하나만 적으시오.
| 1 | def x | ||||
| 2 | use x kill y |
||||
| 3 | use x def z |
||||
| 4 | use y use z |
→4 →6 |
|||
| 5 | kill x def z |
||||
| 6 | kill x def z |
||||
| 패턴 | 설명 | ||
| ~d | 처음 정의됨 | 문제 없음 | |
| du | define-use | 문제 없음, 정상적인 경우 | |
| dk | define-kill | 잠재적 결함, 전혀 자료가 사용되지 않음 | |
| ~u | 처음 사용됨 | 잠재적 결함, 자료가 정의되지 않고 바로 사용됨 | |
| ud | use-define | 문제 없음, 자료가 사용된 후 다시 정의됨 | |
| uk | Use-kill | 문제 없음 | |
| ~k | 처음으로 무료화 | 잠재적 결함, 자료가 정의되지 않고 바로 무효화됨 | |
| ku | kill-use | 심각한 결함, 무효화되었는데 사용 | |
| kd | kill-define | 문제 없음, 무효화된 후에 다시 정의가 됨 | |
| dd | define-define | 잠재적 결함, 두 번 연의어 정의됨 | |
| uu | use-use | 문제 없음, 정상적인 경우 | |
| kk | kill-kill | 잠재적 결함 | |
| d~ | 제일 나중에 발생한 정의 | 잠재적 결함 | |
| u~ | 제일 나중에 발생한 참조 | 문제 없음 | |
| k~ | 제일 나중에 발생한 무효화 | 문제 없음, 정상적인 경우 | |
7. 다음 프로그램에 대해 자료흐름 분석을 수행하여 검출되는 자료 패턴 중에서 잠재적 오류인 패턴은 무엇인가?
| int foo (int x ) { | |
| 1 | int y; ~u |
| 2 | if ( x==1 ) |
| 3 | y = x + 1; x=uu, y=~d |
| 4 | x = 10 ; ud |
| 5 | return y ; dk |
| 6 | y = 10 ; kd |
| 7 | } d~ |
① ~u
② du
③ uu
④ ~k
8. 리뷰를 성공시키기 위해 필요한 요소로 가장 거리가 먼 것은?
① 리뷰 주재자가 리뷰 기법에 대한 교육을 이수한 경우, 리뷰 참석자는 별도의 교육이 필요하지 않다.
② 소프트웨어 개발 산출물과 검토자의 수준 등을 고려하여 리뷰 기법을 적절히 적용해야 한다.
③ 결함의 발견에 부정적이지 않으며, 발견된 결함은 객관적으로 표현되어야 한다.
④ 효과적이고 효율적인 결함 발견을 위해 필요 시 체크리스트를 활용할 수 있다.
9. 다음 중 테스트 실행에 대한 설명으로 올바른 것은?
① 테스트를 실행하는 주체는 테스트 단계(레벨)에 따라서 달라질 수 있다.
② 컴포넌트 테스트는 사용자가 직접 실행시키는 것이 일반적이다.
③ 인수 테스트는 원칙적으로 운영 환경에서 개발자에 의해 실행된다.
④ 통합 테스트는 개발 환경에서 시스템 테스트 완료 후에 수행한다.
10. 인스펙션을 도입하여 프로그램을 개발하는 경우 나타나는 특징으로 올바르지 않은 것은?
① 결과적으로 품질에 투입되는 비용이 감소하며 개발 기간이 단축된다.
② 코딩 전까지는 일반적인 개발보다 소요 인력이 더 많이 필요할 수 있다.
③ 초기 프로젝트 비용이 증가하지만, 개발 단계의 재작업과 투입 인력이 감소한다.
④ 코딩이 시작되면서 투입 인력 수요가 급증하고 테스팅 단계에서 최고치가 된다.
tta 예제문제 2019.3
37. 다음 설명 중에서 인스펙션에 해당하는 것을 모두 고른 것은 무엇인가?
| (가) 완성된 결과물이 아닌 중간 산출물을 대상으로 한다. (나) 참가자의 역할이 명확하다. (다) 검토 결과에 따라 다음 단계로 진행할지 여부를 승인한다. (라) 체크리스트를 사용한다. |
① (가), (나)
② (가), (다)
③ (나), (라)
④ (다), (라)
38. 공식 검토 참가자에 대한 설명 중 올바르지 않은 것은?
① 주재자(Moderator)는 공식 검토를 계획하고 공식 검토 회의를 운영하며, 회의 종료 후 사후 관리를 한다.
② 작성자(Author)는 검토 대상 산출물 작성자로서 문서에 대한 책임이 있으며, 검토 시 해당 산출물에 관해 설명한다.
③ 검토자(Reviewer)는 검토 실행을 결정하고 프로젝트 일정 내에서 검토 시간을 할당하며, 검토 목표가 달성되었는지 판단한다.
④ 기록자(Recorder)는 회의 내용을 기록하고 모든 이슈 사항, 결함, 정의되어야 할 문제점 등을 문서화한다.
39. 정적 테스트에 대한 설명으로 타당하지 않은 것은 무엇인가?
① 동적 테스트 방법에서 검출하기 힘든 오류들을 찾아낸다.
② 가능한 개발 초기에 오류들을 찾아내어 품질을 향상시킨다.
③ 프로그램 개발단계에서 산출되는 결과물에서 결함을 찾아낸다.
④ 코드 분석을 기반으로 프로그램을 실행하여 오류를 찾아낸다.
40. 워크쓰루에 관한 설명으로 올바르지 않은 것은 무엇인가?
① 회의 시작 전에 참가자들이 작업물에 대해 철저한 준비를 해야 한다.
② 보통은 개발자에 의해 회의가 진행된다.
③ 회의를 주재하기 위해 별도의 훈련을 필요로 하지 않는다.
④ 회의의 결과가 잘 처리되었는지 확인하는 작업을 생략할 수 있다
41. 인스펙션에 대한 설명으로 올바른 것은 무엇인가?
① 인스펙션은 그 목적은 가능한 한 개발 초기에 검사하고 제품에서 결함을 찾아내기 위한 취지로 개발되었다.
② 인스펙션은 주재자, 개발자, 기록자, 검토자의 역할이 명확하며, 효과적인 인스펙션을 위해서 개발자가 주재자의 역할을 하는 것이 바람직하다.
③ 인스펙션에서 발견된 문제점은 담당자가 책임지고 수정하므로 추가적인 확인을 하지 않는 것이 일반적이다.
④ 작업물로부터 오류를 발견하여 더 나은 품질의 소프트웨어를 개발하는 것뿐만 아니라, 개발자의 능력을 평가하는 것을 목적으로 하기도 한다.
43. 정적 분석을 통해 식별할 수 있는 결함 유형과 거리가 먼 것은?
① 초기화하지 않고 사용한 변수
② 선언 후 사용하지 않은 함수
③ 선언 후 사용하지 않은 변수
④ 요구사항과 다른 연산 결과
57. 프로그램 코드에 대해 자료 흐름 분석을 수행할 때 dd, kk, ~u, du는 이상 패턴에 해당한다. ( X )
58. 요구사항 분석서, 설계서, 코드, 테스트 관련 문서 등 소프트웨어 개발 관련 모든 문서와 산출물이 정적 테스트 대상이 될 수 있다. ( O )
tta 예제문제 2022.10
19. 리뷰(Review)를 성공시키기 위해 필요한 요소로 가장 거리가 먼 것은?
① 리뷰 주재자가 리뷰 기법에 대한 교육을 이수한 경우, 리뷰 참석자는 별도의 교육이 필요하지 않다.
② 소프트웨어 개발 산출물과 검토자의 수준 등을 고려하여 리뷰 기법을 적절히 적용해야 한다.
③ 결함의 발견에 부정적이지 않으며, 발견된 결함은 객관적으로 표현되어야 한다.
④ 효과적이고 효율적인 결함 발견을 위해 필요 시 체크리스트를 활용할 수 있다.
20. 기술 리뷰(Technical review) 수행 시 포함되는 활동으로 올바르지 않은 것은 무엇인가?
① 프로젝트의 진행 상황을 모니터하고 계획과 현재 일정 상태를 평가하여 필요 시 변경한다,
② 대상 작업물이 계획, 법규, 표준이나 명세를 충실히 지키는지 평가한다.
③ 요구사항을 만족하기 위한 여러 대안을 추천하거나 대안들을 검토한다.
④ 대상 작업물이 의도된 사용에 적합한지 평가한다.
21. 다음 중 워크쓰루(Walk-through)에 대한 내용 중 올바르지 않은 것은?
① 개발 산출물 작성자에 의해 진행 및 제어가 이루어지며 후속 작업 검사는 생략할 수 있다.
② 개발 산출물에 대해 자유롭게 토론하고 결함을 찾으며, 해결책을 서로 조언한다.
③ 주로 작성자의 요청으로 이루어지며, 주로 중간 개발 산출물을 대상으로 한다.
④ 참가자들은 역할이 명확하게 구분되며 개인별로 주어진 역할을 수행한다.
22. <보기> 코드를 정적 분석했을 때 발견되는 문제점의 유형은 무엇인가?
| <보기> Bool p; if(p) puts("p is true"); if(!p) puts("p is false"); |
초기화가 안 된 변수의 사용
23. 순환 복잡도(Cyclomatic complexity)에 대한 설명으로 올바르지 않은 것은?
① 순환 복잡도는 제어 흐름 그래프에 있는 분기 노드들의 개수에 1을 더하여 구할 수 있다.
② 순환 복잡도는 if, while, for와 같은 조건/반복문을 만날 경우 1씩 증가한다.
③ 순환 복잡도의 값을 낮게 조정하더라도 프로그램의 결함 발생 위험성은 변하지 않는다.
④ 순환 복잡도의 값이 높아질수록 프로그램의 테스트 및 유지보수가 어려워진다.
65. 다음 지문에서 설명하는 정적 테스트 기법은 무엇인가?
| - 이 기법의 목적은 소프트웨어 개발 프로젝트 진행 상황을 모니터하고 계획과 현재 일정 상태를 평가하여 필요하다면 자원이나 일정, 프로젝트 범위 등을 변경하는 것이다. - 따라서 이 활동 이후 해당 계획이 적절히 변경되었는지 확인할 필요가 있다. |
관리 리뷰
참고자료
https://product.kyobobook.co.kr/detail/S000001732437
소프트웨어 테스트 전문가(CSTS) 가이드 | 한국정보통신기술협회(TTA) - 교보문고
소프트웨어 테스트 전문가(CSTS) 가이드 | 『소프트웨어 테스트 전문가(CSTS) 가이드』는 〈테스트 개요〉, 〈테스트 설계기법〉, 〈테스트 프로세스〉, 〈SW테스트 전문가(CSTS) 자격시험 예제〉를
product.kyobobook.co.kr
'CSTS' 카테고리의 다른 글
| 10. 명세 기반 테스트 (0) | 2023.06.12 |
|---|---|
| 9. 구조 기반 테스트 (0) | 2023.06.12 |
| 7. 테스트 자동화 (0) | 2023.06.12 |
| 6. 소프트웨어 생명 주기 모델과 테스트 (0) | 2023.06.12 |
| 5. 위험 기반 테스트 (0) | 2023.06.12 |
