테스팅 관련
-
자동화 테스트(Automation Testing)테스팅 관련/자동화 2020. 9. 17. 18:28
연관 시리즈 자동화 테스트(Automation Testing) 테스트 자동화(Test Automation) 자동화 테스트 자동화 테스트 도구(Tool)를 사용하여, 테스트를 자동화하는 것 테스트 스크립트 작성 → 자동화 테스트 툴 실행 → 리포트 생성 테스트 커버리지 측정 / 모의 객체(Mock) 활용 테스트 가능 [반복적인 테스크, 수동으로 실행하기 어려운 테스크] 자동화 실제 결과와 예상된 결과 비교! 기능성과 비기능성 테스팅 모두 가능! 시간↓ 비용↓ 커버리지↑ 테스트 자동화와 헷갈리지 말 것! 자동화 테스트 대표적 유형 1. 단위 테스트(Unit Testing) 웹 어플리케이션의 개별 컴포넌트/유닛 테스트 개발 단계에서 실행되며, 웹 어플리케이션 테스팅의 첫번째 레벨로 고려할 수 있음 2. 스모크..
-
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는 테스트 대상 자바 코드를 자동으로 설치하고, 단위 테스트가 실행된 뒤에 리포트를 생성한다. 생성된 리포트를 통해 시스템이 얼마나 잘 ..
-
테스트 더블: 출력값테스팅 관련/Q&A 2020. 8. 14. 15:28
Q. _____________는 생태계를 제공한다. 더보기 A. 테스트 더블 Q. 모의 객체와 스파이 객체는 시험 대상 시스템에 대한 세밀한 모니터링을 허용한다. 더보기 A. True 모의 객체와 스파이 객체는 시스템 내 또는 다른 시스템들 사이의 상호작용을 가까이 관찰할 수 있게 한다. Q. 모의 객체와 스파이 객체를 사용한 테스팅에서 상호작용의 한 부분이 아닌 것은? 더보기 A. 필요한 입력값들은 시험 대상 시스템을 위해 생성된다. (X) → 더미 객체, 테스트 스텁, 페이크 객체 메소드가 호출 되었는지/안 되었는지 (O) 메소드 호출에 적절한 파라미터들이 사용되었는지 (O) 올바른 순서대로 메소드가 호출되었는지 (O) Q. __________ 객체는 페이크 객체들의 상호작용을 관찰할 수 있게 한다...
-
테스트 더블: 출력값테스팅 관련/개념 2020. 8. 9. 23:40
이어지는 시리즈 테스트 더블: 소개 테스트 더블: 입력값 테스트 더블: 출력값 더미 객체, 테스트 스텁, 페이크 객체 → 입력값 제공 모의 객체(Mock), 스파이 객체 → 입력값, 세밀한 모니터링 기능 제공 테스팅은 function 출력값을 확인하는 것보다 더 많은 것을 포함한다. 만약, function이 void값을 리턴한다면? 상호작용(interactions)을 테스트할 것! - 올바른 순서대로 메소드가 호출되었는지 - 메소드가 호출 되었는지/안 되었는지 - 메소드 호출에 적절한 파라미터들이 사용되었는지 모의 개체는 페이크 객체들의 상호작용을 관찰할 수 있게 해준다 // Mocking은 객체 간의 상호작용을 결정하는데 사용된다 // AirlineTravelService에 대해 호출되는 메소드를 보여..
-
테스트 더블: 입력값테스팅 관련/개념 2020. 8. 9. 23:00
이어지는 시리즈 테스트 더블: 소개 테스트 더블: 입력값 테스트 더블: 출력값 입력값으로 사용되는 3가지 1. 더미 객체 테스트 입력을 위해 파라미터로서 필요한 값. 어떤 값인지 중요치 않기때문에 무엇이든 대입한다. null값을 제외하지 않음. 2. 테스트 스텁 여러 값들이 결과값을 제공할 수 있도록 하는 매우 단순화된 특수 목적 객체. 예) 특정 입력값들이 있는 테스트 스텁에 메소드를 호출하면, 결과값을 제공할 수 있다. 3. 페이크 객체 사용함에 있어, 값비싼 것을 저렴한 것으로 대체함. 예) 서버에 실행되는 외부 데이터베이스 → 인메모리 데이터베이스(비용적으로 저렴한 쿼리) 페이크 객체: 테스트 대상인 것처럼 실행되는 새로운 클래스를 작성 더미 객체, 테스트 스텁: 프레임워크(예. Mockito)를..
-
테스트 더블: 입력값테스팅 관련/Q&A 2020. 8. 9. 22:04
Q. 테스트 더블을 위한 테스트 입력값을 제공할 때, _________와 __________을 사용한다. 더보기 A. 더미 객체; 테스트 스텁 입력값 - 더미 객체, 테스트 스텁 출력값 - 모의, 스파이 객체 Q. 테스트 더블을 구성하면서, 많은 값들에 대한 결과값을 제공하길 바란다. 무엇을 사용하겠는가? 더보기 A. 테스트 스텁 테스트 스텁은 여러 값들에 대한 결과값을 제공한다. Q. 테스팅 중에 유닛 테스트가 값비싼 데이터베이스 사용을 필요로 하는 것을 알았다. 어떤 것을 테스트 더블로서 사용할 것인가? 더보기 A. 페이크 객체 페이크 객체는 값비싼 것을 저렴한 것으로 대체한다. 예) 인메모리 데이터베이스 Q. Mockito에는 어떻게 구성했는지에 따라 클래스가 행하는 역할들 사이의 차이점이 있다. ..