인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
Testing/JEST

[JEST] 📚 비동기 코드 테스트 방법

콜백 테스트 비동기 메소드는 이벤트 루프로 인해 나중에 처리되기 때문에, 비동기의 결과를 검증 하기위해선 콜백에 expect() 를 사용해야 한다. 여기서 중요한건 done 이다. done 은 Jest Runner에게 명시적으로 이 테스트 함수는 비동기 코드를 테스트 하니 콜백 함수가 호출되는지도 좀 봐주라고 알려주는 역할을 한다. 따라서 비동기 함수를 검증하려 할때 결과를 콜백 함수로 받는다면, 콜백 함수 인자에 done 을 써주고, done() 을 호출해서 끝내야 한다. // 테스트할 함수 : 0.1초 뒤에 콜백함수를 실행하는 함수 function fetchUser(id, cb) { setTimeout(() => { console.log("wait 0.1 sec."); const user = { id..

category_image
인파_
2022.01.20
(0)
Testing/JEST

[JEST] 📚 유용한 Matcher 함수 종류 모음

JEST Matcher 정리 Jest는 다른 방법으로 값을 테스트 하도록 matcher 라는 것을 사용한다. matcher란 '이거 맞아?' 라고 물어보는 메서드리고 보면 된다. 기대한 값이 실제 반환된 값과 일치하는 지를 확인하는 작업을 일컫는다. 이번 포스팅에는 JEST에서 자주 쓰이는 matcher 함수 핵심만 꼽아 정리하는 시간을 가져 볼 것이다. 모든 matcher를 확인해보고 싶다면 expect에 대한 api 상세서 참고하자. Jest - Expect - 테스트를 작성할 때 값이 특정 조건을 충족하는지 확인해야 하는 경우가 많습니다. runebook.dev [ 테스트할 함수 ] // user.js // 테스트할 함수 function getUser(id) { return { id, email: ..

category_image
인파_
2022.01.20
(0)
Testing/JEST

[JEST] 📚 JEST 소개 & 기본 사용법 정리

JEST 란? Jest는 페이스북에서 만들어서 React와 더불어 많은 자바스크립트 개발자들로 부터 좋은 반응을 얻고 있는 테스팅 라이브러리다. 출시 초기에는 프론트앤드에서 주로 쓰였지만 최근에는 백앤드에서도 기존의 자바스크립트 테스팅 라이브러리를 대체하고 있다. Jest 이전에는 자바스크립트 코드를 테스트하라면 여러가지 테스팅 라이브러리를 조합해서 사용하곤 했었다. 예를 들어, Mocha나 Jasmin을 Test Runner로 사용하고, Chai나 Expect와 같은 Test Mathcher를 사용했으며, 또한 Sinon과 Testdouble 같은 Test Mock 라이브러리도 필요했었다. 이 라이브러리들은 굉장히 유사하지만 살짝씩 다른 API를 가지고 있었기 때문에, 여러 프로젝트에 걸쳐서 일하는 자..

category_image
인파_
2022.01.19
(0)
Testing/SW 테스팅 이론

🧪 TDD 방법론 (테스트 주도 개발) - 알기 쉽게 정리

TDD(Test Driven Development) 란? TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계를 중요시한다. eXtream Programming(XP) 미래에 대한 예측을 최대한 하지 않고, 지속적으로 프로토타입을 완성하는 애자일 방법론 중 하나이다. 이 방법론은 추가 요구사항이 생기더라도, 실시간으로 반영할 수 있다. TDD, 즉 테스..

category_image
인파_
2022.01.19
(0)
Testing/SW 테스팅 이론

[QA] 🧪 체크리스트(CL) 란? - 테스트케이스(TC) 와의 차이

​체크리스트 - 테스팅 절차, 기능, 시스템 요소등을 체크리스트롤 작성함 일반 체크리스트 수행해야 할 테스트 목록과 절차를 나열함 ​ 블랙 체크리스트 최상위 기능 체크 개별적인 컴포넌트 기능 서로 다른 레벨의 기능과 그룹핑 ​ 시스템 요소 체크리스트 상위 레벨 서브 시스템이나 모듈 개인 구문이나 데이터 아이템 서로 다른 레벨의 시스템 요소와 그룹핑 테스트케이스 와 체크리스트 의 차이점 체크리스트는 예/아니오로 답변하는 확인성격의 항목을 나열한 리스트 이건 제품의 포장상태 테스트같은 것에 사용되는 것. 예를들면, 카메라제품의 경우, 카메라가 들어있는가? 렌즈가 들어있는가? 등 반면, 테스트케이스는 그보다는 더 많은 것을 담고 있음 즉,수행조건, 스텝, 기대결과가 명시되는 것 그것이 테스터가 어떻게 테스트한..

category_image
인파_
2021.09.20
(0)
Testing/SW 테스팅 이론

[QA] 🧪 유즈케이스 테스트

​ 유즈케이스 테스트 액터와 액터 사이의 상호작용을 표현 -> 유저에게 결과값 전달 유즈케이스로 모델링 된걸 TC로 도출하는 기법 시스템이 실제 사용되는 프로세스 흐름에서 결함을 발견하는데 유용 인수 테스트를 설계할 때 유용 통합 테스트 단계에서 컴포넌트 사이의 통합 결함을 찾는데 도움 [테스트순서] 어떤 흐름을 테스트 할지 고려하여 테스트 시나리오 구성 유즈케이스 상세에서 테스트에 필수적인 상황 건택 유즈케이스 상세 내용을 입력값, 출려값, 상황 처리 등으로 분류하여 테스팅에 관여하는 상황을 선택 각각의 상황에 ID부여 각각의 상황에 가능한 값을 결정 (valid/invalid, upper/lower, true/false, not applicable)

category_image
인파_
2021.09.20
(0)
Testing/SW 테스팅 이론

[QA] 🧪 분류 트리 기법

​ 분류 트리 기법 분류 트리는 테스트 객체에 적용되는 데이터 공간의 그래픽 표현을 생성할 수 있게하여 특정 블랙 박스 테스트 기술을 지원한다. 데이터는 다음과 같이 분류 및 클래스로 구성된다. 분류 : 테스트 객체의 데이터 공간 내의 매개 변수를 의미한다. 입력 매개 변수의 경우, 환경 상태와 사전 조건을 포함할 수 있으며 출력 매개 변수로 간주된다. 응용 프로그램을 여러 가지 다른 방식의 분류에는 클라이언트, 브라우저, 언어 및 운영 체제가 포함될 수 있다. 클래스: 각 분류에는 매개 변수의 발생을 설명하는 클래스와 하위 클래스가 포함될 수 있다. 각 클래스 또는 등가 파티션은 분류 내의 특정 값이다. 분류 트리 방법의 주요 단계(steps) 1. 테스트 대상 항목 선정(Selecting test o..

category_image
인파_
2021.09.20
(0)
Testing/SW 테스팅 이론

[QA] 🧪 직교 배열 테스트

​ 직교 배열 테스트 Orthogonal Arrays(이하 OA) - 직교 배열의 행x열 조합이 겹치지 않도록 하는 기법 - 모든 워소가 pairwise하여 비용 효율적 ​ [직교 배열표 관련 용어] ❏ 런(Runs): 배열표에서 행의 수. 직교 배열표 기법에 의해 생성되는 테스트케이스 수 ❏ 인자(Factors): 배열표에서 열의 수. 해당 배열표가 취급할 수 있는 변수들의 최대 수 ❏ 레벨(Levels): 개별 인자가 취할 수 있는 값들의 최대 수. 직교 배열표가 0에서부터 레벨-1까지의 값들을 포함하게 됨 ❏ 강도(Strength): 서브셋 열의 수 t. 선택된 t개 열의 모든 레벨 조합이 동등한 빈도로 직교 배열표에 등장함 아래 예와 같은 강도 2(t=2)의 직교 배열표에서는 어떤 두 개 열을 선..

category_image
인파_
2021.09.19
(0)
Testing/SW 테스팅 이론

[QA] 🧪 페어와이즈 테스트 개념 & 계산법

​페어와이즈 테스트 (조합 테스트) ​- 모든 가능한 입력 값들의 조합들을 테스트는 비현실적! 그래서 대신 모든 짝들의 조합(pairwise)을 테스트 - 대부분 결함이 두 입력 값의 상호작용에 기인하므로 입력 값이 많을 수록 복잡도 ↑ ​페어와이즈 실무 예제 ​ 아래 GUI 화면을 테스트 한다고 했을 때, ​ 테스트 조합 갯수는 3 * 2 * 2 * 2 * 2 = 48개가 나온다. ​하지만 페어와이즈 기법을 적용한 테스팅 기준은 아래와 같이 6건의 테스트 케이스로 충족되게 된다. 100%는 아니지만 그래도 아주 높은 확률로 저 6개만 테스트를 하면 48개를 테스트하는 것과 같은 효과를 얻을 수 있다. 이것이 페어와이즈의 매력이다. 페어와이즈 계산법 IPO알고리즘으로 페어들을 조합 도출하는 법 처음 두 ..

category_image
인파_
2021.09.19
(0)
Testing/SW 테스팅 이론

[QA] 🧪 결정 테이블 테스트 (+ 예시 문제)

​결정 테이블 테스트 입력 조건의 모든 조합에 대한 시스템의 액션을 고려하여 테스트 케이스를 도출 복잡한 논리적 관계를 표현하기 좋음. 누락된 요구사항 검사 시 용이 장점 : 테스트 베이시스 문제점을 발견할수 있음. TC를 작성하면서 결함 발견. 단점 : 작성에 시간이 많이 소요. 복잡한 시스템은 표현하기 어려움 결정 테이블 테스트 방법 연습 문제 : 쇼핑몰에서 의류 구매 시 VIP회원이면 10% 할인 해주고, 결제 방법은 신용카드, 무통장 입금을 이용 1) 조건, 행동 분석 조건 : 신용카드, 무통장, VIP 행동 : 주문처리/주문거부, 원가/10%할인 2) TC작성 조건은 왼쪽 위에, 행동은 왼쪽 아래에 위치하는 테이블 만든다 조건의 순서에 따라서 액션이 달라지지 않는다. 오로지 조건의 trigger..

category_image
인파_
2021.09.19
(0)
Testing/SW 테스팅 이론

[QA] 🧪 상태전이 테스트

​ 상태 전이 테스트 - 시스템의 상태 전이도를 기반으로 테스트 케이스 도출 - 실물을 보고 전개도를 뽑아내는 기법 1. 대상 시스템의 상태 전이도 모델링 2. 상태 전이도로부터 전이 트리 작성 3. 전이 트리로부터 각 전이 경로를 테스트하는 테스트 케이스 작성 4. 비정상적인 전이를 테스트 하는 테스트 케이스를 생성 *게임의 경우 완성품을 테스트 하는지라 4의 경우는 특수한 경우를 제외하고 존재하기 어렵습니다. 방법 : ​ 1) 대상 시스템의 상태 전이도를 모델링 2) 상태 전이도로부터 전이 트리를 만든다 (루트 노드는 지정) 3) 전이 트리로부터 각 전이 경로를 테스트 하는 테스트 케이스를 생성 상태 전이도 -> 전이 트리 -> 노드를 묶어 테스트 케이스 작성 4) 비정산적인 전이를 테스트 예시 문제..

category_image
인파_
2021.09.19
(0)
Testing/SW 테스팅 이론

[QA] 🧪 도메인 테스트

​도메인 테스트 도메인 테스트란, 입력변수들간의 상관관계가 존재하는 경우, 상관관계에 따라 영역을 분할하여 테스트케이스를 도출하는 테스팅 기법입니다. 입력변수들간의 상관관계 존재하면, 상관관계에 따른 영역(도메인) 분할한뒤 도메인에 따는 테스트케이스 도출을 합니다. 도메인테스트 구성요소 on : 경계에 있는 값 (부호 상관 없이) off : on에 가까운 값 >=,,=10 on : 10 off : 9 in : 11~ out : 9~ x>10 on : 10 off : 11 in : 11~ out : 10~ x=10 on : ..

category_image
인파_
2021.09.19
(0)