8. 정적 테스트

2023. 6. 12. 00:10·CSTS

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

https://edu.tta.or.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
'CSTS' 카테고리의 다른 글
  • 10. 명세 기반 테스트
  • 9. 구조 기반 테스트
  • 7. 테스트 자동화
  • 6. 소프트웨어 생명 주기 모델과 테스트
히러
히러
  • 히러
    노트
    히러
  • 전체
    오늘
    어제
    • 분류 전체보기
      • CSTS
      • 초보자를 위한 SQL 200..
      • SQL
      • PLSQL
      • R
      • RAC
      • 리눅스
      • 데이터가드
      • 파이썬
      • 데이터펌프
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ora-01665
    윈도우 오라클 설치
    테이블 용량
    펌프 용량 확인
    mkdir 권한 설정
    정보처리기사
    standby control file 오류
    data guard control file 재생성
    리눅스 명령어
    오라클 예제 테이블
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
히러
8. 정적 테스트
상단으로

티스토리툴바