[Testing] SW 테스트 기본 개념들 정리
·
Minding's Programming/Knowledge
이 글은 STEN에서 공유한 '소프트웨어 테스트 실무 가이드 Part 1' 도서를 읽고 SW 테스트의 개념들을 정리한 글로, 책에서 나온 내용과 개인적으로 웹 검색 등을 통해 학습한 내용을 함께 작성했다. 1. 테스트 설계 기법명세 기반 테스트 설계 (Specification-based Testing)기능/요구사항 명세서 또는 기획서 등을 기준으로 테스트 케이스를 설계하는 방법. 시스템의 기능과 동작을 테스트하는데 중점을 두며, 블랙박스 테스트 기법이 주로 사용된다. 이 설계 기법의 테스트 케이스는 외부 동작과 기대 결과에 기반해 작성된다. 명세 기반 테스트 예시아래와 같은 요구사항 명세서(기획서)가 존재할 때, 명세 기반 테스트 기법으로 여러가지 방법을 사용할 수 있다.# 요구사항 예시 (ex. 대학교..
[OmniParserV2] LLM과 함께 사용할 수 있는 화면 인식 GUI 자동화 도구 (설치 및 실행 방법)
·
Minding's Programming/Knowledge
OmniParserV2OmniParserV2는 Microsoft에서 개발한 컴퓨터 비전(모델은 YOLO) 기반 GUI 자동화 도구로, 사용자의 UI 스크린샷을 구조화된 데이터로 변환해 LLM이 구조를 이해하고 상호작용할 수 있도록 돕는다. 이 도구를 통해 LLM과의 상호작용을 통해 GUI 테스트 등을 자동화할 수 있다. 아직은 실제 클릭과 같은 경우는 사용자의 판단이 필요하거나, 유해 콘텐츠 필터링 기능이 제공되지 않는 한계점이 존재하지만, OmniParserV2와 같은 도구를 통해 SW의 UI 테스트를 자동화하거나, 반복되는 업무를 자동화할 수 있을 것으로 기대된다. OmniParserV2의 특징상호작용 요소 탐지 및 분석: UI 스크린샷에서 클릭 가능한 버튼, 아이콘 등을 감지할 수 있고, 해당 요소..
[Python 3.13] Python에서 GIL을 비활성화 할 수 있다?
·
Minding's Programming/Knowledge
Python 3.13과 GILMedium을 구독하면서 읽게된 글을 통해 Python 3.13 버전이 출시되었다는 것을 알게 되었는데, 그 중에서도 놀라운 글을 보게되었다. 바로 Python 3.13에서는 GIL(Global Interpreter Lock)을 비활성화할 수 있다는 것이다. GIL은 Python의 큰 특징 중 하나이기도 했고, 대표적인 한계점이기도 했기 때문에 이 소식은 꽤나 놀라웠다. GIL은 프로세스 별로 여러 스레드가 동시에 코드를 실행하지 못하도록 하여 스레드 실행을 동기화하는 매커니즘이다. GIL을 사용하는 인터프리터인 Python은 멀티코어 프로세서가 실행되어도 항상 하나의 스레드가 실행된다. 그래서 Python에서는 멀티 프로세싱 대신 멀티 스레딩 방식을 주로 사용한다. 위 글에..
[QA/Testing] 모바일 앱 테스트 자동화 오픈소스 Appium 사용해보기
·
Minding's Programming/Knowledge
Appium?Appium은 다양한 플랫폼에서 모바일 app의 UI를 자동화할 수 있는 테스트 프레임워크다. Windows, Mac, Linux에서 모두 실행 가능하며, 하나의 테스트 스크립트로 Android와 iOS 앱을 모두 테스트할 수 있다. 테스트 스크립트 또한 Java, Python, Ruby, JS 등 자신이 익숙한 언어를 선택할 수 있다는 것도 큰 장점이다. 네이티브와 하이브리드 앱을 모두 테스트할 수 있고, 무엇보다도 오픈소스이기 때문에 무료로 사용할 수 있다. 따라서 현업에서도 앱 테스트시 CI/CD 파이프라인에 통합하여 가장 많이 사용하는 도구 중 하나다. Appium의 아키텍처 Appium의 아키텍처는 위 그림과 같이 구성되어 있다. 각 구성요소를 살펴보자면,Appium Client: ..
[프로젝트] Catch Me My Capital - 합리적인 투자 의사결정을 위한 금융 데이터 파이프라인 및 백테스팅 도구 (테스트 도입 편)
·
Minding's Programming/Knowledge
지난 프로젝트 소개 글에서 NEXT STEP 중 하나였던 테스트 도구 추가를 진행 중이다. 테스트 도입 계획부터 어떤 문제를 겪었고 어떻게 해결했는지를 이 글에서 다뤄보려고 한다. 테스트 도입 계획테스트를 도입하기에 앞서, 다음과 같은 항목들을 우선해서 선정했다.어떤 것을 테스트할 것인지?어떤 도구(라이브러리)를 사용할 것인지?테스트 코드는 어디에, 어떤 방식으로 구성할 것인지?테스트는 어떻게 실행할 것인지?1. 어떤 것을 테스트해야 할까?Catch Me My Capital(이하 CMMC) 프로젝트는 기본적으로 금융 데이터를 수집한 뒤 적절히 변환해 데이터를 저장하고, 이를 대시보드로 시각화하는 "데이터 파이프라인"이 중심이다. 따라서, 데이터 파이프라인이 정상적으로 잘 작동하는지 판단할 수 있는 요소들..
[QA/Testing] Charles를 이용해 테스트해보기 (Throttle test, Breakpoint test)
·
Minding's Programming/Knowledge
Charles SettingCharles Proxy tool을 이용하기 위해서는 설치 및 일부 세팅이 필요하다. 세팅 과정은 여기어때 기술블로그를 참고했다. 1. Charles Proxy Tool 다운로드 및 설치공식 설치 문서에서 Charles를 다운로드 받을 수 있다. 자신의 OS에 맞는 프로그램을 선택해 다운로드 및 설치하면 된다.라이선스를 구매하지 않을 경우 30일 동안 무료로 사용 가능하다. (+ 1세션 당 30분까지 사용 가능) 2. Chales PC 세팅설치가 완료되었다면, PC 프로그램 상 몇 가지 설정이 필요하다. 먼저 CA 인증서를 설치해주어야 한다. 내가 사용하는 OS인 Windows 환경을 예시로 소개하겠다. 인증서 설치Charles의 Help 메뉴에서 SSL Proxying > I..
[Postman/Github Actions] Github Actions를 통해 API 테스트 자동화하기
·
Minding's Programming/Knowledge
API를 테스트하는 도구로 많은 사람들이 Postman을 사용한다. Postman에서 미리 스크립트를 작성해두면, API에 대한 테스트를 자동화시킬 수 있는데, Github Actions를 이용하면 Github에 배포할 때마다 테스트를 시도하게 할 수 있다. Postman에서 API 테스트를 자동화하는 방법API 테스트 예시로 코인 데이터를 수집할 수 있는 Binance API를 사용해보았다. (코인 기본 데이터만 수집할 시 API 키는 필요없다.)https://github.com/binance/binance-spot-api-docs GitHub - binance/binance-spot-api-docs: Official Documentation for the Binance Spot APIs and Str..
[QA/Testing] Charles Proxy Tool - 테스트 효율을 높일 수 있는 툴
·
Minding's Programming/Knowledge
이 글은 우아한형제들의 기술블로그 글을 참고하여 정리한 글입니다.https://techblog.woowahan.com/14550/ 너 혹시 T(Tester)야? : 테스트 효율을 높이는 Charles 툴 활용기 | 우아한형제들 기술블로그테스트 데이터를 효율적으로 쌓기 위해 Charles라는 프록시 툴을 도입하였습니다. 프록시 : 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리킴 (출처 : 위키백과) Charles 툴techblog.woowahan.com Charles? (공식문서)Charles는 웹 디버깅 프록시 툴로, HTTP 및 HTTPS 트래픽을 모니터링 및 분석할 수 있으며, 요청 및 응답 데이터를 조작할 수 있는 기능을 가지고 있다. 많은 QA 엔지니어와 개발자들이 애플리케..