오픈 스펙을 대으 한 테스트 계 Case Study : Case Study : Case Study : Case Study : TestCase TestCase TestCase TestCase Design with Open Design with Open Design with Open Design with Open Specification(FIDO Specification(FIDO Specification(FIDO Specification(FIDO) ) ) 2015.01 by JungGun home: genycho.blog.me
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
오픈 스펙을 대상으로 한테스트 설계 사례Case Study : Case Study : Case Study : Case Study : TestCaseTestCaseTestCaseTestCase Design with Open Design with Open Design with Open Design with Open Specification(FIDOSpecification(FIDOSpecification(FIDOSpecification(FIDO))))
2015.01 by JungGunhome: genycho.blog.me
This is…테스트 케이스를 설계하는 일은
다양한 테스트 레벨에서 발생하고
각각에 따라 다른 목적, 형태의 결과물이 생성 됨
오픈 스펙으로부터 (RESTful) API에 대한
(블랙박스 기반) 테스트 설계 사례를 공유
상세 절차나 결과물보다는 접근방법(분석-리뷰-설계-리뷰-수행-리뷰) 이
다른 분들에게 참고가 되었으면...
FIDO?
프로젝트프로젝트프로젝트프로젝트 개요개요개요개요
- FIDO Alliance : http://fidoalliance.org/about
기존의 패쓰워드 기반 온라인 인증 방식을 생체정보를 기반으로 인증할 수 있는 기술
FIDO Alliance에서는 이를 위해 전세계적으로 통용될 수 있는 표준 스펙을 제공함
우리도 이 스펙을 기반으로 우리만의 FIDO(Fast IDentity Online) 기술을 구현
FIDO Alliance(Fast IDentity Online) FIDO Alliance
(Fast IDentity Online)
Open Specifications
구현 by A 회사
구현 by B 회사
구현 by 우리
… …
FIDO FIDO FIDO FIDO 아키텍처아키텍처아키텍처아키텍처- FIDO Server : 정의한 정책 및 DB 정보에 따라 앱별, 사용자별 인증 장비를 관리하고 인증을 수행
- FIDO Client : 사용자가 요청한 인증 정보를 FIDO Server에 전송하고 그 결과를 사용자에게 전달
- FIDO SDK(server, client) : FIDO server/client를 사용자가 사용(개발)할 수 있도록 제공해 준 개발
킷
- Relying Party 서버/클라이언트(앱) : FIDO를 사용할 가상의 사용자 서버/클라이언트
- Authenticator-Specific Module (ASM) : 인증 장치와 인증 정보를 주고 받는 인터페이스 영역
20 Registration단말의 Secure Element에서 개인키, 공개키 생성 후 FIDO 서버에 공개키 등록
2 서버 8 Authentication 단말에서 생체인식 후 개인키/공개키를 이용하여 사용자 인증
3서버
22Transaction Confirmation
Authentication과 거의 유사하나, challenge값이 random이 아닌transaction data임ASM에서 제공하는 Secure Display로 display된 데이터를 사용자가confirm시 인증 수행
트랜잭션데이터 – 쇼핑몰,어떤물건,얼마에 샀는지를서버에서 추가로 확인해줌(데이터 조작 방지를 위해)
4서버
6 Deregistration 서버에 등록된 공개키와 Authenticator 내에 등록된 개인키 삭제
5 클라이언트 2 Discovery 단말에서 지원하는 Authenticator 검색
6 클라이언트 8 Registration단말의 Secure Element에서 개인키, 공개키 생성 후 FIDO 서버에 공개키 등록
7 클라이언트 8 Authentication 단말에서 생체인식 후 개인키/공개키를 이용하여 사용자 인증
8 클라이언트 8Transaction Confirmation
Authentication과 거의 유사하나, challenge값이 random이 아닌transaction data임ASM에서 제공하는 Secure Display로 display된 데이터를 사용자가confirm시 인증 수행
9 클라이언트 2 Deregistration 서버에 등록된 공개키와 Authenticator 내에 등록된 개인키 삭제
10 그외 Admin 기능
순번 시스템 설명
1 FIDO Client 앱(Android) 단말에 설치되며, RP App 및 ASM과 연동하여 FIDO operation 수행
2 FIDO Server Play Framework 기반의 데몬으로써 RP Server의 요청에 따른 FIDO operation 수행
3 FIDO Admin FIDO 관련 정보 및 정책 관리 모듈로써 CLI 형태로 동작
테스트 설계접근은 어떤 식으로
해야 할까?
오픈 스펙과반복적인
리뷰를 통해
수행수행수행수행 절차절차절차절차 개요개요개요개요
- Open Specfication 분석
- 테스트 설계
- 테스트 스크립트 작성(테스트 수행) 및 결과 리뷰
FIDO Open Specifications
분석분석
설계설계
구현 및 단위테스트구현 및 단위테스트
API/통합 테스트API/통합 테스트
스펙 리뷰, 테스트 요건 인터뷰
스펙 리뷰, 테스트 요건 인터뷰
테스트 설계테스트 설계
SoapUI 스크립트 작성
SoapUI 스크립트 작성
요건에 부합하는 제품 출시요건에 부합하는 제품 출시
개발 테스트인터뷰
검토
참조
상세상세상세상세 수행수행수행수행 절차절차절차절차
[ 테스트 케이스 ATS_RegRsp_003 ]서버에서 정의한 disallowed에 포함된 장비를 등록하려는 경우 에러가 발생하여야 한다[ REST API 호출 ]- URL BODY : http://70.30.160.97:9002/uaf/response/registration- 입력 파라미터. 장비 id : AA12#11CE. userName : soapui_testuser. App id : android:apk-key-hash:YHNHKiw[ 기대결과 ]에러코드 1492 Unacceptable Authenticator / 에러코드 1404 Not Found
[예]OpenSpecificationOpenSpecification 테스트 설계테스트 설계 SoapUI 테스트SoapUI 테스트
. API 관점에서 간이 스펙작성. 간이 스펙에 대해 개발팀과실제 구현내용과 비교하며리뷰. 구현 과정에서의 특이사항확인 및 현재 테스트하고 있는내용 확인
. 테스트 케이스 후보, 상세수행절차, 입력 데이터, 수행 결과 등에 대해 정리. 정리한 내용에 대해 개발팀과 리뷰(담당자 인터뷰). 리뷰한 내용 취합 후 개발팀전체에 공유, 피드백 요청. 테스트 케이스 작성
. 테스트 스크립트 작성(빠른시간 안에 수행하기 위해SoapUI 이용). Jenkins를 이용 테스트 자동수행 환경 구축. 결함 15건 개발팀과 리뷰
대상대상대상대상 API : API : API : API : RegistraionRegistraionRegistraionRegistraion대상대상대상대상 API : API : API : API : RegistraionRegistraionRegistraionRegistraion
테스트 케이스 후보: Protocol 버전이 없는 경우 기대한 에러가 발생하는가?테스트 케이스 후보: 필수 필드가 누락된 경우 기대한 에러가 발생하는가?
테스트 케이스 후보: appID, challenge 값등이 최초 요청한 값과 동일하지 않은 경우 기대한 에러가 발생하는가?테스트 케이스 후보: 클라이언트가 요청한 AAID 가 정책에 맞지 않는AAID일 때 서버단에서 기대한 동작을 하는가?테스트 케이스 후보: 헤더의 op 값이 정해진 값이 아닌 경우 기대한 에러가 발생하는가?테스트 케이스 후보: 필수 입력인 사용자 이름이 없거나, 공백문자가입력되거나, 128바이트를 넘는 경우 기대한 에러가 발생하는가?
기존 테스트수행여부,
방법, 위치정보
발생가능성
발생시영향 정도
Exception 발생하도록 개발
완료 및 테스트 코드작성 완료
하 하
개발 및 테스트 코드작성 완료
중 하
개발 및 테스트 코드작성 완료
상 상
개발 및 테스트 코드작성 완료
하 하
개발 및 테스트 코드작성 완료
하 하
개발 및 테스트 코드작성 완료
중 하
전체 중 일부(예)
이런 리뷰 활동에 대한개발팀의 반응은?
예상 이상의만족도
※※※※ 개발팀과개발팀과개발팀과개발팀과 ROI ROI ROI ROI 포함포함포함포함 회고회고회고회고
테스트란 기대한 요구사항을 제품이 만족하는지를 검증하는 작업Software testing is the process of analyzing a software item to detect the differences betweenexisting and required conditions and to evaluate the features of the software item (IEEE)
테스트란 기대한 요구사항을 제품이 만족하는지를 검증하는 작업Software testing is the process of analyzing a software item to detect the differences betweenexisting and required conditions and to evaluate the features of the software item (IEEE)
※테스트란※테스트란
과제에 대해 테스트를 전문으로 하는 인력이, 짧은 기간 안에,도움이 되는 방법을 찾아 지원하기 바람과제에 대해 테스트를 전문으로 하는 인력이, 짧은 기간 안에,도움이 되는 방법을 찾아 지원하기 바람배경배경