티스토리 뷰

Certs

ISTQB CTFL 합격 후기 및 4주만에 합격 꿀팁

philBaek (백광록) 2020. 11. 1. 11:55
728x90

ISTQB CTFL

 

테스트 자격증을 준비하는 데 있어 어떤 테스트 자격증을 왜 준비해야 하고, 어떻게 준비해야 할지 모르는 분들이 꽤 있을 것 같다. 그런 분들께 도움이 되고자 누추한 내 경험을 간략하게 풀어보려 한다.🥺

 

ISTQB란?

ISTQB는 국제 소프트웨어 테스팅 자격 협회로 테스트 자격증을 취급하는데, 이는 Foundation, Advanced, Expert 등 다양한 레벨과 Core, Agile, Specialist 등 여러 분야로 나뉘어 있다.

 

출처 : https://www.sten.or.kr/bbs/board.php?bo_table=sten_ist

 

테스트 자격증을 굳이 왜?

테스트 주도 개발(TDD)에 관심을 가지고, 자격증을 준비하게 된 데에는 크게 2가지 이유가 있다.

 

1. TDD의 중요성

‘대형 프로젝트, 대규모 팀을 특징으로 하는 최근 트렌드에 있어 TDD는 선택이 아닌 필수라고 생각한다.’

TDD는 발생 가능한 결함 비용을 초기에 이고, 콘솔 출력문을 통해 일일이 확인하던 방식에서 벗어나 테스트 기법을 체계적으로 자동화하는 하나의 개발 방법론이다. 물론 조금 규모가 큰 기업이라면 QA 팀이 따로 존재하겠지만, 유닛 테스트 및 통합 테스트 정도는 개발자도 할 수 있어야 코드의 품질을 확보할 수 있다고 생각한다.
(하지만, 일각에서는 TDD를 비판하는 경우도 있다. TDD에 대한 더 자세한 내용은 따로 포스팅해보겠다.)

 

2. 부족한 기초 지식

‘자격증 공부는 마치 교과서 공부와 같기에 초심자에게 좋은 접근법이라 생각한다.’

IT 서비스 업계와는 달리, 내가 몸담고 있는 IT 제조업에서는 모던한 SW 기술을 운용하는 팀을 찾기가 힘들다. 가뜩이나 나는 전자공학부 출신이기에 SW 공학을 깊게 배우진 않았었다. 이대로 있다가는 도태될 것 같아, C언어에서 테스트 기법을 적용하는 방법에 대해 찾아보기 시작했는데, 제임스 그레닝의 ‘임베디드 C를 위한 TDD’가 큰 도움이 되었다. (나중에 이 책에 대해 한번 다뤄보겠다.) 하지만 테스트에 대한 아무런 지식도 없는 상태에서 기술 활용에 대한 책을 읽으려니 도저히 읽히지가 않아, 테스트 자격증을 준비하며 기본 지식을 쌓기로 결심하였다.

 

3. 스펙

대부분의 학사 졸업자들은 대기업에서 연구개발보다는 다양한 플랫폼을 대상으로 검증 업무를 수행할 텐데, 이때 테스트 지식이 요구되다 보니 ISTQB 또는 CSTS가 있으면 우대해주는 경우가 있다.

ex) 삼성전자 DS 부문 SW 개발 직무

 

2020 삼성전자 DS부문 S/W 개발 우대사항

 

근데 왜 ISTQB를 선택했는가?

테스트 자격증에는 국내 자격증인 CSTS와 국제 자격증인 ISTQB가 있다. 둘 다 취득하면 물론 좋겠지만, QA 직무가 아니고서야 굳이 2개 다 취득할 이유가 없다고 생각한다. 그럼 두 자격증은 어떤 점에서 다를까?

 

1. CSTS

- 테스트 관리 내용 위주

- 테스트 설계 기법 내용 부족

 

CSTS는 TTA에서 주관하는 시험으로 내가 응시했을 당시에는 정보가 많이 없었다. 일단 CSTS 교재를 구매하긴 했었는데, 내용을 보니 ISTQB에 비해 범위는 넓지만 내가 배우고 싶었던 테스트 설계 기법에 대한 내용은 간단하게만 다루고, 테스트 관리 등 그 이외의 내용이 대부분이었다. 국내 QA 분들에게는 도움이 될 것 같지만, 테스트 설계 기법에 대한 구체적인 정보가 필요했던 내게 CSTS는 그다지 매력적이지 않았다.

 

2. ISTQB

- 내용의 반이 테스트 설계 기법

- 국제 자격증

 

ISTQB는 CSTS와 달리, 테스트 설계 기법 파트에 책의 2분의 1에 달하는 양을 할애하였고, 이로 인해 실무 지식을 필요로 했던 내게 적합한 자격증이라고 생각했다. 이와 더불어 국제 자격증이다 보니 외국계 기업에서 어필할 수 있겠다고 생각하여 ISTQB를 취득하기로 결정했다.

반응형

학습 방법

2020년 5월 19일 시험을 목표로 4월 초부터 약 1달간 정말 열심히 준비했었다. 사용했던 교재는 다음과 같다.

 

개발자도 알아야 할 소프트웨어 테스팅 실무, 문제로 배우는 소프트웨어 테스팅 2

 

1. 개발자도 알아야 할 소프트웨어 테스팅 실무

2. 문제로 배우는 소프트웨어 테스팅 2

 

교재는 위 2권만 풀었고, ISTQB 홈페이지에서 제공하는 Syllabus는 따로 보지 않았다. 시간도 부족했지만, ISTQB의 선 넘는 응시 가격 탓에.. 한 번만에 합격하자고 다짐했었다. 응시 난이도는 전공자도 살짝 어려울 정도라고 했기에 한번 할 때 제대로 하자는 마음으로 CSTS 교재도 샀지만 시간이 부족해 풀지는 못했다 ㅎ 응시 결과, 그렇게 겁먹을 필요는 없다! 위 두권만 제대로 풀면 충분히 합격할 수 있는 난이도이다. 심지어 시간도 조금 남는다. 공통점, 차이점 위주로 개념만 열심히 잘 외우면 된다!

 

‘개발자도 알아야 할 소프트웨어 테스팅 실무’ (개알)를 3주에 걸쳐 학습하고, ‘문제로 배우는 소프트웨어 테스팅 2’ (문배)를 1주 동안 나눠 풀어 개알에서 학습한 개념을 점검하였다. 문배는 양이 많지 않아 1주만으로도 충분하다.

 

개알이나 문배의 ISTQB 모의고사를 보면, 키워드 문제도 꽤 있었지만 응용문제가 발목을 많이 잡았었다.

여기서 키워드 문제와 응용문제의 예시를 꼽자면 다음과 같다.

 

(예시)

키워드 문제 : 다음 중 사용자 인수 테스트 케이스 작성을 위한 산출물로 가장 좋은 것은?

1. 실행 결과

2. 프로그램 명세

3. 사용자 요구사항

4. 시스템 명세

 

응용문제 : 개발 중인 소프트웨어에서 모듈 하나의 코드가 약 30,000 라인까지 구현되었다. 100% 구문 커버리지를 달성하려면 얼마나 많은 테스트 케이스가 필요한가?

1. 코드 상에 분기문이 없다는 가정하에 적어도 약 30,000개의 테스트 케이스가 필요하다.

2. 제시된 소프트웨어의 구조 정보가 없으므로 알 수 없다.

3. 문제에서 언급한 모듈은 규모가 매우 크므로 현실적으로 100% 구문 커버리지 달성이 불가능하다.

4. 다른 모듈과 인터페이스도 고려해야 하므로 구문 커버리지를 알 수 없다.

 

예를 들어, 응용문제 중에서도 특정 상황을 주고 여기에 적용 가능한 테스트 기법, 대처법을 골라야 하는 문제 등이 상당히 힘들었다. 따라서 각 기법에 대하여 애매하게 외우기보다는,

 

1. 어떤 상황에서 어떤 목적으로 쓰이는지

2. 해당 기법의 상위 개념은 무엇인지 등을 확실하게 외워야 한다.

 

ISTQB 시험은 수학 계산 및 코드를 구현하는 시험이 아니라, 암기력을 테스트하는 시험이다. 따라서 한 단원이 끝날 때마다 각 개념들을 헷갈리지 않도록 체계화하여 마인드맵을 그리고, 부족한 부분에 대해서만 집중적으로 공부하였다.

 

추가로, ISTQB는 국제 자격증이다 보니 구글에서 덤프를 쉽게 구할 수 있다. 만약 개알만으로는 부족하다 싶으면, 덤프를 풀어보는 것도 추천한다. (덤프랑 실제 시험 문제랑 조금 다르더라. 그렇지만 부족한 부분을 찾기에는 매우 좋았다.)

 

시험 후기

대체 서울은 왜 그렇게 복잡합니까?!!!

 

이제부터 저 삼거리는 테헤란로 버뮤다 삼각지대라 부를거다.

 

시험 장소인 STA 교육센터가 골목 안쪽에 있어서 찾아가기가 너무 힘들었다.. 위 삼거리에서만 15분이나 헤맸다. 이디야 커피 옆에 지하 주차장으로 들어가야 하더라.. 대구 토박이인 나에게 서울은 너무 힘든 곳😭 외지 분들은 미리 장소를 체크하는 것이 좋다..

 

 

여러모로 힘들었던 날이라 큰 기대는 안 하고 있었는데 다행히 하늘께서 도와주셨느지 34/40의 점수로 합격할 수 있었다.🥺 규정상 문제에 대해 말할 순 없지만, 간단히 팁을 주자면 다음과 같다. (사실, 문제만 안 알려줬지, 아래 내용대로만 공부하면 무조건 합격한다. 진짜로.)

 

1. 개념을 외울 때 예시와 함께 외울 것 (ISTQB의 문제는 대부분 응용문제라는 걸 잊지 말자!)

 

2. 모든 수행 절차를 각 스텝에서 수행하는 내용과 함께 모두 빠짐없이 외울 것 (설마 이런 것까지 묻겠어하는 것도 나온다.. 걱정마라.. 그냥 다 외우면 된다 ㅎ)

ex) 다음 중 리스크 분석 단계와 관련된 내용이 아닌 것은?

1. 장애 발생 가능성과 장애로 인한 영향 또는 손실을 예측하여 리스크 우선순위를 결정한다.

2. 리스크를 기술적 요소와 사업적 요소로 분리하여 분석한다.

3. 리스크 분석 시, 점수 선정의 변별력을 높이기 위해 특정 스케일을 이용한다.

4. 리스크 아이템별 리스크 요소의 점수를 이용하여 리스크 매트릭스에 표시한다.

 

3. 여러 가지 모델이 나오는 경우, 차이점 위주로 외울 것 (앞서 말했듯이, 단순 키워드 문제보다는 응용문제가 많다!)

 

4. 테스트 또는 리뷰에서 각 파트 담당자의 역할 위주로 외울 것 (더 설명할 게 없다. 필수다!)

 

5. 테스트 설계 기법은 많은 문제를 직접 풀어볼 것 (문제가 부족하다면, 덤프를 적극 활용)

 

6. 비슷해 보이는 용어가 많이 나오는데, 이들을 잘 구별해서 외울 것 (공부하다 보면 얼핏 명칭이 비슷하거나, 개념이 비슷한 것들이 나오는데 얘네들이 단골 문제로 잘 나온다.. 이들 간의 차이점을 구별할 줄 알아야 한다..)

 

7. 한국어 시험은 번역 퀄이 좋지 못하다. 따라서 영어 시험을 선택하는 것도 좋은 방법이긴 한데, 각 개념에 대한 영어 표현법도 같이 공부해주는 것이 좋다. (안 그러면 시험장에서 당황한다)

 

더 궁금한 게 있으면 댓글로 남겨주세요 :) 참고로 ISTQB는 취득했지만, 삼성은 광탈 ㅎ

728x90