본문 바로가기
IT 자격증 학습자료/01. CSTS(소프트웨어 평가사) 학습자료

[CSTS 7일안에 끝내기-1], 소프트웨어테스트전문가, csts 자격증, 소프트웨어 테스트, csts, csts시험, csts 기출문제, csts 시험일정, csts 교재, csts 난이도, csts 교육, csts 강의

by OBIG 2020. 8. 28.

지난번에, CSTS(Certified Software Test Specialist) 시험의 전반적인 내용과, 등급별 차이점, 출제 기준에 대해서 알아보았습니다.

 

2020/08/27 - [BIGDATA/CSTS(소프트웨어 평가사)] - [CSTS 7일안에 끝내기],소프트웨어테스트전문가, csts 자격증, 소프트웨어 테스트, csts, csts시험, csts 기출문제, csts 시험일정, csts 교재, csts 난이도, csts 교육, csts 강의

공부를 해보니, IT공부를 해오신 분들이라면 크게 양이 많거나 어려운 내용은 아니라서 1-2주일이면 준비할 수 있을 것 같습니다. (일반등급에 국한해서 말씀드립니다.)

 

하지만, IT 공부가 조금 낯설거나 초보자들에게는 3-4주정도 시간을 잡고 문제 풀이 위주로 공부하는 것이 좋을 것 같습니다.

 

실제 강의를 찍어서 올리지는 못하고, 학습한 컨텐츠를 올리므로 아무래도 IT공부를 기존에 하신분들은 이해가 빠르게 되실 것 같은데, 만약 이해가 잘 되지 않는 부분이 있다면 메일 또는 댓글로 저에게 말씀해주세요. :-)

 

 

1. 테스트 개요
 테스트 개념 및 용어 (7문제)

1. 테스트 개념

(1) 테스트 목적 (1-2문제)

-소프트웨어 테스트는 소프트웨어가 다양한 품질 기준에 맞춰서, 프로그램으로서 잘 실행되고 그 결과가 올바른지 판단하는 과정을 의미합니다.

-소프트웨어의 에러를 발견하고, 그 에러를 개선하면서 소프트웨어의 전체적인 품질을 측정하는 일련의 활동입니다.

(2) 오류, 결함, 장애 (중요) (2-3문제)

오류

(Human Error)

-사람에 의해 발생되는 실수

Ex) 곱하기를 입력해야 하는데, 더하기를 입력한다.

-요구사항을 제대로 파악하지 못한 실수

Ex) 고객이 A를 만들어 달라고 요구했는데, A’를 만들었다.

-, 요구사항 불이행, 코딩 및 타이핑 실수

결함

(Fault, Defect)

-에러로 발생한 잘못된 로직

Ex) 더하기를 입력하는 바람에, 2 4를 입력했는데 곱해지지 않는다.

오작동

(Failure)

-프로그램 실행결과와 요구사항 기대결과간의 차이

Ex) 요구사항 기대결과(곱하기) 8이지만, 프로그램 실행결과(더하기) 6이 나왔다.

-오작동은 결함에 의해서 발생하지만, 결함이 있다고 반드시 오작동이 발생하는 것은 아니다.

Ex) 만약 22을 넣었다면? -> 결함이 있지만 기대 값과 결과 값이 일치한다.

 

*오류의 종류

요구사항 오류

-사용자의 요구사항을 제대로 정의하지 못함

-사용자와 개발자간의 의사소통 장애

-시간 및 예산 등의 문제로 고의적 요구사항 누락

설계 오류

-요구사항을 설계 반영 시, 누락 및 반영하지 못함

코딩 오류

-개발을 잘 못함

-잘못된 요구사항을 개발함

기타 오류

-기타 표준사항 (SQL, 코딩, 문서 표준등을 준수하지 못함)

Ex) 변수명을 정해줬는데, 그대로 하지 않음

-테스트 프로세스가 충분하지 않음

 

 

(3) 테스트와 품질 (중요)(1-2문제)

 

-‘좋은소프트웨어라면 기본적으로 충족해야 하는 품질 특징입니다.

-각 특징의 의미를 소프트웨어의 관점에서 파악해야 합니다.

소프트웨어 품질특징 (ISO 9126)

기능성

소프트웨어의 목적이 달성했는가?

Ex) 로그인, 조회, 주문 등

사용성

사용하기 편리한가?

Ex) UI구성, 반응형 웹, 디스플레이 해상도, 브라우저 호환성 등

신뢰성

요구되는 서비스가 잘 되는가?

Ex) 에러 발생 최소화

이식성

변화하는 환경에서도 잘 작동 되는가?

Ex) 윈도우 버전, 운영체제 별 작동

유지보수성

유지보수하기에 편리한가?

Ex) 표준화

효율성

시스템적으로 효율적인가?

Ex) 빠르긴 빠른데, CPU 80% 다 사용한다 -> No!

 

 

*ISO 9126(소프트웨어 품질평가 모델) ISO 14598(소프트웨어 평가절차 모델)을 통합한 ISO 25000(국제 표준화 기구(ISO)에서 제정한 S/W 품질평가를 위한 S/W품질평가 통합모델 표준)

 

출처: 위키백과

 

 

테스트 분류(11문제)

(1) 테스트 분류 개요

V-model [출처: ResearchGate]

 

 

소프트웨어 테스트는 위 V-model 에 나타난 것 처럼 개발 과정의 각 단계 (요구사항 정의 -> 분석 -> 설계 -> 모듈 개발)에 따라 적합한 테스트 유형이 있습니다.

 

[각 개발 단계 별 테스트 기법] *중요(2-3문제)

요구사항정의

인수테스트 (사용자)

분석

시스템테스트(개발자, 품질관리자, 외부인)

설계

통합테스트(개발자, 품질관리자, 외부인)

모듈

단위테스트(개발자, 품질관리자, 외부인)

 

각 테스트 유형을 상세히 살펴 보기 전에, 소프트웨어 테스트에서 중요한 검증(Verification)’, ‘확인(Validation)’에 대한 개념을 짚어보도록 하겠습니다.

 

*중요(1-2문제)

구분

개념

검증

(Verification)

검증은 말 그대로, 기능이 제대로 만들어졌는지 확인하는 일입니다.

프로그램의 정확도, 프로세스 또는 문서들이 요구사항을 제대로 따르는지를 재검토, 조사, 테스트, 감리 등을 하는 행위입니다.

소프트웨어의 ‘Function’에 초점을 맞추는 작업입니다.

 

확인

(Validation)

확인은 구현이 잘 되어 있는지를 확인하는 일입니다. , 사용자의 만족도, 사용자 사용의 시나리오, 행위에 초점을 맞추고 소프트웨어 개발 프로세스의 끝부분에서 소프트웨어를 평가하는 과정입니다.

 

, 검증은 기능이 제대로 작동하는지를 검증하는 것이고 확인은 사용자 만족도에 제대로 부합하는지를 확인하는 것입니다.

 

(2)테스트 레벨(중요)(4-5문제)

 

V-model에서 확인한 각 개발 단계 별 요구되는 테스트 레벨에 대해 자세하게 알아보도록 하겠습니다.

 

구분

개념

단위테스트

(Unit Test)

개발된 모듈(독립적으로 실행되는 단위)에 대한 테스트입니다.

예를 들어, 로그인 모듈, 로그아웃 모듈, 제품 조회 모듈, 주문 모듈 등 각 기능을 모듈로 구분하여 각 단위가 잘 작동하는지 테스트하는 것입니다.

 

프로그램을 개발하는 것은 모듈(실제 작동 코드)과 그 모듈을 호출하는 모듈(호출 모듈)이 필요합니다.

 

(1)만약에 실제 작동 코드(로그인 모듈)을 개발했지만, 이 로그인 모듈을 호출할 모듈이 없는 경우에는 = 테스트 드라이버 (Test driver) 가 필요합니다.

 

(2)이번엔 반대로, 호출할 모듈을 있지만, 실제 작동 모듈이 없는 경우에는 호출하는 모듈을 테스트하기 위해 = 테스트 스텁 (Test stub)이 필요합니다. 함수와 헤더 등 코드 루틴만 정의하고 내부 코드는 구현되지 않은 경우입니다.

 

 [출처: tino blog]

통합테스트

(Integration Test)

모듈을 통합하여, 시나리오별로 연결하고, 모듈 간의 상호작용을 테스트합니다.
예를 들어, 로그인부터~주문완료하는 과정을 테스트합니다.
통합테스트는 크게 2가지 방법으로 나눌 수 있습니다.

주의할 점은, 개별적인 모듈에 대해서 테스트가 불충분하여 오류가 발생할 수 있으며 개별 모듈이 동일한 전역변수를 사용하는 경우 오류가 발생할 수 있다는 점입니다.

 

시스템테스트

(System Test)

시스템 테스트는 기능적 부분과 비기능적 요소 모두를 포함하여 테스트를 수행합니다. 기능적 부분의 요소는, 사용자의 요구사항이 제대로 반영되었는지의 초점을 맞추는 것이고 비기능적 요구사항은 시스템의 전반적인 성능, 보안성, 신뢰성, 사용성을 포함하는 것입니다.

인수테스트

(Acceptance Test)

인수테스트는, 위 세 가지의 테스트와 달리 실제 환경에서 사용자가 직접 테스트를 수행하는 것을 의미합니다. 요구사항을 만족하는지를 검수하고 시스템 테스트에서 사용한 데이터 입력값(테스트케이스)을 사용할 수 있습니다.

인수테스트는 알파 테스트, 베타 테스트로 나뉠 수 있습니다.

 

(1)알파 테스트: 사용자가 통제된 상황(개발자 환경)에서 직접 테스트를 하는 테스트입니다.

(2)베타 테스트: 개발자가 참여하지 않은, 제약 없는 상황에서 일정기간 동안 일정한 수의 사용자가 테스트하는 기법입니다.

 

(3) 테스트 유형 (1-2문제)

구분

개념

기능 적합성 테스트

사용자의 요구사항, 즉 기능을 제대로 충족하는지 확인하는 테스트입니다.

성능 효율성 테스트

속도 및 프로그램이 돌아가는 성능에 대한 것을 테스트합니다.

호환성 테스트

브라우저 별, 환경 설정 별 프로그램이 잘 호환되는지 테스트합니다.

신뢰성 테스트

시스템이 어느 기간 동안에 요구되는 서비스를 제공하는 능력을 측정하기 위한 테스트입니다.

보안성 테스트

암호화, 암호화 통신 등 보안성을 확인하는 테스트입니다.

유지보수성 테스트

이미 운영되고 있는 시스템에서 수행되는 것입니다. 소프트웨어나 시스템이 변경, 단종되었거나 마이그레이션 될 때 발생합니다. 변경된 부분에 대한 테스팅 이외에도 변경하지 않은 시스템 요소에 대한 리그레이션 테스팅도 고려해야 합니다.

이식성 테스트

현재 하드웨어 또는 소프트웨어 환경에서 전송할 소프트웨어의 유연성을 테스트합니다.

사용성 테스트

UI (User Interface), 반응형 웹, 디스플레이 해상도 등 사용자의 사용성을 테스트합니다.

 

각 단계 별로 지정된 문제수와 핵심 내용에 표시를 해두었습니다. 다음에는 이에 해당하는 실제 기출문제를 함께 풀어보도록 하겠습니다!

 

모두들 화이팅 :-)

 

-끝

 

 

* 문의사항 있으시면 메일 또는 댓글 주세요

김민지 메일_bigdataleader@naver.com