테스트 5

[NestJS] Jest 단위 테스트 - Mocking

1. 모킹(Mocking)이란? 자바스크립트 테스팅 프레임워크로 jest를 사용할 경우, 장점 중 하나는 다른 라이브러리의 설치 없이 바로 mock 기능을 사용할 수 있다는 것입니다. mock(모킹)이란, 테스트하려는 코드의 외부 의존성이 존재할 때 모조품을 만들어 일단 돌아가게 하는 것입니다. 즉, 단위 테스트를 작성할 때 해당 코드가 의존하는 부분을 가짜(mock) 으로 대체하는 기법입니다. 예를 들면, 데이터베이스에 직접 데이터를 저장하거나, 삭제하는 코드에 대한 단위 테스트를 작성할 때 실제 데이터베이스를 사용하게 된다면 아래 예시 처럼 여러 가지 문제점이 발생할 수 있습니다. - 데이터베이스 접속과 같이 I/O 작업이 포함되는 테스트 케이스를 작성하게 될 경우 실행 속도가 현저히 떨어질 수 밖에..

[정보처리기사 필기] SW 개발 : 테스트 레벨

정보처리기사 필기 2과목 - 소프트웨어 개발 : 테스트 레벨 [1] 테스트 레벨 - 애플리케이션 테스트는 개발 단계에 따라 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트, 설치 테스트로 분류하며 이런 단계를 테스트 레벨이라고 함 1. 단위 테스트 (Unit Test) - 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트를 테스트 - 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행 - 인터페이스 테스트, 자료 구조 테스트, 수행 경로 테스트, 오류 처리 테스트, 경계 테스트 - 명세 기반 테스트, 구조 기반 테스트 중 주로 구조 기반 테스트를 시행 * 명세 기반 테스트 / 구조 기반 테스트 - 명세 기반 테스트 : 주어진 명세를 빠짐없이 테스트 케이스로 구현하고 있는지 확인하는 테..

[정보처리기사 필기] SW 개발 : 테스트 케이스 / 테스트 시나리오 / 테스트 오라클 / 테스트 하네스

정보처리기사 필기 2과목 - 소프트웨어 개발 : 테스트 케이스 / 테스트 오라클 [1] 테스트 케이스 1. 정의 - 명세 기반 테스트의 설계 산출물 - 특정한 프로그램의 일부분 또는 경로에 따라 수행하거나, 특정한 요구사항을 준수하는지 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서 - 미리 설계시 테스트 오류 방지 및 테스트 수행 자원의 낭비를 줄일 수 있음 2. 작성 순서 테스트 계획 검토 및 자료 확보 ▶ 위험 평가 및 우선순위 결정 ▶ 테스트 요구사항 정의 ▶ 테스트 구조 설계 및 테스트 방법 결정 ▶ 테스트 케이스 정의 ▶ 테스트 케이스 타당성 확인 및 유지 보수 [2] 테스트 시나리오 1. 정의 - 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케..

[정보처리기사 필기] SW 개발 : 애플리케이션 테스트의 유형

정보처리기사 필기 2과목 - 소프트웨어 개발 : 애플리케이션 테스트의 유형 (= 소프트웨어 테스트의 유형) [1] 시각에 따른 테스트 1. 검증(Verification) - 제품의 생산 과정을 테스트 ▶올바른 제품을 생산하고 있는지를 검증하는 것 - 단위 테스트, 통합 테스트, 시스템 테스트 2. 확인(Validation) - 생산된 제품의 결과를 테스트 ▶ 생산된 제품이 정상적으로 동작하는지 확인하는 것을 의미 - 인수 테스트(알파 테스트, 베타 테스트) ⭐ [2] 프로그램 실행 여부에 따른 테스트 1. 정적 테스트 - 프로그램 실행 없이 명세서나 소스코드의 구조를 분석하여 논리적으로 검증하는 테스트 - 인스펙션, 코드 검사, 워크스루 등 2. 동적 테스트 - 프로그램의 실행을 요구하는 테스트 - 화이..

[정보처리기사 필기] SW 개발 : 애플리케이션 테스트

정보처리기사 필기 2과목 - 소프트웨어 개발 : 애플리케이션 테스트 (= 소프트웨어 테스트) [1] 애플리케이션 테스트의 개념 - 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차 - 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인(Validation) - 소프트웨어가 기능을 정확히 수행하는지 검증(Verification) [2] 애플리케이 테스트의 필요성 1. 오류 발견 관점 - 프로그램에 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하는 활동 2. 오류 예방 관점 - 프로그램 실행 전에 코드 리뷰, 동료 검토, 인스펙션 등을 통해 오류를 사전에 발견하는 예방 차원의 활동 3. 품질 향상 관점 - 사용자의 요구사항 및 기대 수준을 만족하도록 반복적인 테스트를 거쳐..