분류 전체보기
-
API 테스트테스팅 관련/테스트 2020. 9. 10. 02:20
소프트웨어 테스트 유형 중 하나인, API 테스트 API를 직접 테스트 통합테스트(Integration testing)의 일부로서, API가 기능성, 안정성, 성능 및 보안에 대한 기대를 충족시키는지에 대해 확인 API 테스트는 메세지 계층에서 행해짐 (API에는 GUI 존재 X) 애플리케이션 로직을 매우 빠르고 효과적이게 검증할 수 있음 API 테스트는 자동화 테스트와 CI/CD 프로세스에서 중요하게 여겨진다. 짧은 릴리즈 주기과 빈번한 변경, 특히 테스트 출력(output)을 손상시키지 않고, 프레젠테이션 계층에 대처 UI 자동화 테스트에 비해 유지/관리 노력이 덜 필요하므로, 애자일 및 데브옵스에서 선호 웹/모바일 애플리케이션에서는, API = 웹 서비스 API 테스트 = 웹 서비스에 수행되는 자동..
-
APIIT 기본상식/개념 2020. 9. 10. 02:20
소프트웨어 인터페이스 종류 중 하나인, API Application Programming Inteface 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식 응용프로그램이 운영체제의 특정 기능을 호출하는 함수의 집합 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 여러가지 정의가 있다. 대학교 때, '모바일 프로그래밍' 수업에서 안드로이드 앱을 만드는 프로젝트를 한 적이 있다. 나는 여행 관련 어플을 선택하였고, 여러 공항의 비행기 출발/도착 시간 데이터를 사용하고 싶었다. 그러기 위해서는, 공항 제공 API를 끌어다 써야했다. 이를 참고하여 나만의 정의를 내린다면, API는 응용프로그램이 데이터(또는 기능, 프로그램)를 유용..
-
인터페이스IT 기본상식/개념 2020. 9. 9. 16:39
인터페이스(I/F) 사물의 경계가 되는 부분과 그 경계에서의 통신 및 접속이 가능하도록 하는 매개체 서로 다른 두 개 이상의 독립된 컴퓨터 시스템 구성 요소 간에 정보를 교환하는 공유 경계(shared boundary) 사전적 정의는 이러하다. "매개체" "경계" 라는 큰 의미를 두고 좀 더 정리해 보자. 인터페이스는 크게 하드웨어, 소프트웨어, 사용자로 분류된다. 하드웨어 인터페이스 하드웨어 간의 통신 및 상호 접속을 위해 버스, 기억 장치, 기타 입출력 장치에 존재 ex) 프로토콜(통신 규약) - UART, I2C, SPI 커넥터(입출력 포트의 전기적 연결 장치) - USB 직렬 커넥터 플러그, RS-232C(통신용 직렬 인터페이스), SCSI(병렬 인터페이스 장치) 소프트웨어 인터페이스 소프트웨어 ..
-
불안정(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)를..