| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- resnet50
- 장고
- re-id
- 가상환경
- poetry
- 정보처리기사
- channels
- 미니프로젝트
- 2주차
- WHERE절
- WebSocket
- Class
- 1주차
- 알고리즘
- REDIS
- 개발일지
- vscode
- Commpot
- 백준
- 채팅
- 정보처리기사실기
- js
- github
- 프로그래머스
- sql
- Git
- 프로젝트
- WIL
- 파이썬
- 마스킹
- Today
- Total
개발일기
[정보처리기사 실기 이론정리8] 테스트 본문
1. 결함 집중(Defect Clustering) : 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다.
2. 파레토 법칙 : 20% 모듈에서 80% 결함이 발견된다는 결함집중의 원리
3. 살충제 패러독스(Presticide Paradox) : 반복적인 테스트로는 새로운 결함을 찾기 어렵다.
4. 오류-부재의 궤변(Absence of Errors Fallacy) : 오류가 없다고 해도 사용자의 요구사항을 충족하지 않으면 품질이 좋다고 할 수 없다.
5. 테스트 케이스 : 테스트 항목의 입력, 실행 조건 및 기대 결과를 포함한 명세서
6. 테스트 시나리오 : 테스트 케이스의 동작 순서를 기술한 문서
7. 테스트 오라클 : 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법
- 참 오라클(True) : 모든 입력 값에 대해 정확한 결과를 생성하는 오라클
- 샘플링 오라클(Sampling) : 제한된 입력 값들에 대해서만 예상되는 결과를 제공하는 오라클
- 휴리스틱 오라클(Heuristic) : 특정 입력 값들에 대해서는 정확한 결과를 제공하나, 그 외의 값들에 대해서는 근사적인 (추정) 결과를 제공하는 오라클
- 일관성 검사 오라클(Consistent) : 소프트웨어의 변경 전후로 테스트 결과의 일관성을 검증하는 오라클
8. 테스트 레벨

- 단위 테스트 : 개별 소프트웨어 모듈 또는 구성요소의 기능적, 비기능적 측면을 검증
- 통합 테스트 : 여러 모듈 또는 서브시스템을 통합하고, 그 사이의 인터페이스 및 상호작용을 검증
- 시스템 테스트 : 완전히 통합된 소프트웨어를 대상으로 한 테스트로, 소프트웨어와 시스템 사양 간의 일치성 검증
- 인수 테스트 : 시스템을 배포하거나 실제 사용할 만한 준비가 되었는지 평가
9. 인수 테스트 유형
- 알파 테스트 : 개발자의 통제 하에 사용자가 개발 환경에서 수행하는 테스트
- 베타 테스트(필드 테스팅) : 개발된 소프트웨어를 사용자가 실제 운영환경에서 수행하는 테스트
10. 정적 테스트 : 소프트웨어의 실행 없이 소스코드나 설계문서 등을 분석하여 문제점을 찾는 테스트 방식
- 워크스루 : 계획된 개발자 검토 회의, 개발자가 작성한 코드를 팀원에게 설명하며 오류를 찾는 회의 형태
- 인스펙션 : 검토 전문가들이 소스코드를 분석하여 결함을 발견하는 공식적인 검토
11. 동적 테스트 : 실제로 소프트웨어를 실행하며 문제점을 찾는 테스트 방식
12. 화이트박스 테스트 : 소프트웨어의 내부 구조와 동작을 중점으로 검사, 개발자 관점의 단위 테스트 방법
- 기초 경로 검사(Basic Path Test) : 대표적인 화이트 박스 테스트 기법, 계산식 V(G) = E-N+2
- 제어 구조 검사(Control Structure Testing) :
- 조건 검사(Condition Testing): 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
- 루프 검사(Loop Testing): 프로그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
- 데이터 흐름 검사(Data Flow Testing): 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
13. 블랙박스 테스트 : 프로그램의 사용자 요구사항 명세를 보면서 테스트, 사용자 관점의 테스트 방법
- 동등 분할 기법(Equivalence Partitioning Testing) : 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사
- 경계값 분석(Boundary Value Analysis) : 입력값의 경계값을 테스트 케이스로 선정
- 원인-효과 그래프 검사(Cause-Effect Graphing Testing) : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사
- 오류 예측 검사(Error Guessing) : 과거의 경험이나 테스터의 감각으로 테스트
- 비교 검사(Comparison Testing) : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법
- 상태전이 검사(State Transistion Testion) : 시스템에 반영되는 이전의 상태가 무엇인지, 상태 간 전이, 상태를 변화시키는 이벤트와 입력값을 파악
14. 검증(Verification) : 소프트웨어의 개발 과정을 테스트, 개발자 시점
15. 확인(Validation) : 완성된 소프트웨어의 결과를 테스트, 사용자 시점
16. 테스트 커버리지 : 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준
- 기능 기반 커버리지 : 텍스트 대상 애플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정하는 방법
- 라인 커버리지(Line Coverage) : 애플리케이션의 전체 소스 코드의 Line 수를 모수로 테스트 시나리오가 수행한 소스 코드의 Line 수를 측정하는 방법
- 코드 커버리지(Code Coverage) : 소프트웨어 테스트 충분성 지표 중 하나로, 소스코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트 되었는지를 측정
- 테스트 자동화 도구 유형
17. 정적 분석 도구 : 애플리케이션을 실행하지 않고 분석
- PMD : Java 및 다른 언어용 소스코드 분석 도구
- CheckStyle : Java 코드의 코딩 표준 준수 여부를 검사
- Cppcheck : C/C++ 코드의 메모리 누수, 오버플로우 등 분석
- SonarQube : 소스코드의 중복, 복잡도, 코딩 설계 등을 분석
18. 동적 분석 도구 : 프로그램을실행하여 코드의 메모리 누수나 결함 등 발견
- Avalanche : 프로그램 결함 및 취약점 분석
- Valgrind : 프로그램의 메모리 및 스레드 결함을 분석
19. 테스트 장치 : 애플리케이션의 단위 또는 모듈 테스트에 사용하는 환경 및 도구
- 테스트 드라이버(Test Driver) : 상향식 테스트, 테스트 대상 하위모듈을 호출하고 파라미터 전달 등
- 테스트 스텁(Test Stub) : 하향식 테스트, 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행
- 테스트 슈트(Test Suited) : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
- 테스트 케이스(Test Case) : 입력값, 실행 조건, 기대 결과 등의 집합
- 테스트 스크립트(Test Script) : 자동화된 테스트 실행 절차에 대한 명세
- 목 오브젝트(Mock Object) : 사용자의 행위를 조건부로 사전에 입력해두면, 그 상황에 예정된 행위를 수행하는 객체
20. 통합테스트
- 하향식 통합 테스트 : 깊이 우선 또는 너비 우선 방식으로 통합, 스텁을 개발하여 테스트 진행
- 상향식 통합 테스트 : 최하위 레벨의 모듈로부터 위쪽 방향으로 제어 경로를 따라 통합, 드라이버 개발
- 빅뱅 테스트 : 모든 구성요소들을 한꺼번에 통합하여 테스트
- 백본 테스트 : 상향식과 하향식의 장점을 이용, 샌드위치 테스트
21. 애플리케이션 성능분석 지표
- 처리량(Throughput) : 애플리케이션이 일정 시간 내에 처리하는 작업의 양
- 응답시간(Response Time) : 사용자가 요청을 전송한 시점부터 애플리케이션이 첫 응답을 보내기까지의 시간
- 경과시간(Turn Around Time) : 요청이 전달된 시점부터 처리가 완료되기까지 총 시간
- 자원 사용률(Resource Usage) : 애플리케이션이 작업을 처리하는 동안 CPU, 메모리, 네트워크 등의 자원 사용량
22. JMeter : 다양한 프로토콜을 지원하는 부하 테스트 도구
23. Scouter : 단일 뷰를 통한 통합 및 실시간 모니터링 기능 제공
24. NMon : 리눅스 서버 자원에 대한 모니터링 도구
25. Zabbix : 웹 기반의 서버, 서비스, 애플리케이션 모니터링 도구
26. Jenniffer : 애플리케이션에서 서버로 유입되는 트랜잭션의 양, 처리시간, 응답시간, 자원 활용률 등을 모니터링
27. 코드스멜 : 소스코드에서 발견할 수 있는 잠재적인 문제점
28. 스파케티 코드 : 복잡하게 얽힌 소스코드 구조
29. 외계인 코드 : 오래되어 유지보수가 어려운 코드
30. 레거시 시스템 : 오래된 기술, 방법론, 컴퓨터 시스템, 소프트웨어를 의미
'정보처리기사 도전기' 카테고리의 다른 글
| [정보처리기사 실기 이론정리10] 데이터베이스(2) & SQL (0) | 2024.07.27 |
|---|---|
| [정보처리기사 실기 이론정리9] 패키징 & 데이터베이스 (0) | 2024.07.27 |
| [정보처리기사 실기 이론정리7] 객체 지향 설계 (0) | 2024.07.27 |
| [정보처리기사 실기 이론정리6] 인터페이스 (0) | 2024.07.27 |
| [정보처리기사 실기 이론정리5] 서버 프로그램 (0) | 2024.07.27 |