모바일 애플리케이션에는 반드시 테스트해야 할 기능 및 비기능 품질 특성이 있다.
3.2 기능 테스팅 : SW 동작을 테스트하는 것
정확성
- 사용자가 원하는 기능을 정확하게 제공하도록 보장하고 = (적합성)
- 모든 데이터를 전달하는 등 정확하게 기능하도록 = (정밀성)
보안성
- 접근 통제 : 사용자와 애플리케이션 권한이 있는 경우에는 접근할 수 있으나 권한이 없는 경우 접근이 거절되도록 해야 함
- 디바이스에 저장된 데이터 보호 : 디바이스에 데이터를 저장할 때 안전하게 처리해야 함 (패스워드, 계정 정보, 신용카드 정보 등을 거래 처리 중에라도 접근 가능한 형태로 디바이스에 저장하면 안 된다.)
- 전송 중인 데이터 보호 : 정보는 네트워크를 통해 디바이스와 서버 간에 전송됨, 모든 데이터는 전송 도중 가로채이거나 악용되지 않도록 반드시 암호화해야 함
- 보안정책 : 조직에는 데이터를 어떻게 처리할지 누가 데이터에 접근 가능한지를 명시한 보안 정책이 따로 있을 수 있다. 해당 정책 확인
상호운용성
- 모바일 애플리케이션은 정보와 이미지를 다른 SW와 교환할 수 있어야 함. ex) 스마트폰 카메라로 촬영한 사진을 스마트폰에 설치된 이메일 애플리케이션을 통해 전송할 수 있다.
- 디바이스 별 고려사항 : 디바이스 간 공통점과 차이점을 이해하는 것 (디바이스 고유 특성정보는 빠르게 변화하기 때문에 테스팅 하기 직전에 확인해야 한다.)
- 주변장치 테스팅 : 만일 해당 애플리케이션이 특정 주변장치(카드리더기, 마이크 등)를 사용하거나 그 유무에 따라 영향을 받는다면 주변장치가 있는 상황과 없는 상황을 테스트해야 함
- 디바이스의 차이점 : 디바이스는 각각 고유한 특성을 가진다. 어플리케이션이 한 디바이스 또는 한 디바이스 군과 어떻게 상호 동작하는지, 그리고 디바이스 간의 차이가 애플리케이션에 어떻게 영향을 미치는지 이해하는 것이 중요하다.
3.2.5 테스트 설계
모바일 어플리케이션 테스트 설계 시 다음 사항을 고려해야 한다.
- 애플리케이션의 기능
- 디바이스의 기능
- 애플리케이션의 대상 산업 군 내에서의 리스크 (예: 구급차에 의료 정보를 제동 하는 모바일 디바이스)
- 네트워크 접속 성 운영 체제
- 소비 전력/배터리 수명
- 어플리케이션 유형 (네이티브, 하이브리드 등)
✔️애플리케이션의 기능은 요구사항, 유즈 케이스, 요구 명세서 등에 명시하기도 하지만 애플리케이션에 대해 배우기 위해 실행하는 탐색적 테스팅을 통해 파악하기도 함
고려해야 할 디바이스의 사양 (일부)
- 화면 크기 및 해상도
- 위치정보(디바이스의 지리적 위치 식별 역량)
- 통화 기능 (전화기로 활용될 역량)
- 가속도계 (세 축 기반 가속센서 - 위/아래, 앞뒤, 좌우 - 게임 및 회전용)
- 자이로스코프 (회전축 운동을 이용한 위치 및 방향 감지 센서)
- 자력계 (자기장 방향 측정 - 나침반으로 활용) 예 : 어플리케이션이 자력계를사용할경우 자력계가 없는 디바이스는 물로 다양한 유형의 자력계를 가진 디바이스들에 대한 테스트 케이스를설계할필요가 있다.
기능과 더불어 애플리케이션 설치에 대한 내용도 테스트 설계에 포함해야 한다. 대부분의 애플리케이션을 무선(OTA: over-the-air)으로 설치할 수 있기 때문에 설치 중 재설치, 업그레이드 및 제거 등의 상황에서 발생하는 방해 요소에 대한 테스트 케이스가 필요하다.
[핵심 기초 기법 사용]
- 동등 분할 : 한 항목의 테스트 결과가 전체 클래스를 대표한다고 가정하여 동등 처리에 기반하여 동등 클래스를 결정하고 각 클래스에서 한 항목을 테스트한다
- 경곗값 분석 : 입력 또는 출력 범위의 결계에 근거하여 테스트를 선택한다. 예를 들면 전화번호부 목록에 저장할 수 있는 최대 건수를 테스트하고, 0개, 1개, 그리고 최대 건수 +1 건을 테스트한다.
- 결정 테이블 : 입력 자극(원인)으로 인한 출력, 행동(효과)의 조합을 테스트한다 예: 이메일이 수신될 경우 설정된 사운드가 출력되는지
- 상태 전이 모델 : 컴포넌트 또는 시스템의 두 상태 사이의 전이를 테스트한다. 예: 외부 조도가 뱐함에 따라 디스플레이 밝기가 조절이 되는지 테스트
- 유즈 케이스 메인시나리오와 모든 대체 시나리오를테스트한다.예: 배달원이 택배 배송 후 배송이완료되었음을기록하고 수취인의 서명을 받고배송 위치를 기록할수 있는지 테스트
경험 기반 기법
- 탐색적 테스팅 : 애플리케이션에 대해 배우면서 테스트 설계와 실행을 동시에 함으로써 테스트한다. 예: 신규 애플리케이션에 대해 테스트하는 경우 해당 애플리케이션을 사용하여 하나의 과업을 완수하고 발견한 모든 결함을 문서화한다.
- 결함 공격 : 대상SW에서수 있는 결함을 집중적으로테스트한다.
시나리오 기반 테스팅에서 사용할 수 있는 퍼소나 목록 [퍼소나 기반 테스팅]
- 처음 사용자
- 일반적인 사용자
- 빈번한 사용자
- 전문 사용자
- 혼란스러운 사용자(SW를 이해하지 못함)
- 화난 사용자
- 겁먹은 사용자(기술을 두려워함)
- 참을성 없는 사용자
- 악의적 사용자
- 즐기는 사용자(SW를 통한 경험을 즐김)
- 기술적 지식이 있는 사용자
- 특정 연령대 사용자 (ex. 65세 이상)
3.3 비기능 테스팅
비기능 테스팅은 기능이 사용자에게 전달되는 방법에 집중한다.
3.3.1 성과(성능) 테스팅
시스템에 특정 부하가 발생할 경우 시스템의 응답 시간을 확인하는 것이다.
모바일 애플리케이션의 경우 성능 테스팅을 위해 네트워크 접속 유형 및 강도, 디바이스 유형, 디바이스 메모리 등 제어하기 어려울 수 있는 조건을 고려해야 한다.
[모바일 S/W 성능 테스팅에서 포함해야 할 목록]
- 애플리케이션 시작 시간 : 최초 사용자의 시작으로부터 애플리케이션이 완전히 사용 가능해질 때까지의 시간
- 사용자 인터페이스 지연 : 애플리케이션의 상호작용(버튼 누르기, 이미지 이동 등)을 받는 순간부터 그 응답을 사용자에게 제공하기까지 소비된 시간
- 불규칙적 성과 : 동일한 유형의 입력에 대해 현저히 다른 성능을 보일 때의 문제
- 시각적 지표 : 사용자에게 정보를 정확하게 표시되는지(로딩 중 이미지)
- 자원 사용 : 메모리, 배터리 등
- 작업 완료 : 사용자가 애플리케이션을 사용하여 작업을 완료하는데 소요되는 시간
- 코드 비효율성
웹 애플리케이션검증 시 추가로 확인되어야 할 항목
- 사이트 페이지 로딩 시간
- 지연
- 자원 활용
3.3.2 사용성 테스팅
모바일 애플리케이션은 전통적인 애플리케이션보다 더 넓고 다양한 사용자 기반을 가지는 경향이 있다.
이유 중 하나는 애플리케이션에 대한 접근이 용이하기 때문이고, 다른 하나는 애플리케이션은 언제 어디서나 사용 가능해야 한다는 생각 때문이다.
[모바일 S/W 사용성 테스팅] : 모바일 어플리케이션은 언제 어디서나 사용 가능해야 한다는 생각을 사용자들은 가지고 있기 때문에 사용성 테스팅은 중요시되어야 함
✔️모바일 애플리케이션에서 테스팅해야 할 부분
- 단순성 : 모바일 애플리케이션은 단순하고 사용하기 쉽게 설계되어야 한다.
- 레이아웃 : 대부분 상호작용은 손가락을 통해 이루어짐, 그에 따라 손가락 사용을 위한 공간이 있어야 하며, 텍스트 입력을 위한 키보드를 표시할 수 있는 공간이 충분히 있어야 함
- 직관성 : 사용자는 모바일 애플리케이션을 로딩 즉시 사용할 수 있기를 기대함 알기 쉽게 이해하기 쉽게
- 내비게이션사용자는 다수의 선택지에서 자신의 경로를 찾기보다는 자신이 가야 할 방향으로 인도해주길 기대한다. 모바일 어플리케이션은 간단하고 찾기 쉽게 구성되어 있기를 기대한다.
✔️[이식성 테스팅] : 어플리케이션이 대상 환경으로 옮겨졌을 때 어플리케이션 기능이 얼마나 잘 동작 할 것인지에 초점을 맞추고 있다 좋은 이식성 테스팅을 하려면 대상 환경과 그 환경의 특성에 대해 명확히 이해해야 한다.
✔️미래를 대상으로 하는 이식성 테스트를 위해서는 어떤 디바이스가 계속 인기가 있을 것인지, 어떤 기능이 충돌하거나 제한될 가능성이 있을지 그리고 사용자가 어떤방식으로 사용할지에 대한 예측을 해야 함
- 디바이스 분야는 매우빠르게 변화하기 때문에 테스터는 새로운 디바이스와 주요 업데이트의 출시일정에 대해 알고있어야 함
✔️ [신뢰성 테스트] : 해당 S/W가 장애를 겪었을 때 얼마나 정확히 찾아내고 적절하게 처리하여 그 장애로부터 회복하는가를 검증하는 것 ex) 모바일 S/W경우 통신이 끊겼을 경우 다시 접속이 가능해야 하며 트랜잭션 데이터를 분실하지 않고 지속해서 처리 할 수있어야 한다.
'📖 공부' 카테고리의 다른 글
KSTQB_Mobile Tester 5장 (0) | 2022.07.29 |
---|---|
KSTQB_Mobile Tester 4장 (0) | 2022.07.27 |
KSTQB_Mobile Tester 2장 (0) | 2022.07.22 |
KSTQB_Mobile Tester 1장 (0) | 2022.07.20 |
소프트웨어 테스팅 7가지 원칙 (0) | 2022.07.16 |