ISTQB CTFL - 1.3 테스팅의 원리
·
ISTQB/CTFL
1.3 테스팅의 원리1. 테스팅은 결함의 존재를 밝히는 활동테스팅은 결함이 있음을 보여줄 수 있지만, 결함이 없음을 증명할 수 없다. 결함이 발견되지 않아도 소프트웨어가 완벽하다는 뜻은 아니다.2. 완벽한 테스팅은 불가능모든 것은 테스트하는 것은 현실적으로 불가능하다. 따라서 테스트 기법, 테스트 케이스 우선순위 지정, 리스크 기반 테스팅을 통해 테스트 노력을 집중해야 한다.3. 조기 테스팅의 중요성프로세스 초기에 결함을 발견해 제거하면 후속 결함을 예방할 수 있다. 이는 소프트웨어 개발 수명주기 후반에 발생할 수 있는 장애를 줄이고, 품질 비용을 절감할 수 있다.4. 결함의 집중 현상대부분의 결함은 소수의 시스템 컴포넌트에 집중되는 경향이 있다. 이는 파레토 원리의 예로, 리스크 기반 테스팅의 주요 입..
ISTQB CTFL - 1.4. 테스트 활동, 테스트웨어, 테스트 역할
·
ISTQB/CTFL
테스팅은 정황에 의존적이지만, 상위 수준에서 봤을 때 만약 없다면 테스팅이 테스트 목적을 달성하기 어렵게 되는 보편적인 테스트 활동이 있다. 이런 테스트 활동이 테스트 프로세스(test process)를 구성하게 된다. 테스트 프로세스는 여러 요인을 기반으로 주어진 상황에 맞게 조정될 수 있다. 테스트 프로세스에 포함할 테스트 활동과 그러한 활동의 구현 방법과 수행 시기는 보통 해당하는 상황의 테스트 계획을 할 때 결정한다1.4.1 테스트 활동과 업무테스트 활동과 업무는 순차적으로 수행되는 것처럼 보일 수 있으나, 실제로는 반복적 또는 병렬로 구현되는 경우가 많다.테스트 계획테스트 목적을 정의한 다음 전반적인 상황에 따른 제약 조건 내에서 목적을 가장 잘 달성할 수 있는 접근법을 선택하는 것테스트 모니터..
ISTQB CTFL - 1.5. 테스팅의 필수 기술 및 모범 사례
·
ISTQB/CTFL
기술이란 어떤 일을 잘 해내는 능력으로, 그 사람이 가진 지식, 경험, 적성에서 비롯된다. 우수한 테스터는 업무를 잘 수행하기 위한 몇 가지 필수적인 기술을 갖추어야 한다. 우수한 테스터는 팀플레이, 즉 협업에 능한 사람이어야 하며, 다양한 수준의 독립성으로 테스팅을 수행할 수 있어야 한다.1.5.1 테스팅에 보편적으로 필요한 기술테스팅 지식철저함, 신중함, 호기심, 세부사항에 대한 주의력, 체계적인 접근우수한 의사소통 기술, 경청하는 자세, 팀플레이분석적 사고, 비판적 사고, 창의석기술 지식도메인 지식테스터는 종종 좋지 않은 소식을 전해야 하므로, 의사소통 기술이 매우 중요하다. 테스트 결과 전달 시 비판으로 오해받을 수 있으며, 확증 편향 때문에 정보 수용이 어려울 수 있다. 테스팅을 파괴적인 활동으..
ISTQB 1장 예상 문제
·
ISTQB/CTFL
예상문제문제 1: 소프트웨어 테스팅의 주요 목적은?A) 소프트웨어의 모든 결함을 완벽히 제거하는 것B) 소프트웨어 결함의 존재를 밝히고, 품질을 평가하는 것C) 소프트웨어 개발 비용을 줄이는 것D) 소프트웨어 개발 속도를 높이는 것정답(드래그) B 해설(드래그)소프트웨어 테스팅의 주요 목적은 소프트웨어 결함의 존재를 밝히고, 소프트웨어의 품질을 평가하는 것문제 2: 테스팅이 결함을 식별하는 활동인 이유는 무엇인가?A) 결함이 없는 소프트웨어를 만드는 것이 목적이기 때문에B) 결함이 있을 때만 소프트웨어를 수정할 수 있기 때문에C) 결함이 있다는 것을 증명하기 위해D) 소프트웨어의 신뢰성을 보장하기 위해정답(드래그) C 해설(드래그)테스팅은 소프트웨어에 결함이 있음을 증명하기 위한 활동입니다. 이는 소프트..
ISTQB CTFL - 1.2 테스팅이 왜 필요한가
·
ISTQB/CTFL
테스팅은 정해진 범위, 시간, 품질, 예산 내에서 합의된 목표를 달성하는 데 도움을 준다. 테스팅은 테스트팀만의 활동이 아니며, 모든 이해관계자는 자신이 가진 테스트 기술을 사용해 프로젝트 성공에 기여할 수 있다. 컴포넌트, 시스템, 관련 문서를 대상으로 한 테스팅은 소프트웨어 결함을 식별하는 데 도움이 된다.1.2.1 성공을 위한 테스팅의 기여도결함식별테스팅은 비용 효율적인 방법으로 소프트웨어 결함을 식별한다. 식별된 결함은 디버깅을 통해 제거되며, 이를 통해 테스트 대상의 품질이 향상된다.품질 평가테스팅은 소프트웨어 개발 수명주기(SDLC)의 여러 단계에서 테스트 대상의 품질을 직접 평가하는 방법을 제공한다. 이러한 평가 결과는 릴리스 여부 등의 결정에 기여한다.사용자 대변테스팅은 개발 프로젝트에서 ..
Cypress에서 Window 객체 Stub하기 (앱 딥링크 테스트)
·
테스트 자동화/Cypress
개요 Cypress를 사용해서 딥링크를 검증하는 방법에 대해서 알아보자더보기딥링크란?모바일 환경에서 유저가 URL을 클릭했을 때, 앱을 실행시키고 특정 페이지로 이동하도록 돕는 기술ex) OO앱 다운로드, OO앱에서 확인딥링크 어떻게 구현될까?onClick이벤트에서 window.location.href, window.location.replace를 사용해서 앱을 실행시키거나, 앱 스토어로 이동을 시킨다. 실제 사이트에서 딥링크 확인해 보기딥링크가 적용된 코드코드가 난독화되어 모든 코드를 알기 어렵지만 c라는 변수는 IOS 스토어의 주소를 가지고 있다.var t 함수에서 접속한 단말기의 OS를 체크하고  window.location.href을 사용해서 앱 스토어로이동을 하는 것을 알 수 있다. 테스트 방법..
Cypress에서 POM(Page Object Model)사용하기
·
테스트 자동화/Cypress
개발을 할 때 우리는 유지보수와 확장성을 고려하여 다양한 패턴을 적용한다. 프론트엔드에서는 최근 FSD패턴이 뜨고 있고 백엔드에서는 레이어드 아키텍처가 대표적이다. 그렇다면 테스트 자동화에서 많이 사용하고 있는 패턴은 무엇일까? 바로 POM(Page Object Model)이다.POM(Page Object Model)?POM은 테스트 자동화에서 자주 사용되는 패턴으로 웹 페이지를 객체로 하여, 테스트 코드와 페이지의 UI요소를 분리하는 데 중점을 두는 패턴이다. 이를 통해 코드의 재사용성, 가독성, 유지보수성을 높일 수 있다.POM을 적용하지 않은 UI 테스트 코드(Cypress로 구현)describe('Login 기능 테스트', () => { it('로그인 성공',()=>{ cy.visit('/..
n일 동안 보지 않기 모달 테스트 자동화 하기
·
테스트 자동화/Cypress
개요'n일 동안 보지 않기' 같은 모달창은 어떻게 구현이 되고 Cypress를 사용해서 검증할 수 있는지 알아보자'n일 동안 보지 않기' 모달 어떻게 구현될까?'n일 동안 보지 않기' 모달은 주로 쿠키(Cookie)를 사용해 구현이 된다. 사용자가 모달 창에서 'n일 동안 보지 않기' 버튼을 클릭하면, 해당 정보가 브라우저 쿠키에 저장된다. 이 쿠키는 일정 기간 동안 브라우저에 남아 있어, 사용자가 다시 웹사이트에 방문할 때 이를 확인하여 모달을 표시할지 말지를 결정한다.브라우저 Dev Tool에서 보는 'n일 동안 보지 않기' 모달 HTML 코드브라우저 Dev Tool의 Sources탭에서 보는 '오늘 하루 그만보기' 코드클래스 네임이 pop-close-01인 버튼을 클릭했을 때 setMainPopCo..