본문 바로가기
공부

[CSTS] 프로그램 기술의 한계, 테스트의 진화 과정, 테스트 원칙, ISO 25010 품질 특성

by Soniasoso 2023. 11. 17.
Contents 펼치기
반응형

다익스트라(Dijkstra) 프로그램 기술의 한계

  • 완벽한 테스트는 없다
  • 프로그램 테스트는 결함이 있음을 보일 수 있지만, 결함이 없음을 보일 수 없다
  • 주어진 인력과 시간을 바탕으로 최대한 효과적이고 효율적인 테스트를 수행할 수 있도록 체계적인 테스트가 수행되어야 한다.

겔퍼린과 헤첼 소프트웨어 테스트의 진화 과정

  • 레벨 1 (Demonstration-oriented, ~1966)
    • 우연히 발견된 결함을 수정하는데 중점
    • 결함을 찾기 위한 별도의 노력을 기울이지 않음
  • 레벨 2 (Penetration-oriented, 1965~1979)
    • 프로그램이 올바르게 동작한다는 사실을 입증
    • TC 설계보다 시스템 정상작동을 증명하는데 초점
  • 레벨 3 (Destruction-oriented, 1979~1982)
    • 결함이 존재함을 보여주기 위해 테스트 수행(Dijkstra)
    • 결함을 발견하는 TC가 그렇지 못한 TC보다 가치가 있다는 인식
  • 레벨 4 (Evaluation-oriented, 1982~1995):
    • 소프트웨어 개발 전 단계에서 결함을 발견하는 개념으로 확장
    • 코딩이 완료된 후가 아닌 개발 초기 단계부터 지속적으로 리뷰 등을 통해 시스템을 평가하는 작업을 수행
  • 레벨 5 (Perception-oriented, 1995~현재):
    • 프로그램의 결함을 사후에 발견하는 것이 아닌 사전에 방지 하는 것
    • 결함을 미연에 방지하기 위해 테스트 케이스를 미리 설계
      • 테스트 주도 개발(TDD) 등의 방법 사용: T/C를 미리 설계하고 코딩을 나중에 하는 방식으로 시스템 개발

테스트 원칙

  • 테스트는 반드시 프로그램을 개발한 프로그래머나 팀과는 무관한 그룹에서 수행
  • 결함이 발견되지 않을으리라는 과정에서 테스트 계획을 수립해서는 안됨
  • 타당한 경우 뿐만 아니라 타당하지 않고 예상하지 못한 경우에 대해서도 테스트 수행
  • 프로그램의 어떤 부분에 결함이 남아 있을 확률은 그 부분에서 이미 발견된 수에 비례
  • 테스트케이스를 체계적으로 관리
  • 각각의 테스트 결과를 철저하게 점검하라

ISO 25010 품질 특성

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

 
 

관련 글

[CSTS] 테스트 목적, 오류 결함 장애

[CSTS] 테스트 목적, 오류 결함 장애

테스트 목적 결함 검출과 제품 품질 개선 품질 평가와 의사 결정 지원 테스트 결과를 바탕으로 성능, 신뢰성, 보안성 등의 다양한 소프트웨어 품질 특성에 대한 충족을 평가 개발 프로세스 개선

kksoso.tistory.com

 

728x90
반응형