본문 바로가기
정보시스템/프로젝트 관리

기능 테스트, 비기능 테스트, 구조적 테스트

by 3604 2023. 9. 26.
728x90
개발/QA

 

Sengwoolee 2020. 6. 8. 22:02
 

기능 테스트와 비기능 테스트에 대해 작성한다.

1. 기능 테스트 (Functional Test)

기능 테스트는 고객의 기능적 요구사항을 중점적으로 테스트 하는것이다.
요구사항에 따른 기능의 구현 여부 및 동작 여부에 대해 테스트를 진행한다.
테스트 기준은 명세에 따르며 명세를 기반으로 테스트 조건과 테스트 케이스를 도출한다.

 

[기능 테스트 분류]

  • 단위 테스트
  • 통합 테스트
  • 인수 테스트
  • 회귀 테스트 등

2. 비기능 테스트 (Non-Functional Test)

비기능 테스트는 고객의 성능적 요구사항을 중점적으로 테스트하는 것이다.
비기능적인 측면인 성능, 신뢰성, 안정성, 유요성, 적합성 등을 확인한다.
비기능 테스트는 확인하고자 하는 특성에 따라 환경 구성과 관련 도구가 필요할 수 있다.

 

[비기능 테스트 분류]

  • 볼륨 테스트
  • 확장성 테스트
  • 사용성 테스트
  • 성능 테스트 등

3. 구조적 테스트 (Software Structure/Architecture Test)

구조적 테스트는 화이트 박스 테스트라고도 하며 소프트웨어가 어떻게 구성되었는지 테스트하는 것이다.
테스트 커버리지를 평가하여 보장성과 충분함을 측정한다.
커버리지는 테스트 스위트에 의해 테스트된 정도를 의미하며 퍼센트 형식으로 표시한다.

 

[화이트 박스 테스트 분류]

  • 구문 테스트
  • 결정 테스트
  • 조건 테스트
  • 데이터 흐름 테스트 등
반응형
 
 
 
=======================================================================
 
 
 
 
가. 기능 테스트의 정의 - 소프트웨어가 수행하는 기능에 대한 테스트 - 시스템이 수행하는 “What” 에 대한 테스트 나. 비기능 테스트의 정의 - 성능, 부하, 스트레스, 사용성, 유지보수성, 신뢰성, 이동성 테스팅 - 소프트웨어 제품 특성 테스팅, 시스템의 “How” 에 대한 테스트

I. 기능/비기능 테스트 개요

가. 기능 테스트의 정의

- 소프트웨어가 수행하는 기능에 대한 테스트

- 시스템이 수행하는 “What” 에 대한 테스트

 

나. 비기능 테스트의 정의

- 성능, 부하, 스트레스, 사용성, 유지보수성, 신뢰성, 이동성 테스팅

- 소프트웨어 제품 특성 테스팅, 시스템의 “How” 에 대한 테스트

 

II. 테스트 유형

기능 테스팅(Functional testing)

구 분 내 용
ISO/IEC 9126 기능성이라는 품질특성에 적합성, 정확성, 준수성, 상호운영성, 보안성 등의 부특성을 포함
특징 문서화 되어 있거나, 테스터가 알고 있는 기능과 특징, 특별한 시스템과의 상호 운영성을 고려하여 수행하며 모든 테스트 레벨에서 수행
명세기반기법
(Specification-based)
요구사항 명세유즈케이스등을 이용해 소프트웨어나 시스템의 기능에서 테스트 조건과 테스트 케이스를 도출하고소프트웨어의 외부적인 행동을 고려블랙박스 테스팅
보안성 테스팅 외부로부터의 위협을 감지하는 것과 관련 있는 기능
- 보안정책확인
- 시스템으로 침투하는 보호되지 않는 진입점(트랩도어) 파악
- 가용성, 무결성, 기밀성, 부인방지 등의 보안 관련 평가
상호운용성 테스팅 하나 또는 여러 개의 명시된 컴포넌트나 시스템이 서로 상호작용하는 소프트웨어 제품의 능력을 평가

 

나. 비기능적 테스트

구 분 내  용
ISO/IEC 9126 신뢰성, 사용성, 효율성, 유지보수성, 이식성의 품질특성과 그에 따른 부특성으로 분리
- 신뢰성의 품질 부특성 : 성숙성, 결함허용성, 회복성, 준수성
- 이식성의 품질 부특성 : 적응성, 설치가능성, 대체성, 공존성, 준수성
특징/의미 - 모든 테스트 레벨에서 수행가능
- 다양한 척도 또는 비율로 정량화 가능한 소프트웨어나 시스템의 특성을 측정하는 의미

* ISO/IEC 9126 부특성의 준수성 : 해당품질특성과 관련되는 표준이나 규칙이 있을 경우 이를 따르는지의 여부

 

구 분 설명
성능 -단위시간당처리, 트랜잭션 시간의 성능 검토
부하 -동시에 가상의 작업처리 Test시행을 통하여 user수 만큼 부하의 정도 검토
스트레스테스트 -목표는 응용 프로그램의 성능 저하를 넘어 리소스의 포화 사용 또는 오류 발생으로 인해 응용 프로그램을 더 이상 사용할 수 없을 때까지 프로세스 로드를 늘리는 것

 

=========================================

출처: 2-3, 2-4. 테스팅 유형(Test Type), 유지보수 테스팅(Maintenance Testing) :: 오늘도 난, 하하하 (tistory.com)


   


테스트 유형(Test Type): The targets of testing

- 테스팅 하는 목적 및 품질 특성을 염두에 두고 소프트웨어 시스템(또는 시스템 일부분)을 검증하는 일련의 테스트 활동

 

1. 테스트 유형별 테스트 목적

1) 기능 테스팅

- 소프트웨어가 수행하는 기능에 대한 (품질 특성) 테스팅

 

2) 비기능 테스팅

- 호환성, 신뢰성, 사용성과 같은 비기능적인 품질 특성을 테스팅

 

3) 구조적 테스팅

- 소프트웨어나 시스템의 구조나 아키텍처에 대한 테스팅

 

4) 확인/회귀 테스팅(Testing related to changes)

- 유지 보수 테스팅에 많이 사용

- 변경 내용에 관련된 테스팅

(확인 테스팅: 결함에 대한 수정이 이루어 졌는지에 대한 확인, 회귀테스팅: 의도하지 않은 변경을 찾음)

 

2. 기능적 테스팅(Functional Testing)

- 기능 테스팅은 문서화 되어 있거나 테스터가 알고 있는 기능과 특징, 그리고 그것들과 특별한 시스템과의 상호 운용성을 고려하여 수행

- 시스템이 수행하는 "그 무엇"을 테스팅

- 기능성이라는 품질 특성에 적합성, 정확성, 준수성, 상호운용성, 보안성 등의 부특성을 포함 (ISO/IEC 9126)

 

1) 활용 가능한 소프트웨어 모델(요구사항 명세, 기능 명세 등에 포함)

- 프로세스 흐름 모델

- 상태 전이 모델

- 유즈케이스 모델

- 평문 언어 명세

 

2) 모든 테스트 레벨에서 수행 가능

- 예: 컴포넌트를 위한 테스트는 컴포넌트 스펙 명세를 기반으로 테스트

 

3) 기능 테스팅은 명세 기반 기법(Specification-based technique)을 이용해 테스팅: 블랙박스 테스팅

- 소프트웨어나 시스템 기능에서 테스트 조건과 테스트 케이스를 도출, 소프트웨어의 외부적인 행동을 고려

 

3. 비기능 테스팅(Non-functional Testing)

- 성능 테스팅, 부하 테스팅, 스트레스 테스팅, 사용성 테스팅, 유지보수성 테스팅, 신뢰성 테스팅, 이동성 테스팅을 포함하는 개념

- 시스템이 "어떻게"동작하는가를 테스팅

 

1) 활용 가능한 소프트웨어 모델

- 제어 흐름 모델

- 메뉴 구조 모델

 

2) 소프트웨어 제품 특성 테스팅

- 비기능 테스팅을 소프트웨어 제품 특성 테스팅이라고도 함

 

3) 모든 테스트 레벨에서 수행

4) 다양한 척도 또는 비율(Scale) 정량화 가능한 소프트웨어 시스템의 품질 특성을 측정

- 예: 성능 테스팅에서 응답시간

5) 소프트웨어 공학 - 소프트웨어 제품 품질(ISO/IEC 9126)에서 정의된 품질 모델 참고 가능

- 비기능성을 신뢰성, 사용성, 효율성, 유지보수성, 이식성이라는 품질 특성으로 분류

- 각각의 품질 특성을 3~5가지의 품질 부특성으로 분류

 

4. 구조적 테스팅(Structural Testing)

1) 특정 유형의 구조에 대한 커버리지를 평가하여 테스팅의 보장성 또는 충분함(Thoroughness)을 측정하는 것이 목적

- 명세 기반 기법을 적용한 다음에 사용

 

2) 커버리지: 시스템 또는 소프트웨어의 구조가 테스트 수트에 의해 커버된 정도

- 구조 종류에 대해 커버된 퍼센트로 표시

- 커버리지가 100%가 아니라면, 누락된 아이템을 테스트 하기 위해 추가 테스트 설계하여 커버리지를 높임

 

3) 모든 테스트 레벨에서 수행

- 콜트리: 통합 테스팅 레벨

- 호출체계(구조, Hierarchy)와 같은 시스템의 아키텍쳐에 기반을 두고 테스팅: 시스템 테스팅 레벨

- 비지니스 모델이나 메뉴 구조를 활용하여 테스팅: 인수 또는 시스템, 시스템 통합 테스팅 레벨

 

5. 확인(재)/리그레션 테스팅(Confirmation(re-testing) and regression Testing)

1) 확인 테스팅(Confirmation Testing, Re-Testing)

- 결함이 발견되고 수정된 후에 원래의 결함이 성공적으로 제거되었는지 확인하기 위해 다시 테스트 하는 것

- 디버깅(Debugging): 결함의 원인을 찾거나 결험을 수정하기 위한 개발 활동, 테스트 활동 아님

 

2) 리그레션 테스팅(Regression Testing)

- 결함 수정 이후 변경의 결과로 도입되었거나 발견되지 않았던 또다른 결함을 발견

- 이미 테스트된 프로그램의 테스팅을 반복하는 것, 퇴행(Regression) 여부를 확인하는 테스팅

- 결함은 테스트 중인 소프트웨어에 존재하거나 다른 관련이 있는 또는 전혀 관련이 없는 소프트웨어 컴포넌트에 존재 가능

- 소프트웨어 또는 환경이 변경되면 리그레션 테스팅을 수행해야 함(예 - OS 패치)

- 수행 범위와 정도:  이전에 정상 동작했던 소프트웨어에서 결함을 발견하지 못해 야기될 수 있는 리스크에 바탕을 둠

(위험성이 높으면 리그레션 테스팅을 보다 넓은 범위로 보다 상세하고 철저하게 수행)

- 모든 테스트 레벨에서 수행 가능

- 기능, 비기능, 구조적 테스팅에 적용 가능

- 리그레션 테스팅 → 반복적 성향 → 자동화 대상

 

유지보수 테스팅(Maintenance Testing)

- 이미 운영되고 있는 시스템에서 수행

- 소프트웨어나 시스템이 변경, 단종되었거나 마이그레이션될 때 발생

- 변경된 부분에 대한 테스팅 이외에도 변경하지 않은 시스템 요소에 대한 리그레션 테스팅도 고려해야 함

- 명세가 매우 오래되었거나 없다면 명세서를 근간으로 수행하기 어려울 수 있음

 

1. 유지보수 테스팅 종류

1) 변경에 의한 유지보수 테스팅

- 릴리즈 기반의 계획된 개선을 위한 변경, 요구사항 변경에 의한 수정, 긴급 변경, 환경의 변경등이 존재

(예: 계획된 OS 또는 DB 업그레이드, OS의 새로 드러난 취약점 패치)

 

2) 마이그레이션을 위한 유지보수 테스팅

- 마이그레이션: 한 플랫폼에서 다른 플랫폼으로 옮겨가는 것

- 변경된 소프트웨어에 대한 운영 테스트뿐만 아니라, 새로운 환경에서의 운영 테스트도 포함

 

3) 단종에 의한 유지보수 테스팅

- 데이터를 마이그레이션 하는 테스팅을 포함

- 데이터의 보유기간이 필요하다면 데이터 저장관련 사항을 테스팅 해야 함

 

2. 유지보수 테스팅의 범위

- 변경 사항의 리스크 및 크기, 기존 시스템의 크기와 관련됨

 

1) 변경 내용에 따라, 모든 테스트 유형에 대해 모든 테스트 레벨에서 수행 가능

- 예: 변경된 내용이 메모리 누출을 막기 위한 컴포넌트 수정(비기능 테스팅 유형을 컴포넌트 레벨에서 유지 보수 테스팅 하고 필요 시 회귀 테스팅)

 

2) 영향도 분석(Impact analysis): 변경으로 인해 기존 시스템이 어떻게 영향을 받는지 결정하는 것

- 리그레션 테스팅 수행 정도를 결정하는데 이용

=========================================================================================

출처: https://visuresolutions.com/ko/blog/non-functional-requirements/

 

 

비기능 요구 사항이란 무엇입니까: 예, 정의, 완전한 안내서

비기능 요구 사항이란 무엇입니까? NFR(Non-Functional Requirements)은 시스템에 부과되는 제약 조건 또는 요구 사항입니다. 소프트웨어의 품질 속성을 지정합니다. 비 기능 요구 사항은 확장성, 유지 관리 가능성, 성능, 이식성, 보안, 안정성 등과 같은 문제를 다룹니다. 비 기능 요구 사항은 소프트웨어 시스템의 품질에 대한 중요한 문제를 해결합니다. 이 기사에서는 몇 가지 예를 통해 비기능 요구 사항을 자세히 이해하려고 노력할 것입니다.

비기능 요구 사항이란 무엇입니까?

NFR(Non-Functional Requirements)은 품질 속성을 정의하는 시스템에 부과되는 제약 조건입니다. 일반적으로 보안, 성능 및 확장성과 같은 형용사로 표시됩니다. 비기능적 요구 사항은 시스템이 사용자의 요구 사항을 충족하는지 확인하는 데 도움이 되기 때문에 중요합니다.

비 기능 요구 사항 범주

비 기능 요구 사항은 두 가지 범주로 나눌 수 있습니다.

  1. 품질 속성 : 이것이 전체 품질을 결정하는 시스템의 특성입니다. 품질 속성의 예에는 보안, 성능 및 사용성이 포함됩니다.
  2. 제약 : 다음은 시스템에 부과된 제한 사항입니다. 제약 조건의 예로는 시간, 리소스 및 환경이 있습니다.

비 기능 요구 사항의 장점

비 기능 요구 사항에는 다음과 같은 몇 가지 장점이 있습니다.

  1. 시스템이 사용자의 요구 사항을 충족하는지 확인하는 데 도움이 됩니다.
  2. 시스템이 목적에 맞는지 확인하는 데 도움이 됩니다.
  3. 시스템이 확장 가능하고 안전하며 신뢰할 수 있는지 확인하는 데 도움이 됩니다.
  4. 시스템을 사용하고 유지 관리하기 쉽게 하는 데 도움이 됩니다.

비기능적 요구사항의 단점

비 기능 요구 사항에는 다음과 같은 몇 가지 단점이 있습니다.

  1. 이해하고 구현하기 어려울 수 있습니다.
  2. 테스트하는 데 시간과 비용이 많이 들 수 있습니다.
  3. 제대로 구현되지 않으면 시스템 기능에 영향을 줄 수 있습니다.

비기능적 요구사항 대 기능적 요구사항

기능 요구 사항, 이름에서 알 수 있듯이 설계할 시스템의 기능을 설명합니다. 시스템이 무엇이고 사용자 요구를 충족시키기 위해 어떻게 기능할지에 대한 설명입니다. 그것들은 시스템이 특정 명령, 기능 및 사용자가 기대하는 것에 어떻게 응답해야 하는지에 대한 명확한 설명을 제공합니다. 

비기능 요구 사항은 설계할 시스템의 제한 사항과 제약 조건을 설명합니다. 이러한 요구 사항은 응용 프로그램의 기능에 영향을 주지 않습니다. 또한 비 기능 요구 사항을 다양한 범주로 하위 분류하는 일반적인 관행이 있습니다.

  • 사용자 인터페이스
  • 신뢰성 
  • 보안
  • 퍼포먼스
  • 유지보수
  • 표준 시편 

비기능 요구사항을 하위 분류하는 것은 좋은 방법입니다. 설계할 시스템에서 충족해야 하는 요구 사항의 체크리스트를 작성할 때 도움이 됩니다. 

비기능적 요구사항은 기능적 요구사항만큼 중요합니다. 기능적 요구사항이 시스템이 수행해야 하는 작업을 지정하는 경우 비기능적 요구사항은 시스템이 수행하는 방법을 설명합니다. 예를 들어, 새 애플리케이션은 연결된 모든 사용자의 최종 목록을 제공합니다. 그것은 기능적 요구 사항의 일부입니다. 요구 사항에 시스템이 Windows 및 Linux 시스템에서만 작동한다고 명시되어 있는 경우 이는 비기능 요구 사항의 일부가 됩니다. 

둘 사이의 유일한 차이점은 시스템이 모든 기능 요구 사항을 충족하지 않고는 작동할 수 없다는 것입니다. 반면에 시스템은 비 기능적 요구 사항을 충족하지 않는 경우에도 원하는 결과를 제공합니다.

기능 외 요구 사항의 예

다음은 비기능 요구 사항의 몇 가지 예입니다.

  1. 보안 : 시스템은 무단 액세스로부터 안전해야 합니다.
  2. 성능 : 시스템은 성능 저하 없이 필요한 수의 사용자를 처리할 수 있어야 합니다.
  3. 확장 성 : 시스템은 필요에 따라 확장 또는 축소할 수 있어야 합니다.
  4. 운영시간: 시스템은 필요할 때 사용할 수 있어야 합니다.
  5. 유지 보수 : 시스템은 유지 관리 및 업데이트가 쉬워야 합니다.
  6. 이식성 : 시스템은 최소한의 변경으로 다른 플랫폼에서 실행할 수 있어야 합니다.
  7. 신뢰성 : 시스템은 신뢰할 수 있어야 하고 사용자의 요구 사항을 충족해야 합니다.
  8. 유용성 : 시스템은 사용하기 쉽고 이해하기 쉬워야 합니다.
  9. 호환성 : 시스템은 다른 시스템과 호환되어야 합니다.
  10. 응낙: 시스템은 모든 관련 법률 및 규정을 준수해야 합니다.

비 기능 요구 사항은 모든 시스템에 필수적입니다. 시스템이 사용자의 요구를 충족하고 의도한 대로 작동할 수 있는지 확인하는 데 도움이 됩니다. 시스템을 설계하고 개발하기 전에 모든 비기능 요구 사항을 신중하게 고려하는 것이 중요합니다.

비기능 요구 사항 수집이란 무엇입니까?

비기능 요구사항 수집은 시스템에 대한 비기능 요구사항을 식별하고 문서화하는 프로세스입니다. 이는 인터뷰, 설문조사, 포커스 그룹 또는 기타 방법을 통해 수행할 수 있습니다. 비기능 요구 사항이 수집되면 분석하고 우선 순위를 지정할 수 있습니다.

비기능 요구 사항 수집 프로세스는 시스템 개발의 중요한 부분입니다. 이는 필요한 모든 요구 사항을 식별하고 적절한 수준의 주의를 기울이도록 하는 데 도움이 됩니다. 철저한 비기능 요구사항 수집 프로세스 없이는 사용자의 요구에 맞는 시스템을 개발하기 어려울 것입니다.

비기능적 요구사항 도출 기법이란 무엇입니까?

비기능 요구사항 도출 기술은 시스템의 비기능 요구사항을 식별하고 문서화하는 데 사용됩니다. 인터뷰, 설문조사, 포커스 그룹 또는 기타 방법과 같이 사용할 수 있는 다양한 기술이 있습니다. 비기능 요구 사항이 수집되면 분석하고 우선 순위를 지정할 수 있습니다.

비기능 요구사항 도출 프로세스는 시스템 개발의 중요한 부분입니다. 이는 필요한 모든 요구 사항을 식별하고 적절한 수준의 주의를 기울이도록 하는 데 도움이 됩니다. 철저한 비기능 요구사항 도출 프로세스 없이는 사용자의 요구를 충족하는 시스템을 개발하기 어려울 것입니다.

비기능 요구 사항 분석이란 무엇입니까?

비 기능 요구 사항 분석은 시스템에 대한 비 기능 요구 사항을 분석하는 프로세스입니다. 이것은 요구 사항을 검토하고 평가하고 우선 순위를 지정하여 수행할 수 있습니다. 비기능 요구 사항 분석의 목표는 필요한 모든 요구 사항을 식별하고 적절한 수준의 주의를 기울이도록 하는 것입니다.

비기능 요구 사항 분석은 시스템 개발의 중요한 부분입니다. 이는 필요한 모든 요구 사항을 식별하고 적절한 수준의 주의를 기울이도록 하는 데 도움이 됩니다. 철저한 비기능 요구 사항 분석 없이는 사용자의 요구 사항을 충족하는 시스템을 개발하기가 어렵습니다.

비기능 요구사항 작성을 위한 모범 사례

비 기능 요구 사항을 작성할 때 따라야 하는 몇 가지 모범 사례가 있습니다. 여기에는 다음이 포함됩니다.

  • 요구 사항이 명확하고 간결한지 확인하십시오.
  • 무엇이 필요한지 구체적으로 설명하세요.
  • 전문용어 사용을 피하세요.
  • 평범한 언어를 사용하십시오.
  • 요구 사항을 달성할 수 있는지 확인하십시오.
  • 달성할 수 있는 것에 대해 현실적이어야 합니다.
  • 요구 사항의 우선 순위를 지정합니다.
  • 요구 사항을 유연하게 유지하십시오.
  • 필요에 따라 요구 사항을 검토하고 수정합니다.
  • 요구 사항에 대한 이해 관계자로부터 피드백을 받습니다.

비 기능 요구 사항은 모든 시스템 개발 프로젝트의 필수적인 부분입니다. 이러한 모범 사례를 따르면 비기능 요구 사항이 명확하고 간결하며 달성 가능한지 확인할 수 있습니다.

결론

비 기능 요구 사항은 시스템 개발의 중요한 부분입니다. 시스템이 사용자의 요구를 충족하고 의도한 대로 작동할 수 있는지 확인하는 데 도움이 됩니다. 비기능 요구 사항 수집, 분석 및 모범 사례는 모든 프로젝트에 필수적입니다. 이 지침을 따르면 비기능 요구 사항이 명확하고 간결하며 달성 가능한지 확인할 수 있습니다.

비기능 요구 사항은 시스템에 부과된 제약 조건 또는 요구 사항입니다. 소프트웨어의 품질 속성을 지정합니다. 비 기능 요구 사항은 확장성, 유지 관리 가능성, 성능, 이식성, 보안, 안정성 등과 같은 문제를 다룹니다. 비 기능 요구 사항은 소프트웨어 시스템의 품질에 대한 중요한 문제를 해결합니다.

비 기능 요구 사항은 모든 시스템 개발 프로젝트의 중요한 부분입니다. 이러한 모범 사례를 따르면 비기능 요구 사항이 명확하고 간결하며 달성 가능한지 확인할 수 있습니다. 기능 요구 사항에 대해 자세히 알아보거나 직접 생성을 시작하려면 지금 Visure Requirements ALM 플랫폼에서 무료 30일 평가판을 요청하십시오.

 

비기능 요구 사항이란 무엇입니까: 예, 정의, 전체 가이드 - Visure 솔루션

NFR(Non-Functional Requirements)은 품질 속성을 정의하는 시스템에 부과되는 제약 조건입니다.

visuresolutions.com

 

비기능 요구 사항이란 무엇입니까: 예, 정의, 전체 가이드 - Visure 솔루션

NFR(Non-Functional Requirements)은 품질 속성을 정의하는 시스템에 부과되는 제약 조건입니다.

visuresolutions.com

 

비기능 요구 사항이란 무엇입니까: 예, 정의, 전체 가이드 - Visure 솔루션

NFR(Non-Functional Requirements)은 품질 속성을 정의하는 시스템에 부과되는 제약 조건입니다.

visuresolutions.com

 

 

728x90
반응형