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