You Can Become A
늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !
🧪 TDD 방법론 (테스트 주도 개발) - 알기 쉽게 정리
TDD(Test Driven Development) 란? TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계를 중요시한다. eXtream Programming(XP) 미래에 대한 예측을 최대한 하지 않고, 지속적으로 프로토타입을 완성하는 애자일 방법론 중 하나이다. 이 방법론은 추가 요구사항이 생기더라도, 실시간으로 반영할 수 있다. TDD, 즉 테스..
[QA] 🧪 체크리스트(CL) 란? - 테스트케이스(TC) 와의 차이
체크리스트 - 테스팅 절차, 기능, 시스템 요소등을 체크리스트롤 작성함 일반 체크리스트 수행해야 할 테스트 목록과 절차를 나열함 블랙 체크리스트 최상위 기능 체크 개별적인 컴포넌트 기능 서로 다른 레벨의 기능과 그룹핑 시스템 요소 체크리스트 상위 레벨 서브 시스템이나 모듈 개인 구문이나 데이터 아이템 서로 다른 레벨의 시스템 요소와 그룹핑 테스트케이스 와 체크리스트 의 차이점 체크리스트는 예/아니오로 답변하는 확인성격의 항목을 나열한 리스트 이건 제품의 포장상태 테스트같은 것에 사용되는 것. 예를들면, 카메라제품의 경우, 카메라가 들어있는가? 렌즈가 들어있는가? 등 반면, 테스트케이스는 그보다는 더 많은 것을 담고 있음 즉,수행조건, 스텝, 기대결과가 명시되는 것 그것이 테스터가 어떻게 테스트한..
[QA] 🧪 유즈케이스 테스트
유즈케이스 테스트 액터와 액터 사이의 상호작용을 표현 -> 유저에게 결과값 전달 유즈케이스로 모델링 된걸 TC로 도출하는 기법 시스템이 실제 사용되는 프로세스 흐름에서 결함을 발견하는데 유용 인수 테스트를 설계할 때 유용 통합 테스트 단계에서 컴포넌트 사이의 통합 결함을 찾는데 도움 [테스트순서] 어떤 흐름을 테스트 할지 고려하여 테스트 시나리오 구성 유즈케이스 상세에서 테스트에 필수적인 상황 건택 유즈케이스 상세 내용을 입력값, 출려값, 상황 처리 등으로 분류하여 테스팅에 관여하는 상황을 선택 각각의 상황에 ID부여 각각의 상황에 가능한 값을 결정 (valid/invalid, upper/lower, true/false, not applicable)
[QA] 🧪 분류 트리 기법
분류 트리 기법 분류 트리는 테스트 객체에 적용되는 데이터 공간의 그래픽 표현을 생성할 수 있게하여 특정 블랙 박스 테스트 기술을 지원한다. 데이터는 다음과 같이 분류 및 클래스로 구성된다. 분류 : 테스트 객체의 데이터 공간 내의 매개 변수를 의미한다. 입력 매개 변수의 경우, 환경 상태와 사전 조건을 포함할 수 있으며 출력 매개 변수로 간주된다. 응용 프로그램을 여러 가지 다른 방식의 분류에는 클라이언트, 브라우저, 언어 및 운영 체제가 포함될 수 있다. 클래스: 각 분류에는 매개 변수의 발생을 설명하는 클래스와 하위 클래스가 포함될 수 있다. 각 클래스 또는 등가 파티션은 분류 내의 특정 값이다. 분류 트리 방법의 주요 단계(steps) 1. 테스트 대상 항목 선정(Selecting test o..
[QA] 🧪 직교 배열 테스트
직교 배열 테스트 Orthogonal Arrays(이하 OA) - 직교 배열의 행x열 조합이 겹치지 않도록 하는 기법 - 모든 워소가 pairwise하여 비용 효율적 [직교 배열표 관련 용어] ❏ 런(Runs): 배열표에서 행의 수. 직교 배열표 기법에 의해 생성되는 테스트케이스 수 ❏ 인자(Factors): 배열표에서 열의 수. 해당 배열표가 취급할 수 있는 변수들의 최대 수 ❏ 레벨(Levels): 개별 인자가 취할 수 있는 값들의 최대 수. 직교 배열표가 0에서부터 레벨-1까지의 값들을 포함하게 됨 ❏ 강도(Strength): 서브셋 열의 수 t. 선택된 t개 열의 모든 레벨 조합이 동등한 빈도로 직교 배열표에 등장함 아래 예와 같은 강도 2(t=2)의 직교 배열표에서는 어떤 두 개 열을 선..
[QA] 🧪 페어와이즈 테스트 개념 & 계산법
페어와이즈 테스트 (조합 테스트) - 모든 가능한 입력 값들의 조합들을 테스트는 비현실적! 그래서 대신 모든 짝들의 조합(pairwise)을 테스트 - 대부분 결함이 두 입력 값의 상호작용에 기인하므로 입력 값이 많을 수록 복잡도 ↑ 페어와이즈 실무 예제 아래 GUI 화면을 테스트 한다고 했을 때, 테스트 조합 갯수는 3 * 2 * 2 * 2 * 2 = 48개가 나온다. 하지만 페어와이즈 기법을 적용한 테스팅 기준은 아래와 같이 6건의 테스트 케이스로 충족되게 된다. 100%는 아니지만 그래도 아주 높은 확률로 저 6개만 테스트를 하면 48개를 테스트하는 것과 같은 효과를 얻을 수 있다. 이것이 페어와이즈의 매력이다. 페어와이즈 계산법 IPO알고리즘으로 페어들을 조합 도출하는 법 처음 두 ..
[QA] 🧪 결정 테이블 테스트 (+ 예시 문제)
결정 테이블 테스트 입력 조건의 모든 조합에 대한 시스템의 액션을 고려하여 테스트 케이스를 도출 복잡한 논리적 관계를 표현하기 좋음. 누락된 요구사항 검사 시 용이 장점 : 테스트 베이시스 문제점을 발견할수 있음. TC를 작성하면서 결함 발견. 단점 : 작성에 시간이 많이 소요. 복잡한 시스템은 표현하기 어려움 결정 테이블 테스트 방법 연습 문제 : 쇼핑몰에서 의류 구매 시 VIP회원이면 10% 할인 해주고, 결제 방법은 신용카드, 무통장 입금을 이용 1) 조건, 행동 분석 조건 : 신용카드, 무통장, VIP 행동 : 주문처리/주문거부, 원가/10%할인 2) TC작성 조건은 왼쪽 위에, 행동은 왼쪽 아래에 위치하는 테이블 만든다 조건의 순서에 따라서 액션이 달라지지 않는다. 오로지 조건의 trigger..
[QA] 🧪 상태전이 테스트
상태 전이 테스트 - 시스템의 상태 전이도를 기반으로 테스트 케이스 도출 - 실물을 보고 전개도를 뽑아내는 기법 1. 대상 시스템의 상태 전이도 모델링 2. 상태 전이도로부터 전이 트리 작성 3. 전이 트리로부터 각 전이 경로를 테스트하는 테스트 케이스 작성 4. 비정상적인 전이를 테스트 하는 테스트 케이스를 생성 *게임의 경우 완성품을 테스트 하는지라 4의 경우는 특수한 경우를 제외하고 존재하기 어렵습니다. 방법 : 1) 대상 시스템의 상태 전이도를 모델링 2) 상태 전이도로부터 전이 트리를 만든다 (루트 노드는 지정) 3) 전이 트리로부터 각 전이 경로를 테스트 하는 테스트 케이스를 생성 상태 전이도 -> 전이 트리 -> 노드를 묶어 테스트 케이스 작성 4) 비정산적인 전이를 테스트 예시 문제..
[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 : ..
[QA] 🧪 동등 클래스 & 경계값 분석
동등 클래스 분할 - 입력데이터를 동일한 동작이 예상되는 동등 클래스로 분할하고, 각 클래스로부터 대표 값을 선택하여 테스트 예) 교과목 학점 평가 시스템 요구사항 - 시험점수(75%) + 과제점수(25%) = 총점 = 학점 계산(A, B, C, D) - 점수(시험, 과제) 별 범위를 벗어나는 점수를 입력하면 "경고 메세지" 출력 - 정수만 모든 입력 가능 경계 값 분석 - 동등 클래스에서 입력값을 선택할 떄, 각 입력 영역의 경계에서 경계값으로 테스트 - 다수의 오류들이 입력 영역의 경계에서 발생되기 때문. 동등 클래스 분할과 함께 사용 - 경계값: Min-1, Min, Min+1, Normal, Max-1, Max, Max+1 절차) 위 교과목 학점 평가 시스템을 동등 클래스 분할 한것을 그대로 ..
[QA] 📚 SoftWare 테스트 이론 정리
소프트웨어 품질 소프트웨어의 유용성을 얻기위해 갖춰야하는 특성들의 집합, 사용자의 요구사항이나 만족도를 얼마나 충족시키는가의 지표 + 프로젝트 초기에 결함을 발견하지 못하고 개발 이후에 발견 시 많은 수정 비용이 발생 됨. + 품질 문제 -> 경쟁사에게 이득이됨. 자사의 이미지 하락. 소프트웨어 테스트이란? 프로그램에 존재하는 오류 와 결함을 검출하여 수정하고 요구사항에 부합되는지를 확인하며 소프트웨어의 품질을 향상시키는 것을 목적. 에러를 발견 할 목적으로 프로그램을 실행하는 프로세스 버그 발견을 목적으로 소프트웨어를 분석 또는 운영하는 프로세스 SW가 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 수동 또는 자동화된 방법을 동원하여 검사하고 평가하는 일련의 과정을 의미 최..