테스팅 관련/테스트
-
Mac에서 iOS 자동화 테스트 (Appium, IntelliJ, Junit, Java)테스팅 관련/테스트 2021. 5. 15. 10:55
iOS 자동화 테스트 환경 설정 '쉽게' 하기 (사용할 최소 부분만 설치) 환경 설정에 많은 시간을 뺏기지 말자 체크리스트 ✅ Java JDK ✅ Xcode ✅ Carthage ✅ Appium ✅ IntelliJ ✅ Gradle ✅ Selenium WebDriver ✅ Appium Java Client ✅ Junit 1. Java JDK 설치 잠깐! JDK가 설치되어있을 수도 있잖아?? 확인부터 들어간다! Terminal을 실행시켜 자바 버전을 확인해본다 $ java --version Java가 설치되어 있는 경우, java version "11.0.11" 2021-04-20 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194) Java ..
-
macOS에서 Jenkins 설치 및 실행테스팅 관련/테스트 2021. 5. 2. 20:22
1. Java SE Development Kit 다운로드 2. Jenkins LTS Generic Java Package 다운로드 3. Jenkins 다운받은 경로로 이동 & 실행 $ cd $ java -jar jenkins.war 'Jenkins requires Java versions [8, 11] but you are running with Java 16 ~~~' 위와 같은 에러 메시지가 나올 경우, Java 버전을 8 또는 11로 맞춰주어야 한다 일단, 버전 8 또는 11을 다운로드한다 zshrc 또는 bash_profile에서 JAVA_HOME 설정을 바꿔준 뒤 실행한다 (-v 다운받은 버전) Java 버전이 변경되었는지 확인한 뒤, 다시 Jenkins를 실행한다 $ vi ~/.zshrc $ v..
-
pytest 명령어테스팅 관련/테스트 2021. 5. 2. 20:10
터미널에서 pytest 실행 1. 테스트가 있는 디렉토리로 이동 2-a. 디렉토리 내 모든 테스트 실행 $ pytest 2-b. 특정 테스트 실행 $ pytest /* 예제) test_demo.py 테스트 실행 */ $ pytest test_demo.py 3. 옵션 /* 상세 정보 제공 (metadata, cachedir, platform directory) */ $ pytest -v /* 간단한 테스트 요약 정보 */ $ pytest -r /* 마크된 모든 테스트 실행 */ $ pytest -m /* 예제. 스모크 테스트 마크(태그): @pytest.mark.smoke 된 모든 테스트 실행 */ $ pytest -m smoke /* 이름에 문자열이 포함된 테스트 케이스 실행 */ $ pytest -k ..
-
비기능 테스트테스팅 관련/테스트 2021. 4. 11. 11:49
성능 테스트 시스템에 부하를 주면서 성능을 측정하는 테스트 성능 지표 = 초당 처리량 TPS(Throughput per Second), 응답 시간 (Response Time) TPS = 초당 몇 건의 요청을 처리하느냐, 응답 시간 = 요청당 응답 시간 부하 테스트 가상 사용자 수를 늘려가면서 부하의 양을 점차 늘림 → TPS와 응답 시간의 변화 추이 측정 & 임계 성능 측정 부하량을 계속 늘리다 보면, TPS가 더는 증가하지 않고 일정 수준을 유지하게 됨 → (이때의) 부하량 (=가상 사용자 수)은 처리 가능 용량으로 볼 수 있으며, TPS = 최대 성능 응답 시간이 중요한 시스템은 목표 응답 시간을 기준으로 성능의 임계점을 결정 부하량이 늘어나면 응답 시간은 x^2 형식으로 증가 임계 성능 = 응답 시..
-
여러 테스트 프레임워크를 같이 사용할 수 있을까?테스팅 관련/테스트 2021. 2. 18. 01:55
용도에 따라 적절한 툴 또는 프레임워크를 사용해야한다 예를 들어, 유닛 테스트와 기능 테스트는 본질적으로 다르다 유닛 테스트는 코드 내의 function과 method에 직접적으로 접근할 수 있으며, 기능 테스트는 여러 버전의 제품을 접할 수 있다 → 다양한 테스트 툴/프레임워크/솔루션이 필요 같은 Repository에 저장하는 경우 코드와 유닛테스트는 항상 같은 Repo에 저장되어야 한다 유닛 테스트는 소스코드에 의존 같은 언어로 작성되어야 한다 코드 변경이 있을 시, 유닛 테스트도 업데이트! 같은 언어로 작성 & 모든 소스코드가 한 개의 Repo에 저장되어있다면, 기능 테스트도 코드와 같은 Repo에 저장하는 것을 추천 (함께 버전 관리 가능) 다른 Repository에 저장하는 경우 소스코드와 다른..
-
API 테스트테스팅 관련/테스트 2020. 9. 10. 02:20
소프트웨어 테스트 유형 중 하나인, API 테스트 API를 직접 테스트 통합테스트(Integration testing)의 일부로서, API가 기능성, 안정성, 성능 및 보안에 대한 기대를 충족시키는지에 대해 확인 API 테스트는 메세지 계층에서 행해짐 (API에는 GUI 존재 X) 애플리케이션 로직을 매우 빠르고 효과적이게 검증할 수 있음 API 테스트는 자동화 테스트와 CI/CD 프로세스에서 중요하게 여겨진다. 짧은 릴리즈 주기과 빈번한 변경, 특히 테스트 출력(output)을 손상시키지 않고, 프레젠테이션 계층에 대처 UI 자동화 테스트에 비해 유지/관리 노력이 덜 필요하므로, 애자일 및 데브옵스에서 선호 웹/모바일 애플리케이션에서는, API = 웹 서비스 API 테스트 = 웹 서비스에 수행되는 자동..
-
불안정(Flakey) 테스트와 예방법테스팅 관련/테스트 2020. 8. 20. 16:49
불안정(Flakey) 테스트 어떤 결과가 나올지 알 수 없는 테스트 (때에 따라 성공/실패) 무엇이 테스트를 불안정하게 만들까? 동시실행(Concurrency) 멀티 스레드/프로세스가 동시에 작동할 때, 순서나 작동시간이 때에 따라 달라질 수 있다. 시간 테스트 성공/실패 시간을 정하면, 시스템 환경에 따라 성공/실패 유무가 정해진다. 환경 변화 다른 시스템 환경, 파일, 데이터베이스 등이 원인이 될 수 있다. 멀티 스레드 1개의 응용 프로그램이 스레드(thread)로 불리는 처리 단위를 복수 생성하여 복수의 처리를 병행하는 것. 즉, 응용 프로그램 내에서의 다중 작업(multitasking) 처리를 말한다. public class Multithread { class Runner implements Ru..
-
JaCoCo로 적합성과 코드 커버리지 분석 평가테스팅 관련/테스트 2020. 8. 14. 18:29
어떤 것이 테스트 되었는지 알 수 있는 방법은? → 테스트 스위트(suite)의 적합성을 평가 단위 테스트를 '완전히' 하길 원한다 → 시험 대상 시스템의 어떤 코드 체계(structures)가 테스트되었는지 측정한다 - 몇 줄의 코드가 테스트되었는지 - 얼마나 많은 지시사항(instructions)이 테스트 되었는지 - 실행한 bytecode는 어느정도인지 - 몇 개의 브랜치, if-then-else문들이 커버되었는지(true/false) 이를 자동적으로 측정하는 툴 = JaCoCo (자바 코드 커버리지) 자바 코드 → JaCoCo → 커버리지 리포트 생성 JaCoCo는 테스트 대상 자바 코드를 자동으로 설치하고, 단위 테스트가 실행된 뒤에 리포트를 생성한다. 생성된 리포트를 통해 시스템이 얼마나 잘 ..