자격증/CSTS

[CSTS 요약] 4 품질 특성과 비기능 테스트

nowj8n 2024. 1. 23. 12:54
반응형

ISO 25010 품질 모델

  • 기능 적합성(Functional Suitability): 제품 또는 시스템이 명시적 또는 묵시적 요구를 충족하는 기능 제공
  • 성능 효율성(Performance Efficiency): 명시적 조건하에서 사용된 자원의 양에 대한 성능
  • 호환성(Compatibility): 다른 제품, 시스템 또는 구성요소와도 정보를 교환하거나 필요한 하드웨어/소프트웨어 환경을 공유하며 필요한 기능을 수행 가능
  • 사용성(Usability): 특정한 사용자들이 주어진 사용 환경(특정 사용 컨텍스트)에서 특정 목적 달성 위한 제품 또는 시스템 사용시의 효율성, 효과성 및 만족도
  • 신뢰성(Reliability): 특정 조건에서 특정 기간 동안 오동작 없이 요구되는 기능 수행
  • 보안성(Security): 시스템의 정보 및 데이터 보호
  • 유지보수성(Maintainability): 유지보수의 효율성
  • 이식성(Portability): 다양한 플랫폼에서 운영 가능
주특성 부특성 설명
기능 적합성 기능 완전성 기능 집합의 모든 요구사항 포괄
긴응 정확성 시스템이 정확한 결과를 제공
기능 적절성 목적 달성에 도움
성능 효율성 시간 반응성 기능 수행 시 응답•처리 시간 및 처리율
자원 효율성 기능 수행 시 시스템 사용 자원 요구사항 충족
수용성 시스템 매개변수의 최대 한계의 요구사항 충족
호환성 공존성 타 소프트웨어에 나쁜 영향을 미치지 않고 자원 공유하면서 요구되는 기능 효율적으로 수행
상호운영성 둘 이상의 시스템 또는 구성 요소가 정보 교환하고 교환된 정보를 사용
사용성 적합 인식성 사용자가 자신의 필요에 시스템이 적합한지 여부 인식
학습 용이성 사용자가 소프트웨어의 사용법을 배워 명시된 목적 달성
운영 용이성 시스템을 쉽게 조작하고 제어할 수 있는 속성
사용자 오류 방지성 사용자로 하여금 오류 발생 방지
사용자 인터페이스 심미성 사용자 인터페이스의 만족스러움
접근성 사용자의 특성이나 능력에 관계없이 시스템 사용
신뢰성 성숙성 시스템 또는 구성 요소의 신뢰성
가용성 사용자의 사용 및 접근 가능성
결함 허용성 결함 존재함에도 시스템 또는 구성 요소가 의도한 대로 작동
복구성 중단 또는 장애 이후 시스템이 영향 받은 데이터를 복구하고 상태 재설정 가능
보안성 기밀성 접근 권한이 있는 사람만 데이터 액세스
무결성 컴퓨터 프로그램 또는 데이터 무단 접근 혹은 변경 방지
부인 방지성 사건 및 행위 후 행동 및 사건 입증 가능
책임성 각 개인을 유일하게 식별하여 행위를 기록하고 필요 시 행위자 추적
인증성 사건 및 행동에 대해 실제 행위자임을 증명
유지보수성 모듈성 하나의 구성 요소 변경이 다른 구성 요소에 최소한의 영향을 미치도록 개별 구성요소로 구성
재사용성 시스템 자산이 하나 이상의 시스템에서 사용 가능 또는 다른 자산을 구축 가능
분석성 변경의 영향이나 결함 또는 결함 원인에 대해 제품 진단하거나 수정 부분 식별 가능
변경 용이성 결함이나 품질 저하 없이 효과적이고 효율적으로 수정 가능
테스트 용이성 테스트 수행 용이
이식성 적응성 시스템이 다른 하드웨어/소프트웨어/사용자 환경에 적용 가능
설치 용이성 특정 환경에서 시스템의 성종적인 설치/제거 가능
대체 용이성 시스템이 동일 환경에서 동일 목적을 위해 다른 소프트웨어 제품으로 대체 가능

 

기능 적합성 테스트

사용자의 요구사항을 시스템이 얼마나 만족하는지에 대한 정보 제공

  • 기능 완전성:
    사용자가 요구하는 기능을 얼마나 제공하는지
    요구사항과 테스트 케이스 간에 현재 시스템의 기능 제공 정도로 판단
    명세 기반 테스트
  • 기능 정확성:
    사용자 기대 수준으로 얼마나 정확하게 동작하는지
    사용자의 목적 달성 가능하도록 정확하게 동작하는 기능의 수로 판단
    명세 기반 혹은 구조 기반 테스트
  • 기능 적절성:
    사용자의 사용 목적을 달성하는 데 도움을 주는 정도
    대상이 되는 목적을 나열하고 각 목적별로 적절성 판단

 

성능 효율성 테스트

CPU 사이클, 디스크, 주 기억공간과 같은 자원의 사용, 주어진 시간 동안 처리할 수 있는 작업량, 자원 할당받는 태스크 수 등 시스템 특성에 따라 결정되는 요소를 구체적이면서 검증 가능한 형태로 진행

성능 테스팅

  • 부하 테스팅: 부하를 계속 증가시키며 시스템의 임계점을 찾음
    처리량이 증가하지 않거나 CPU 이용률이나 메모리 사용량이 비정상적으로 증가하는 임계점을 찾아 병목 현상 제거 과정 반복
  • 스트레스 테스팅: 시스템 처리 능력 이상의 부하, 임계점 이상의 부하를 가하여 비정상적인 상황에서의 처리 확인
  • 스파이크 테스팅: 짧은 시간 많은 사용자에 대한 시스템의 반응 측정
  • 내구성 테스팅: 오랜 시간 동안 높은 부하 가하여 시스템의 반응 파악

성능 테스팅 비교

 

Little`s law

시스템에 오래 머물러 있는 고객의 평균 수치는 오랜 시간 동안 에 걸친 평균 실제 도착률과 시스템에서 고객이 머문 평균 시간을 곱한 값과 동일하다는 것

용어 설명
동시 사용자
(Concurrent user)
Active user + Inactive user
Active user 요청 후에 응답을 기다리는 사용자
Inactive user 세션 정보를 가지고 있으나, 요청을 보내지 않는 사용자
처리량(Thoughput) 단위 시간 동안 시스템(서버)에서 처리되는 요청 수
보통 TPS(Transaction Per Second)로 나타냄
응답 시간(Response time) 요청을 보낸 후 응답이 처리되어 결과가 사용자에게 전달될 때까지 걸리는 시간
씽크 타임(Think time) 요청을 보낸 후 응답 결과를 수신하고 다음 요청을 보낼 때까지 걸리는 시간
요청 간격(Request interval) 요청을 보낸 후 다음 요청을 보낼 때까지 걸리는 시간
Request interval = Response time + Think time

 

호환성 테스트

  • 공존성:
    다른 소프트웨어와 환경 및 자원을 공유하면서 요구된 기능을 효율적으로 수행할 수 있는지
    시스템의 발생이 인명 손실이나 막대한 재산 피해, 또는 치명적인 환경 파괴를 가져올 수 있는 안전성 필수 시스템에서 매우 중요
  • 상호운영성:
    여러 시스템이 정보를 교환하거나 교환된 정보를 성공적으로 사용할 수 있는 정도
    특별히 노력을 기울이지 않아도 시스템 또는 제품이 다른 시스템이나 제품과 함께 동작할 수 있는 능력

 

사용성 테스트

특정한 사용자들이 주어진 사용 환경에서 특정한 목적을 달성하기 위해 제품이나 시스템을 사용할 때 얻게 되는 효율성, 효과성 및 만족도로 정의

  • 효과성:
    사용자의 특정 목표 달성 위한 정확성 및 완전성
    태스크 성공/실패로 판단
  • 효율성:
    목표 달성 관련하여 소비되는 자원
    태스크 수행에 걸리는 시간으로 평가
  • 만족도:
    지정된 사용 환경에서 사용자의 불편함에 대한 정도와 제품 사용에 대한 태도, 사용자 요구가 충족되는 정도
    각 태스크 수행 후 이용 난이도 수준 파악

사용성 평가 방법

  • 휴리스틱 평가(Heuristic Evaluation)
    평가 전문가가 제품과 관련된 사용성 원칙 기준으로 체크리스트 통해 사용성에 관한 문제점 도출
  • FGI(Focus Group Interview)
    그룹 인터뷰 방법
    시스템 개발 이전 사용자의 요구사항을 파악하는 데 쓰이는 정성 평가
    공통점이 있는 사용자들을 그룹별로 모아 시스템이나 문제점 등 의견 나누고 필요한 정보 수집 방법
  • 인지적 워크쓰루(Cognitive Walk-through)
    학습 용이성 분석에 중점
    실제 사용자 대상 사전설명 또는 안내 없이 제품 사용하여 주어진 과제 달성토록 함
    시스템 개발 전 주기에 걸쳐 진행되며, 평가 목적에 따라 방법을 달리함
  • 설문(Questionnaire)

 

신뢰성 테스트

특정 조건에서 특정 기간 동안 시스템이 요구되는 서비스를 오동작 없이 제공

  • 성숙성:
    시스템 또는 구성 요소가 정상 작동 상태에서 신뢰성 요구 충족시키는지
  • 가용성:
    사용자가 시스템 또는 구성요소를 사용코자 할 때 사용 및 접근 가능 정도
  • 결함 허용성:
    하드웨어나 소프트웨어에 결함이 있는데도 시스템 또는 구성 요소가 의도한 대로 작동
  • 복구성:
    중단 또는 장애 발생한 경우 시스템이 영향 받은 데이터를 복구하고 상태 재설정할 수 있는 정도

가용성, MTTF(Mean Time To Failure) 등의 척도로 정량화

신뢰성 검증 방법: 통계적 테스트

사용자들이 쓰는 패턴인 운영 프로파일(가능한 입력들을 여러 개의 클래스로 분류하고, 분류된 각 클래스의 발생 확률로 구성)을 사용하여 테스트 케이스 생성

신뢰성 추적 위한 운영 프로파일 작성하여, 각 클래스의 발생 확률에 따라 테스트 케이스 생성

오류가 발생한 시간과 오류 발생 후 다음 오류 발생까지 걸리는 동작 시간 기록하여 신뢰성 추적

 

보안성 테스트

시스템이 정보 및 데이터를 보호하는 정도

  • 기밀성:
    접근 권한이 있는 사람만 데이터에 액세스 가능
  • 무결성:
    컴퓨터 프로그램 또는 데이터에 무단 접근 또는 변경 방지
  • 부인 방지성:
    사건 및 행위 후 부인 못하도록 행동 및 사건에 관해 입증 가능
  • 책임성:
    각 개인을 유일하게 식별하여 행위 기록하고 필요시 그 행위자 추적 가능
  • 인증성:
    사건 및 행동에 관해 실제 행위자임을 증명

보안성 검증 방법

침입 테스트: 칩입자(hacker)의 관점에서 소프트웨어 시스템의 취약성을 찾는 방법

침입 테스트로 취약성이 발견되지 않았다 할지라도 수많은 침입 시나리오를 미리 테스트하는 것은 불가능하므로 보안성이 확보되었다고 확신할 수 없음

정적 분석: 보안성 높은 소프트웨어가 준수해야 할 소스 코드 수준에서 코딩 규칙을 정의하고, 정적 분석 도구로 준수 사항 검사

 

유지보수성 테스트

시스템이 변경 요구를 만족시키는 능력을 테스트

  • 기능 개선 및 추가
    기능이나 성능 개선하거나 새로운 기능 추가하기 위해 프로그램 수정하는 작업
    시스템 변경 작업 중 약 50% 차지
  • 변경된 환경에 적응
    운영체제나 인프라, 환경 등이 변경되었을 때 변화를 수용하도록 프로그램을 수정하는 작업
    시스템 변경 작업 중 약 25% 차지
  • 오류 수정
    소프트웨어에 오류가 발견되었을 때 수정하는 작업
    시스템 변경 작업 중 약 20% 차지
  • 예상치 못한 장애 예방
    장애 발생 이전 코드를 재구성하거나 문서를 갱신하여 장애가 발생하지 않도록 미리 예방
    시스템 변경 작업 중 약 5% 차지

요구사항을 만족하도록 얼마나 쉽게 변경할 수 있는지 테스트하기 때문에 동적 테스트보다는 정적 테스트를 이용

수정 요구사항이 변경에 소요되는 시간이나 비용으로 표현되면 실제 소요 자원과 비교하는 방식으로 동적 테스트도 가능

 

이식성 테스트

서비스 이용자 단말기의 하드웨어 및 소프트웨어 환경이 달라도 동등한 서비스 제공 여부

운영체제(OS)와 브라우저, 태블릿과 스마트폰 등 애플리케이션 동작하는 운영환경과 사용 환경이 다양해지고 복잡해지며 중요성이 높아지는 추세

 

반응형