728x90
1 ) 테스트 관련 용어
- Debug : 디버그 또는 디버깅은 컴퓨터 프로그램의 논리적인 오류를 찾아내는 과정
- Debugger : 디버거는 디버깅을 하려는 코드에 중단점을 지정해 단계를 지정된 값을 확인할 수 있도록 지원
- Walk-Through : 소프트웨어 생명주기의 각 단계마다 산출된 명세서를 가지고 오류를 찾아내는 비정형 검토회의
2 ) 정형 기술 검토(FTR)의 검토 지침
- 오류 검출에 초점을 두고 해결책은 나중으로 미룸(제품 검토의 집중성)
- 검토를 위한 자료를 사전에 배포하여 검토(사전 준비성)
- 의견을 제한하되 충분히 받아들임(의제의 제한성)
- 안건을 세우면 고수(안건 고수성)
- 논쟁과 반박을 제한(논쟁 반박의 제한성)
- 문제 영역을 공개(문제 공개성)
- 참가자의 수를 제한(참가 인원 제한성)
- 발견된 오류는 문서화(문서성)
3 ) 테스트 원칙
- 테스트는 계획 단계부터 함
- 결함을 밝히는 활동
- 개발자가 테스트하지 않음
효율적인 결함 제거 법칙 사용
- 낚시의 법칙 : S /W 제품의 결함도 특정 기능, 모듈, 라이브러리에서 결함이 많이 발견된다는 것이 낚시의 법칙
- Pareto의 법칙 : S/W 제품에서 발견되는 전체 결함의 80%는 S/W 제품의 전체 기능 중 20%에 집중
- 완벽한 테스트는 불가능
- 결함 집중을 고려
- 살충제 패러독스를 고려
- 오류- 부재의 궤변을 고려
4 ) 테스트 실행 기법
화이트박스 테스트(White Box Testing, 투명 상자)
- 단위 테스트의 가장 기본적인 방법
- 소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행
- 소스코드를 보면서 테스트 케이스를 다양화하게 만들어 테스트
- 세부적 오류, 논리 구조상의 오류, 반복문 오류, 수행 경로 오류 등을 찾을 수 있음
- 화이트 박스 종류 : 기초 경로 테스트, 루프 테스트, 데이터 흐름 테스트, 조건 테스트
블랙박스 테스트(Black Box Testing, 불 투명 상자)
- 프로그램 외부 사용자 요구사항 명세를 보면서 테스트
- 불투명 상자는 박스 안에 내용을 볼 수 없듯이 프로그램의 동작만으로 오류를 찾는 방법
- 부정확하거나 빠진 오류, 인터페이스 오류, 자료 구조상의 오류, 성능 오류, 시작과 종결 상의 오류 등을 찾을 수 있음
- 블랙박스 종류 : 동등 분할, 경곗값 테스트, 오류 예측, 원인 결과 그래프, 비교 테스트
5 ) 기초 경로 테스트의 복잡도 계산
- 복잡도는 프로그램이 수행되는 경로의 수
복잡도 = 화살표로 둘러싸인 영역의 수 + 1
- 오일러 공식을 이용
복잡도(R) : E- V + 2 (E : 간선, V : 노드)
6 ) 경계값 테스트
- 범위의 한계 부분을 집중적으로 검사하는 경우를 정하여 검사하는 방법
- 만약 점수의 범위가 0점부터 100점 사이라면 한계가 되는 0점에 인접한 자료나 100점에 인접한 자료를 집중적으로 검사 경우를 정하여 검사하는 방법
7 ) 하향식 통합과 상향식 통합 테스트
하향식 통합 | 상향식 통합 |
테스트 시 프로그램 전체 실행 가능 | 전체 실행 불가능 |
독립적인 구조를 가짐 | 독립적인 구조 불가능 |
가짜 모듈(Stub)필요 | 가짜 모듈(Stub)필요 없음 |
드라이버(시험 가동기)가 필요하지 않음 | 드라이버(시험 가동기)가 필요 |
하위 모듈 그룹(클러스터) 형성이 필요 없음 | 하위 모듈 그룹(클러스터) 형성이 필요 |
중요 모듈을 우선 테스트할 때 적합 하지 않음 | 중요 모듈을 우선 테스트할 때 적합 |
- Stub(가짜 모듈) : 모듈명만 있고 모듈 안에 프로그램은 존재하지 않는 모듈
- Driver(시험 가동기) : 독립적인 실행을 위해서 임시적으로 사용하는 시험 가동기
8 ) 인수 테스트 수행 방법
- 알파 테스트 : 개발자 환경, 사용자 실행, 사용자와 개발자가 함께 확인
- 베타 테스트 : 사용자 환경, 사용자 실행, 오류가 발견 시 개발자에 통보
9 ) 테스트 케이스
- 명세 기반 테스트를 위한 설계 산출물
- 실제로 다양한 데이터를 입력하여 그 결과를 확인해 보는 과정
구성 항목
항목 | 설명 |
식별자 | 항목 식별자, 일렬번호 |
테스트 항목 | 테스트할 모듈 또는 기능 |
입력 명세 | 입력값 또는 테스트 조건 |
출력 명세 | 테스트 케이스 실행 시 기대되는 출력값 결과 |
환경 설정 | 테스트 수행 시 필요한 하드웨어나 소프트웨어 환경 |
특수 절차 요구 | 테스트 케이스 수행시 특별히 요구되는 절차 |
의존성 기술 | 테스트 케이스 간의 의존성 |
10 ) 테스트 오라클(Test Oracle)
- 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법 및 활동
테스트 오라클의 유형
- True 오라클 : 모든 입력 값에 대하여 기대하는 결과를 생성함으로 써 발생한 오류를 모두 검출
- Sampling 오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
- Heuristic 오라클 : 샘플링 오라클을 개선한 오라클, 특정 입력값에 대해 올바른 결과를 제공, 나머지 값을에 대해서는 추정으로 처리
- Consistent 오라클 : 소프트웨어 변경이 있을 때, 수행 전과 후의 결과 값이 동일한지 확인
11 ) 정적 분석 지원 도구
- 오픈소스 : pmd, Find Bug, checkstyle, cppcheck, Corbetura
- 상용 소스 : Coverity, IBM Rational Software, PolySpace
12 ) 품질 목표 항목
- Correctness(정확성) : 사용자의 요구사항을 충족시키는 정도
- Reliability(신뢰성) : 소프트웨어 품질 목표 중 주어진 시간 동안 주어진 기능을 오류 없이 수행하는 정도
- Effeciency(효율성) : 최소의 작업으로 요구되는 기능을 수행하는 정도
- Integrity(무결성) : 허용하지 않은 사용이나 자료의 변경을 제어하는 정도
- Maintainability(유지보수 용이성) : 소프트웨어의 오류를 쉽게 수정할 수 있는 정도
- Usability(사용 용이성) : 소프트웨어를 쉽게 사용할 수 있는 정도
- Testability(검사 용이성) : 소프트웨어를 쉽게 검사할 수 있는 가의 정도
- Portability(이식성) : 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정될 수 있는 정도
- Interoperability(상호 운용성) : 다른 소프트웨어와 데이터 교환 가능한가의 정도
- Flexibility(유연성) : 소프트웨어를 쉽게 수정할 수 있는가 의 정도
- Reusability(재사용성) : 전체나 일부 소프트웨어가 다른 응용 목적으로 사용될 수 있는 정도
13 ) 외계인 코드
- 아주 오래되었거나 참고 문서 또는 개발자가 없어 유지 보수 작업이 어려운 프로그램
- 개발 시 문서화를 하지 않았거나 개발자가 없거나 비구조적으로 작성한 경우
14 ) 인터페이스 기술의 표준
1. EAI
- 기업에서 운영되는 서로 다른 플랫폼 및 프로그램 간의 정보 전달, 연계 통합을 가능하게 해주는 설루션
- 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높이고 각 시스템 간의 확장성을 높여줌
구축 유형
Point-to-point : 중간에 미들웨어를 두지 않고 각 애플리케이션 간 Point to Point 형태로 연결, 루션의 구매 없이 통합 가능, 변경, 재사용이 어려움
Hub & Spoke : 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식, 모든 데이터의 전송을 보장, 확장 및 유지보수가 용이
Message Bus(ESB 방식) : 애플리케이션 사이에 미들웨어를 두어 처리, 미들웨어를 통한 통합 가능, 어댑터가 각 시스템과 버스를 두어 연결하므로 뛰어난 확장성, 대용량 처리가 가능
Hybrid : 그룹 내에는 Hub & Spoke 방식을 그룹 간에는 Message Bus 방식을 사용 , 데이터 병목현상을 최소화
2. ESB
- EAI와 유사, 서비스 중심으로 통합을 지향하는 기술
- 웹 서비스 중심으로 표준화된 데이터, 버스를 통해 유연하게 통합하는 플랫폼 기술
3. EAI/ESB 방식
- 트리거를 Java와 같은 프로그램 언어를 사용하거나 인터페이스 테이블 혹은 파일을 이용해 송신에서 수신으로 전송하는 방식
15 ) 데이터 통신을 통한 인터페이스 구현
- 응용 프로그램 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 수신 측에서 파싱 하여 해석
- JSON 및 XML 형식의 데이터 포맷을 사용하여 인터페이스 구현
JSON(JavaScript Object Notation)
- 데이터 객체를 속성-값 형태로 표현, 자바스크립트 토대로 개발된 형식
- 속성과 값으로 이루어진 데이터 객체
XML(eXtensible Markup Language)
- 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장하는 마크업 언어
- 다른 많은 종류의 데이터를 기술하는 데 사용
- 다른 종류의 시스템끼리 데이터를 쉽게 주고받음
16 ) 인터페이스 구현 검증 도구
도구 | 설명 |
xUnit | java,C++등 다양한 언어를 지원하는 단위 테스트 프레임 워크 |
STAF | 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크 |
FitNesse | 웹 기반 테스트 케이스 설계/실행/결과 을 지원하는 테스트 프레임 워크 |
NTAF | 테스트 자동화 프레임워크 |
Selenium | 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 애플리케이션 테스크 프레임 워크 |
watir | Ruby 기반 웹 애플리케이션 테스트 프레임 워크 |
출처 이기적 정보처리기사
728x90
'정보처리기사' 카테고리의 다른 글
정처기 #16 논리 데이터베이스 설계 (0) | 2022.02.09 |
---|---|
정처기 #15 데이터베이스의 개요 (0) | 2022.02.08 |
정처기 #13 통합구현 (0) | 2022.02.06 |
정처기 #12 정렬 (0) | 2022.02.06 |
정처기 스터디 2주차 (0) | 2022.02.06 |
댓글