using json interface testing
인터페이스 테스트에 JSON 사용 :
인터페이스 테스트는 서로 다른 두 시스템 간의 통신을 확인합니다. 두 네트워크 간의 송수신 통신이 올바르게 수행되는지 확인하기 위해 테스트중인 애플리케이션에서 수행됩니다.
인터페이스는 기본적으로 두 소프트웨어 시스템 간의 연결이며 데이터 전송을위한 연결 테스트를 인터페이스 테스트라고합니다. 인터페이스는 실제 세계의 다양한 서비스를 다루며 웹 서비스, API 등을 참조하는 데 사용할 수 있습니다.
인터페이스에는 두 시스템 간의 통신을 용이하게하는 일련의 규칙, 메시지, 명령 등이 포함됩니다.
이 테스트는 주로 두 가지 주요 세그먼트 테스트에 중점을 둡니다.
- 데이터베이스 및 애플리케이션 서버 통신
- 웹 및 애플리케이션 서버 통신
인터페이스 테스트는 위에서 언급 한 시나리오를 평가하여 구성 요소가 컨트롤과 데이터를 서로 올바르게 올바르게 전달하는지 확인하기 위해 수행됩니다. 또한 서로 다른 모듈 간의 상호 작용을 확인합니다.
학습 내용 :
인터페이스 테스트가 수행되는 이유는 무엇입니까?
다음을 보장하기 위해 수행됩니다.
- I 시스템 간의 통신이 올바르게 수행되는 경우.
- 시스템에서 사용되는 모든 소프트웨어 및 하드웨어가 올바르게 작동하고 있습니다.
- 커뮤니케이션에 연결된 모든 문서는 모든 통합 플랫폼에서 사용할 수 있습니다.
- 보안 및 암호화 요구 사항은 시스템 간의 통신을 준수합니다.
- 통합 구성 요소는 네트워크 장애 및 통신 손실을 처리 할 수 있습니다.
발견 된 결함 유형
사용자 인터페이스 테스트에서 발견 된 대부분의 결함은 시스템 간의 데이터 매핑이 잘못 되었기 때문입니다. 따라서 대부분의 버그는 기본적으로 다음 범주로 분류 할 수 있습니다.
- 두 시스템 간의 데이터 전송이 일치하지 않습니다.
- 시스템 중 하나가 다른 시스템의 데이터 전송을 잘못 해석합니다.
- 두 시스템 간의 전송 채널 또는 인터페이스가 실패하고 시스템 간의 데이터 전송이 제한되어 전체 인터페이스가 실패합니다.
어떻게 수행됩니까?
주로 다음 단계로 분류 할 수 있습니다.
- 인터페이스를 개별적으로 테스트 할 수 있습니다. 시스템 테스트 . 이러한 유형의 테스트는 주로 스텁 또는 더미 시스템을 사용하여 수행됩니다. 더미 시스템 또는 스텁은 전체 시스템 상호 작용의 동작을 가장합니다.
- 인터페이스 테스트가 수행되는 또 다른 인스턴스는 두 시스템이 서로 통신하는 접합입니다.
- 따라서 한 시스템에서 보낸 데이터가 올바르게 매핑되고 다른 시스템에 삽입되었는지 테스트합니다. 데이터 삽입 이외에도 데이터 무결성, 즉 다른 시스템에 삽입 된 데이터가 조작되거나 변경되지 않았는지 등을 확인합니다.
- 시스템이 다른 애플리케이션 데이터베이스로 데이터를 전송할 때 테스트를 수행 할 수도 있습니다. 여기서는 매핑을 기반으로 한 시스템의 데이터가 주어진 테이블의 주어진 열에 올바르게 삽입되었는지 테스트합니다. 또한 소스 시스템과 관련하여 데이터 무결성 및 데이터 일관성을 테스트합니다.
이러한 모든 테스트 시나리오에서 인터페이스 테스트는 비즈니스 요구 사항 및 비즈니스 흐름 규칙을 기반으로 수행됩니다.
인터페이스 테스트와 통합 테스트의 차이점
함께 연결된 구성 요소의 종단 간 기능 확인 및 검증을 호출합니다. 통합 테스트 시스템 통합 테스트로 널리 사용됩니다. 통합 테스트는 주로 함께 통합 된 두 개 이상의 시스템이 완벽하게 함께 작동하는지 여부를 확인합니다.
테스팅 상호 작용 반면에 기본적으로 두 시스템 간의 연결 채널에 집중합니다. 둘 이상의 시스템 간의 연결 채널을 인터페이스라고합니다. 이 연결 채널의 테스트를 인터페이스 테스트라고합니다. 대부분의 인터페이스는 API 또는 웹 서비스입니다. UI는 없지만 입력을 받아 사용자에게 출력을 제공합니다.
예를 들어
위의 예에서 웹 사이트와 데이터베이스는 로그인 정보 (예 : 사용자 이름 및 비밀번호)를 전송하는 인터페이스를 공유합니다.
인터페이스는 웹 서비스를 사용하여 로그인 정보를 데이터베이스에 전송합니다. 그러면 수신 메시지 (사용자 이름 및 비밀번호)의 신뢰성을 검증하고 사용자 이름과 비밀번호가 데이터베이스에있는 레코드와 일치하는 경우 true 값을 반환합니다. 둘 중 하나 또는 사용자 이름과 암호가 내부에있는 데이터와 일치하지 않는 경우 false입니다.
인터페이스 테스트 예를 살펴 보겠습니다.
서로 다른 데이터베이스가 상호 작용하는 애플리케이션이 있다고 가정 해 보겠습니다.
이것에 예 , 인터페이스 채널을 통한 두 가지 데이터베이스 상호 작용을 고려합니다.
두 개의 데이터베이스 또는 애플리케이션 (데이터베이스 A와 B)이 있다고 가정 해 보겠습니다. 'A'는 일부 데이터를 'B'로 전송 한 다음 B가 일부 작업을 수행하는 데 사용합니다. 수신 데이터에 대해 특정 작업을 수행 한 후 B는 해당 데이터를 데이터베이스에 삽입하고 업데이트 된 데이터 목록을 확인하기 위해 출력 JSON을 생성하여 A에게 다시 보냅니다.
A와 B는 둘 다 통신을 위해 인터페이스 채널을 사용합니다.
비즈니스 시나리오
'A'에는 재무 부서에 속한 모든 직원의 직원 데이터가 포함됩니다.
데이터를“B ' 매일. 'B'에는 일반 직원 세부 정보에 대한 데이터가 포함됩니다. 'A'의 모든 데이터는 'B'의 특정 테이블과 열로 전송되어야합니다. 입력 데이터 외에 'B'도 데이터를 정렬하고 구성해야합니다. 또한 데이터가 올바른 직원에 대해 입력되었는지 확인해야합니다.
데이터가 시스템에 입력되면 'B'는 데이터가 데이터베이스에 삽입되었는지 확인하기 위해 출력 JSON을 보내야합니다.
JSON 스키마가 일치하지 않거나 데이터가 누락 된 경우“B”는 데이터를 처리하지 않으며 거부 사유와 함께 Reject JSON 메시지를 보냅니다.
테스트 환경 설정
이와 같은 시나리오를 테스트하려면 데이터베이스 'A'를 모방하는 테스트 스텁이 필요합니다. 개발자는 테스트 JSON 또는 모의 UI를 덤프하고 JSON 데이터를 붙여넣고 인터페이스를 통해 처리를 호출 할 수있는 위치를 제공 할 수 있습니다. 테스트 목적으로 'B'로부터 확인 JSON을받을 수있는 출력 위치를 가질 수도 있습니다.
우리의 예 , 우리는 테스트 JSON을 넣을 폴더 경로를 사용할 것입니다. 서비스는 지속적으로 JSON 파일의 위치를 파고들 것입니다. 파일이 있으면 서비스는 파일을 선택하여 인터페이스를 통해 'B'로 보냅니다. 파일이 선택되면 픽업 위치에서 삭제됩니다.
테스트 시작
테스트 환경이 설정되면 다음 단계는 테스트 데이터를 만드는 것입니다.
테스트 데이터를 생성하는 동안 (테스트 JSON 읽기) 몇 가지 사항에 유의해야합니다.
- 비즈니스 규칙을 따르십시오.
- 필수 필드가 있는지 확인하십시오.
- 각 테스트의 비즈니스 규칙에 따라 필드 값을 변경하십시오.
- JSON 스키마가 올바른 형식인지 확인하십시오.
- JSON 파일 이름에 대한 명명법이 준수되었는지 확인하십시오.
테스트에 사용할 샘플 테스트 JSON을 살펴 보겠습니다.
{ 'employeeID ': 2569875, 'LastName': “Jackson”, 'baseSalary': 2569, 'DesignationCode':'P102', “Expenditure”:{ 'Month':“Feb”, 'Year': 2017, 'Official':560, 'Others”:0, } }
테스트 시작
테스트 JSON 파일을 생성했으면 픽업 위치에 놓습니다. 서비스는이를 선택하여 데이터베이스 B에 게시합니다.
테스트 할 시나리오 :
다음과 같이이 예제에 대해 테스트해야하는 여러 시나리오가있을 수 있습니다.
- 웹 서비스를 사용하여 데이터를 보내고받습니다.
- 입력 데이터에 대한 데이터 무결성. 이는 테스트 JSON을 통해 입력 된 데이터에 대해 데이터베이스 B의 테이블과 열을 쿼리하여 유효성을 검사 할 수 있습니다.
- 부정적인 시나리오.
먼저 테스트 JSON 파일이 해당 위치에서 선택되었는지 또는 해당 위치에 없는지 확인합니다. 이것은 서비스의 작동을 검증합니다. 다음으로 출력 폴더로 이동하여 출력 JSON을 봅니다. 출력 JSON의 존재 여부는 입력 데이터가 데이터베이스 B로 전송되었고 이에 대한 승인이 수신되었는지 확인합니다.
테스트의 다음 부분은 데이터베이스에 입력 된 데이터의 유효성을 검사하는 것입니다.
위 테스트에서는 테스트 JSON을 통해 전송 된 데이터가 데이터베이스에 올바르게 입력되었는지 확인합니다. 데이터 무결성, 데이터 일관성 및 데이터 삽입을 검증합니다. 데이터가 테이블에 올바르게 삽입되었는지 확인하기 위해 특정 테이블의 주어진 열에 대해 데이터베이스 B를 쿼리해야합니다.
데이터를 삽입해야하는 EmpDetails 테이블이 있다고 가정 해 보겠습니다. 따라서 데이터의 유효성을 검사하기 위해 쿼리를 실행합니다.
쿼리는 다음과 같습니다.
SELECT employeeID, LastName, baseSalary, DesignationCode, Month, Year, Official, Others FROM EmpDetails Where employeeID = 2569875;
여기서는 employeeID를 EmpDetails 테이블의 데이터를 쿼리하기위한 기본 키로 사용합니다. 데이터가 삽입 된 모든 열 이름을 사용하여 쿼리합니다. 그런 다음 JSON을 통해 전송 된 데이터로 열 이름의 데이터를 검증 할 수 있습니다.
위의 경우 JSON의 데이터는 데이터베이스의 두 개 이상의 테이블에 저장되므로 SQL JOINS를 사용하여 원하는 모든 데이터를 가져올 수 있습니다.
테스트의 세 번째 단계는 부정적인 시나리오를 테스트하는 것입니다.
테스트 할 수있는 몇 가지 부정적인 시나리오는 다음과 같습니다.
- 잘못된 데이터가 JSON을 통해 공급 될 때 시스템의 동작입니다.
- JSON에 잘못된 스키마 또는 구조가있는 경우.
- 처리 된 JSON에 기본 키 또는 필수 필드가 누락 된 경우.
- JSON 파일의 명명법이 유효하지 않습니다.
이러한 모든 경우에 시스템은 이러한 시나리오를 처리 할 수 있어야하며 비즈니스 규칙에 따라 시스템에 데이터를 삽입해서는 안됩니다.
결론
데이터가 전송되는 두 시스템 간의 연결 채널을 인터페이스 및 인터페이스 테스트라고하며 주로 이러한 연결 테스트를 중심으로 작동합니다. 대부분의 인터페이스는 웹 서비스 또는 API를 사용합니다. 항상 UI가있는 것은 아니지만 입력을 받고 출력을 제공합니다.
char에서 int로 변환 C ++
가장 널리 사용되는 데이터 전송 형식 중 하나 인 JSON은 인터페이스 데이터 전송에 사용할 수 있습니다.
테스터는 테스트 데이터 (JSON 형식)를 만들고 시스템에서 출력 데이터를 읽으려면 기본 JSON 구조 지식이 있어야합니다. 테스터는 또한 JSON 키와 데이터베이스 테이블 열 간의 매핑에 정통해야합니다.
인터페이스 테스트 작업을 원하는 모든 테스터는 비즈니스 지침 및 애플리케이션 규칙에 대한 명확한 지식을 가지고 있어야합니다. 테스터는 또한 데이터베이스에 대한 적절한 지식이 있어야하며 간단한 SQL 쿼리를 작성할 수 있어야합니다.
질문이나 설명이 있으시면 의견 섹션에서 저희에게 연락하십시오.
튜토리얼 # 5 : JSON 인터뷰 질문