20. 통합구현
(1) 단위 모듈 구현
1️⃣ 모듈화의 원리
구분 | 설명 |
분할과 지배 | 복잡한 문제를 분해, 모듈 단위로 문제를 해결 |
정보 은폐 | 변경 가능성이 있는 모듈은 다른 모듈로부터 은폐 |
자료 추상화 | 함수 내 자료 구조의 표현 명세를 은폐, 자료에 적용가능한 오퍼레이션과 자료에 함께 정의 |
모듈의 독립성 | 낮은 결합도 높은 응집도를 갖도록 |
2️⃣ 구현 단계의 작업 절차 ⭐️
코딩 계획 - 코딩 - 컴파일 - 테스트
(2) 통합 개발 환경
1️⃣ IDE (Integrated Development Environment)
❶ 편집기, 컴파일러, 디버거 등의 다양한 도구를 하나의 인터페이스로 통합하여 제공
❷ 통합 개발 환경 : 개발을 도와주는 소프트웨어
❸ 종류 : 이클립스, 비주얼 스튜디오, 엑스 코드 등
2️⃣ 빌드 자동화 도구
❶ 소스 코드 컴파일 후 다수의 연관된 모듈을 묶어 실행 파일로 만듦
❷ 소스 코드를 컴파일, 테스트, 정적 분석 등을 실시하여 실행 가능한 애플리케이션으로 자동생성
❸ 오픈소스인 Gradle이 최근에 많이 사용되는 중
❹ 프로세스 : 컴파일 - 패키징 - 단위 테스트 - 정적 분석 - 리포팅 - 배포 - 최종 빌드
❺ 종류 ⭐️ : Gradle, Jenkins, Makefile, Ant, Maven 등
구분 | 설명 |
Ant | 아파치 소프트웨어 재단에서 개발 |
Maven | 종속성을 리스트 형태로 관리한다 |
Gradle | JVM 기반 빌드 도구 |
Jenkins | Java 기반의 오픈 소스 |
[관련 기출 문제]
21. 제품 소프트웨어 패키징
(1) 애플리케이션 패키징 (배포)
1️⃣ 패키징 프로세스
기능 식별 |
모듈화 |
빌드 진행 |
사용자 환경 분석 |
패키징 적용 시험 |
패키징 변경 개선 |
(2) 제품 소프트웨어의 패키징 도구
1️⃣ 패키징 도구
❶ 소프트웨어 배포를 목적으로 패키징 시 지적 재산권을 보호하고 관리하는 기능을 제공하는 도구
❷ 안전한 유통과 배포를 도와주는 솔루션
❸ 불법 복제로부터 보호, 사용 권한 제어 기술, 라이선스 권리, 권한 통제 기술 포함
2️⃣ 패키징 도구 활용 시 고려사항 ⭐️
❶ 내부 콘텐츠에 대한 암호화 및 보안 고려
❷ 이기종 콘텐츠 및 단말기 간 DRM 연동을 고려
❸ 사용자 편의성을 위한 복잡성 및 비효율성 문제 고려
❹ 적합한 알고리즘 적용하여 범용성에 지장 없도록 고려
3️⃣ 패키징 도구의 구성 요소
암호화 | Encryption |
키 관리 | Key Management |
암호화 파일 생성 | Packager |
식별 기술 | Identification |
저작권 표현 | Right Expression |
정책 관리 | Policy Management |
크랙 방지 | Tamper Resistace |
인증 | Authentication |
(3) 모니터링 도구와 협업 도구
모니터링 도구 : 어플리캐이션을 감시하고 관리하는데 초점을 둔 도구
협업 도구 : 문서 공유, 소스 공유, 아이디어 공유, 디자인 공유 등
[관련 기출 문제]
22. 제품 소프트웨어 저작권
(1) 제품 소프트웨어 저작권 보호
1️⃣ DRM (Digital Rights Management)
❶ 아무나 복제할 수 없게 하는 것
❷ DRM 특성 : 거래 투명성, 사용 규칙 제공, 자유로운 상거래 제공
2️⃣ DRM 기술 요소 ⭐️
암호화 | Encryption |
키 관리 | Key Management |
암호화 파일 생성 | Packager |
식별 기술 | Identification |
저작권 표현 | Right Expression |
정책 관리 | Policy Management |
크랙 방지 | Tamper Resistace |
인증 | Authentication |
인터페이스 | Interface |
이벤트 보고 | Event Reporting |
사용 권한 | Permission |
3️⃣ DRM 유통 과정
DRM 유통 구성 | 설명 |
콘텐츠 제공자 | 콘텐츠 제공 저작권자 |
콘텐츠 분배자 | 쇼핑몰 등으로 암호화된 콘텐츠 제공 |
패키저 | 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 기능 |
보안 컨테이너 | 원본을 안전하게 유통하려는 전자적 보안 장치 |
DRM Controller | 배포된 콘텐츠의 이용 권한을 통제 |
Clearing House | 저작권료의 정산 및 분배 + 키 관리 및 라이선스 발급 관리 |
4️⃣ 렌더 퍼미션
유형 | 설명 | 예 |
Render Permission | 컨텐츠가 표현되고 이용되는 권리 형태 | 문서, 동영상 |
Transport Permission | 사용자들 간 권리 교환이 이루어지는 권리 형태 | copy, move, loan |
Derivative Permission | 콘텐츠의 추출 변형이 가능한 권한 | Extract, Embed, Edit |
[관련 기출 문제]
23. 제품 소프트웨어 매뉴얼 작성
(1) 소프트웨어 매뉴얼
1️⃣ 소프트웨어 설치 매뉴얼
❶ 실사용자가 제품을 최초 설치 시 참조하는 매뉴얼
❷ 제품 소프트웨어 소개, 설치 파일, 설치 절차 등 포함
❸ 예외 상황 관련 내용은 별도로 구분하여 설명
❹ 사용자 기준으로 작성
설치 매뉴얼 구성
목차 및 개요 |
문서 이력 정보 |
설치 매뉴얼 |
설치 매뉴얼 주석 |
설치 도구의 구성 |
설치 위치 지정 |
2️⃣ 소프트웨어 설치 매뉴얼 기본 사항 ⭐️
제품 소프트웨어 개요 |
설치 관련 파일 |
설치 아이콘 |
프로그램 삭제 |
관련 추가 정보 |
3️⃣ 소프트웨어 설치 매뉴얼 작성 프로세스
(2) 소프트웨어 사용자 매뉴얼
1️⃣ 사용자 매뉴얼의 구성
사용자 화면 및 UI |
주요 기능 분류 |
응용 프로그램 설정 |
장치 연동 |
Network 환경 |
Profile 설명 |
고객 지원 방법 |
준수 정보 및 제한 보증 |
2️⃣ 사용자 매뉴얼 작성 프로세스 ⭐️
작성 지침 정의 - 구성 요소 정의 - 구성 요소별 내용 작성 - 사용자 매뉴얼 검토
3️⃣ 소프트웨어 국제 표준 품질 특성
구분 | 설명 |
ISO/IEC 9126 | ❶ 소프트웨어 품질 특성과 척도에 관한 지침 ❷ 고객 관점에서 소프트웨어에 관한 품질 특성과 부 특성을 정의 - 1과목 소프트웨어 아키텍처 포인트의 상세 특성 참고 |
ISO/IEC 12119 ⭐️ | ❶ 패키지 소프트웨어의 일반적인 제품 품질 요구 사항 및 테스트를 위한 국제 표준 ❷ 제품 설명서, 사용자 문서 및 프로그램으로 구분하여 각각 품질 요구사항을 규정 |
[관련 기출 문제]
4️⃣ 소프트웨어 품질 목표 ⭐️
운영 특성 | 정확성 | Correctness |
신뢰성 | Reliablity | |
사용 용이성 | Usability | |
효율성 | Efficiency | |
무결성 | Integrity | |
변경 수용 특성 | 이식성 | Portability |
상호 운용성 | Interoperability | |
재사용성 | Reusability | |
유지보수성 | Maintainability | |
유연성 | Flexibility | |
시험 역량 | Testability |
5️⃣ 소프트웨어 품질 측정 시 관점 별 분류 ⭐️
관점 | 분류 |
사용자 관점 | 제품 신뢰성 |
효율성 | |
사용 용이성 | |
간결성 | |
개발자 관점 | 검증 가능성 |
유지보수성 | |
이식성 | |
무결성 | |
사용성 | |
프로젝트 관리자 관점 | 프로세스의 생산성 |
제어 용이성 |
(3) 릴리즈 노트 작성하기
1️⃣ 릴리즈 노트 작성 항목
헤더 |
개요 |
목적 |
이슈 요약 |
재현 항목 |
수정 및 개선 내용 |
최종 사용자 영향도 |
노트 |
면책 조항 |
연락정보 |
[관련 기출 문제]
24. 형상관리
(1) 형상 관리 도구
1️⃣ 형상 관리
❶ 개발 단계에서 사용되는 모든 자료들(형상)을 관리
❷ 작업 산출물을 형상 항목이라는 형태로 선정하고, 형상 항목간 변경사항 추적과 통제 정책을 수립하고 관리
2️⃣ 형상 관리 항목 ⭐️
프로젝트 요구 분석서 | 운영 및 설치 지침서 | 요구사항 명세서 |
설계/인터페이스 명세서 | 테스트 설계서 | 소프트웨어 품질 보증 |
형상 관리 | V&V 계획서 등 | 코스 모듈 (소스와 오브젝트 모두) |
3️⃣ 형상 관리 종류
버전관리, 리비전 관리, 변경관리, 빌드관리, 이슈관리 등
구분 | 설명 |
버전 관리 | ❶ 다향항 형상 항목을 변화에 따라 버전을 부여하여 이력을 관리하는 것 ❷ 시간적인 변경사항과 작업 담당자를 추적 가능 |
변경 관리 | ❶ 변경된 요구사항에 대해 비용 및 기간을 고려하여 타당성 평가 ❷ 요구사항이 타당한 경우 제품 또는 산출물을 변경하고 그렇지 않을 경우 변경을 거부 |
4️⃣ 형상 관리 도구
❶ 소프트웨어 개발 생명 주기 전반에 걸쳐 생성되는 소스코드와 문서와 같은 산출물 (형상)을 관리해주는 도구
❷ 형상 식별, 형상 통제, 형상 상태보고, 형상 감사를 통해 변경사항 관리
❸ 이전 리비전이나 버전에 대한 정보에 접근 가능하여 배포본 관리에 유용
5️⃣ 형상 관리 절차 ⭐️
절차 | 설명 |
형상 식별 | 형상 관리 대상이 무엇인지 식별 |
형상 통제 | 형상 통제 위원회 운영을 통해 기준선을 기반으로 변경 통제 |
형상 보고 및 감사 | 형상 감사 시 고려사항 ❶ 명시된 변경이 정확히 수정 되었는가? ❷ 기술 검토를 수행하였는가? ❸ 개발 프로세스를 준수하였는가? ❹ 변경 발생 시, 형상 관리 절차를 준수 하였는가? ❺ 변경에 대한 정보를 기록하였는가? |
형상 기록 / 보고 |
[관련 기출 문제]
(2) 버전 관리 도구
1️⃣ 버전 관리 도구 구분
구분 | 설명 |
공유 폴더 방식 | ❶ 담당자 한 명이 공유 폴더 내 자료를 PC로 복사한 후 컴파일 한 후 파일 이상 유무 확인 ❷ 매일 완료된 파일을 공유 폴더에 복사하여 관리 ❸ 종류 : SCCS, RCS, PVCS, QVCS |
클라이언트 / 서버 방식 | ❶ 버전 관리 자료가 서버에 저장되어 관리되는 방식 ❷ 서버 장애 발생시 작업이 중단 ❸ 종류 : SVN, CVS, CMVC, CVSNT, Perforce, Clear Case |
분산 저장소 방식 ⭐️ | ❶ 버전 관리 자료가 원격 저장소와 로컬 저장소에 함께 저장되어 관리 ❷ 개발자 별로 원격 저장소의 자료를 각자의 로컬 저장소로 복사하여 작업 ❸ 개발 완료한 파일을 로컬에 커밋 후 원격 저장소에 푸쉬 ❹ 종류 : Git, Bazaar, TeamWare, mercurial |
2️⃣ 주요 버전 관리 도구
종류 | 설명 |
CVS (Concurrent Version System) |
❶ 동시 버전 시스템 ❷ 파일로 이루어진 모든 작업과 변화를 추적하여 여러 개발자가 협력 가능 ❸ CVS가 한계를 맞아 Subversion 개발됨 |
RCS (Reversion Control System) |
❶ 소스파일의 수정을 한 사람으로 제한 ❷다수의 사용자가 동시에 파일 수정 할 수 없도록 파일 잠금 방식으로 버전 고나리 |
SVN (Subversion) |
❶ CVS 보다 속도 개선, 저장 공간, 변경관리 단위가 작업 모음 단위로 개선 ❷ 아파치 최상위 프로젝트로 전세계 개발자 커뮤니티와 함께 개발 중 |
Bit Keeper | ❶ SVN과 비슷한 중앙 통제 방식 ❷ 대규모 프로젝트에서 빠른 속도를 내도록 개발된 버전 관리도구 |
Git | 로컬 저장소와 원격저장소 2개의 저장소가 존재 |
3️⃣ Git 주요 명령어
명령어 | 설명 |
init | 새로운 로컬 git 생성 |
add | 저장소에 파일 추가 |
commit | 로컬저장소에 작업 내역 저장 |
branch | 새로운 파생 저장소인 브랜치 생성 |
checkout | 선택한 브랜치로 이동 |
merge | 현재 브랜치와 지정한 브랜치 병합 |
fetch | git서버에서 코드 받아오기 |
pull | git 서버에서 최신 코드 받아와 병합하기 |
remote | 원격 저장소 추가하기 |
clone | 원격 저장소의 프로젝트 복사하여 내려받기 |
4️⃣ SVN 주요 명령어
명령어 | 설명 |
import | 맨 처음 소스파일 저장 |
checkin | 체크 아웃으로 가져온 파일 수정 후 저장소에 새로운 버전으로 갱신 |
checkout | 저장소에 저장된 파일을 자신의 작업 공간으로 인출 |
commit | 체크인 시 갱신 사항이 있을 때, 충돌 발생시 알림표시하고 diff 를 이용해 수정한 후 commit |
diff | 변경된 파일의 차이를 봄 |
update | 저장소의 최신 버전 자료로 작업공간과 동기화 |
branch | 주 저장소에서 파생된 프로젝트 |
fork | 주 저장소에서 소프트웨어 소스코드를 통채로 복사하여 독립적으로 개발하는 것 허용 |
info | 지정된 파일에 대한 정보 표시 |
merge | 기본 개발 작업과 병합 |
[관련 기출 문제]
25. 애플리케이션 테스트 관리
(1) 테스트 케이스
1️⃣ 소프트웨어 테스트
품질 향상 관점 | 반복적인 테스트를 거쳐 제품의 신뢰도를 향상 하는 품질 보증 활동 |
오류 발견 관점 | 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하는 활동 |
오류 예방 관점 | 코드 리뷰, 동료 검토, 인스펙션 등을 통해 오류를 사전에 발견하는 활동 |
2️⃣ 소프트웨어 테스트의 원리
테스팅은 결함이 존재함을 밝히는 활동이다 |
완벽한 테스팅은 불가능하다 |
테스팅은 개발 초기에 집중해야 한다 |
결함 집중 : 결함은 한 곳에 집중되어있다 |
살충제 패러독스 : 주기적으로 테스트 케이스를 리뷰하고 개선해야 한다 |
테스팅은 정황에 의존한다 |
오류 부재의 궤변 : 오류가 없다고 하는 것은 궤변 |
3️⃣ 파레토의 법칙
80 대 20 법칙
전체의 80%의 결과가 전체의 원인의 20%에서 발생하는 현상
전체의 20% 에 해당하는 부분에서 오류의 80%가 발생
4️⃣ 테스트 케이스
❶ 요구사항을 정확히 준수했는지 확인하기 위한 테스트 항목에 대한 명세서
❷ 명세 기반 테스트의 설계 산출물
❸ 표준 테스트 케이스 형식
ID - 시나리오 - 테스트 단계 - 테스트 데이터 - 예상 결과 - 실제 결과 - 통과 실패
테스트 케이스 구성요소
식별자 | 테스트 항목 | 입력 명세 | 환경 설정 |
특수 절차 요구 | 의존성 기술 | 출력 명세 |
테스트 프로세스
계획 및 제어 - 분석 및 설계 - 구현 및 실현 - 평가 - 완료
테스트 커버리지
: 테스트 수행 정도
구문 커버리지 | 결정 커버리지 | 조건 커버리지 |
조건/결정 커버리지 | 변경 조건/결정 커버리지 | 다중 조건 커버리지 |
5️⃣ 테스트 오라클 ⭐️
: 테스트 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력해 비교하는 기법
구분 | 설명 |
참 오라클 | 모든 입력값에 대해 적합한 결과를 생성, 발생한 오류를 모두 검출 가능 |
일관성 검사 오라클 | 수행 전과 후의 결과 값이 동일한지 확인 |
샘플링 오라클 | 임의로 선정한 입력값에 대해서만 기대하는 결과를 제공 |
휴리스틱 오라클 | 임의의 입력값에 대해 결과를 제공하고 나머지는 추정하여 처리 |
(2) V-모델과 테스트
1️⃣ 시각에 따른 테스트
검증 테스트 Verification Test | ❶ 명세서대로 완성 되었는지 검증하는 단계 ❷ 개발자의 시각에서 제품의 생산 과정을 테스트 |
확인 테스트 Validation Test | ❶ 사용자의 요구사항을 잘 수행하고 있는지 확인하는 단계 ❷ 사용자의 시각에서 생산된 제품의 결과를 테스트 |
[관련 기출 문제]
2️⃣ 테스트 케이스 자동 생성 ⭐️
자료 흐름도 |
테스트 경로 관리, 입력 도메인 분석 |
테스트 데이터 산출, 랜덤 테스트 |
무작위 값 입력, 신뢰성 검사 |
3️⃣ 테스트 레벨의 종류
종류 | 설명 |
단위 테스트 ⭐️ | ❶ 개발자가 원시 코드 대상으로 각각의 단위를 테스트 (모듈) ❷ 객체지향 클래스 테스팅 |
통합 테스트 | 단위테스트를 통과한 컴포난트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트 |
시스템 테스트 | ❶ 단위/통합 테스트 완료 후 기능상 문제 없는 상태에서 실제 환경과 유사한 환경에서 진행 ❷ 시스템 성능과 관련된 요구사항이 수행되는지 테스트 |
인수 테스트 ⭐️ | ❶ 요구사항이 제대로 이행 되었는지 확인하는 테스트 ❷ 실 사용자 환경에서 진행하며 사용자가 테스트 ❸ 알파, 베타 테스트와 연관 |
4️⃣ 알파 테스트와 베타 테스트
종류 | 설명 |
알파 테스트 ⭐️ | ❶ 개발자 관점에서 수행되며 사용상 문제가 반영되도록 하는 테스트 ❷ 개발자 앞에서 테스트 진행 (개발사 안에서 진행) |
베타 테스트 | ❶ 선정된 다수의 사용자가 일정기간 사용하여 테스트 (개발사 밖에서 진행) ❷ 문제점이나 개선사항등을 개발사에 통보하여 반영되도록하는 테스트 |
(3) 애플리케이션 테스트
1️⃣ 정적 테스트와 동적 테스트
정적 테스트
: 애플리케이션 실행 없이 명세서나 소스코드로 분석하여 테스트 하는 방식
개발 초기에 결함 발견 가능하여 개발 비용 낮출 수 있다
종류 | ||
Inspection | Walk-through | Code Test |
Orthogonal Array Testing | Prior Defect History Testing | Risk-Based Testing |
Run Chart | Statistical Profile Testing |
동적 테스트
: 애플리케이션을 직접 실행하여 오류를 찾는 테스트
분류 | 종류 | ||
블랙박스 테스팅 (명세 기반) |
Boundary Value Testing | Cause-Effect Graphing | Control Flow Testing |
CRUD Testing | Decision Tables Testing | Equivalence Class Partitioning | |
Finite State Testing | Free Form Testing | Positive and negative Testing | |
Prototyping | Random Testing | Range Testing | |
Regression Testing | State Transition Testing | Thread Testing | |
화이트 박스 테스팅 (구조 기반) |
Basis Path Testing | Branch Coverage Testing | Condition Coverage Testing |
Data Flow Testing | Loop Testing | Mutation Testing | |
Sandwich Testing | Statment Coverage Testing |
2️⃣ 테스트 기반에 따른 테스트
구분 | 설명 |
명세 기반 테스트 | ❶ 사용자 요구사항에 대한 명세를 기반으로 테스트 케이스를 작성하고 확인하는 테스트 ❷ 종류 : 동등 분할, 경계값 분석, 분류 트리, 상태 전이, 결정 테이블, 원인-결과, 조합 테스트, 시나리오, 오류 추정 |
구조 기반 테스트 | ❶ 소프트웨어 내부 구조에 따라 테스트 케이스를 작성하고 확인하는 테스트 ❷ 종류 : 구문 기반, 결정 기반, 조건 기반, 데이터 흐름 |
경험 기반 테스트 | ❶ 테스터의 경험을 기반으로 수행하는 테스트 ❷ 종류 : 에러 추정, 체크 리스트, 탐색적 테스팅 |
3️⃣ 목적에 따른 테스트
구분 | 설명 | |
성능 | Performance | 소프트웨어 응답 시간 처리량 등을 테스트 |
회복 | Recovery | 고의로 부하를 가한 후 올바르게 복구되는지 테스트 |
구조 | Structured | 내부의 논리적인 경로, 소스코드의 복잡도를 평가 |
회귀 | Regression | 변경 또는 수정된 코드에 새로운 결함이 없음을 확인 |
안전 | Security | 소프트웨어가 불법적인 침입으로부터 보호할 수 있는지 확인 |
[관련 기출 문제]
26. 테스트 시나리오와 테스트 기법
(1) 테스트 시나리오
1️⃣ 테스트 시나리오
❶ 테스트가 어떻게 흘러가는지 정리한 문서
❷ 시스템별, 모듈별, 항목별 테스트 시나리오를 분리하여 작성
2️⃣ 테스트 환경 구축의 유형
❶ 하드웨어 기반
❷ 소프트웨어 기반
❸ 가상 시스템 기반
(2) 테스트 기법
1️⃣ 화이트 박스 테스트 ⭐️
❶ 모듈의 원시코드를 오픈 시킨 상태에서 테스트 하는 방법
❷ 소스 코드의 모든 문장을 한 번 이상 수행하여, 모듈 안의 작동을 관찰
❸ 제어 구조에 따라 선택, 반복 등의 부분들을 수행하여 논리적 경로 점검
화이트 박스 : 들여다 보고 있는 것
화이트박스 테스트 종류
구분 | 설명 |
기초 경로 검사 Base Path Testing |
❶ 측정 결과는 실행 경로의 기초를 정의하는데 사용 ❷ 기초 경로 : 제어 흐름 그래프를 분석하여 선형 독립 실행 경로 집합을 찾는다 |
제어 구조 검사 | ❶ 조건 검사 : 모듈 내 논리적 조건을 테스트 ❷ 루프 검사 : 반복 구조에 초점을 맞춰 실시하는 테스트 ❸ 데이터 흐름 검사 : 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 |
화이트박스 테스트 검증 기준
구분 | 설명 |
문장 검증 기준 | 소스 코드의 모든 구문이 한 번 이상 수행 |
분기 검증 기준 | 소스 코드의모든 조건 문이 한 번 이상 수행 |
조건 검증 기준 | 소스 코드의 모든 조건문에 대해 조건이 true인 경우와 false인 경우가 한 번 이상 수행 |
분기/조건 기준 | 소스 코드의 모든 조건문과 각 조건문에 포함된 개별 조건식 결과가 true/ false 인 경우 한 번 이상 수행 |
2️⃣ 블랙박스 테스트 (Black Box Test)
❶ 기능이 완전히 작동되는 것을 입증하는 테스트로 기능 테스트라고도 함
❷ 요구사항 명세를 보면서 테스트하며, 주로 구현된 기능을 테스트
블랙박스 : 내부 구조를 알 수 없는 것
블랙박스 테스트의 종류 ⭐️
구분 | 설명 |
동치 분할 검사 | ❶ 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사 ❷ 입력 조건에 타당한 자료와 그렇지 않은 자료의 개수를 균등하게 분할하여 테스트 케이스 설정 |
원인 - 효과 그래프 검사 | ❶ 입력 데이터 간 관계와 출력에 영향을 미치는 상황을 체계적으로 분석 ❷ 효용성이 높은 테스트 케이스를 선정하여 검사 |
오류 예측 검사 | ❶ 과거의 경험이나 감각으로 테스트 ❷ 보충적 검사 기법 |
비교 검사 | ❶ 동일한 테스트 자료를 여러 버전에 입력 후 동일한 결과가 출력되는지 테스트 |
경계값 분석 ⭐️ | ❶ 입력 조건 경계값에서 오류 발생 확률이 크기 때문에 경계값을 테스트 케이스로 선정 ❷ 명세 기반 기법 |
[관련 기출 문제]
[참고 자료]
[정보처리기사 필기 절대족보] 핵심이론 2과목(소프트웨어 개발)