-
소프트웨어 개발의 "V 모델"테스팅 관련/개념 2020. 5. 27. 22:55
V-모델
소프트웨어 개발의 주요 단계들(비즈니스 요구사항 명세화에서 배포까지)과 상응하는 테스트 레벨(인수 테스팅에서 유닛 테스팅까지) 사이의 일대일 대응 관계를 설명하는 순차적 개발 수명주기 모델. 폭포수 모델의 확장형.
요구사항(Requirements) 설계
사용자가 요구사항을 정의. 사용자의 언어로 작성된다.
↓
검증(Validation)
요구사항과 솔루션이 일치하는지 확인하기 위해 사용되는 테스트들로 이루어진 한 세트.
인수 테스트(acceptance tests)라고도 한다.
인수 테스팅(acceptance testing): 시스템이 사용자의 필요 및 요구사항 및 비즈니스 프로세스 측면에서의 인수 조건을 만족하는지 확인하고 사용자, 고객, 기타 권한을 지닌 사람이 시스템의 인수 여부를 결정하기 위해 수행 하는 공식 테스팅.
시스템 설계(System Design)
소프트웨어의 명세를 결정하고 기술할 부분을 지시.
명세서(Specification/System Spec): 사용자의 요구사항에 맞춰 시스템이 어떻게 할지 이해하는 기록. 프로그램이 어떤 환경에서 무엇을 해야 하는지를 기술한 문서. 컴포넌트나 시스템의 요구사항, 설계, 동작, 기타 특성을 지정하는 문서.
↓
검증(Verification)
소프트웨어 제품이 명세에 충족하고 실행되는지를 확인하는 과정.
시스템 테스팅이 이 과정을 설명하기 위해 쓰이기도 한다.
항목, 프로세스, 서비스 또는 문서 등이 명시된 여러 가지 요구를 따르는지 재검토하고 조사하며
시험, 검사, 감사 및 문서화하는 행위.
아키텍처 설계(Architectural Design)
소프트웨어 시스템 개발의 초기 단계에서 시스템의 개념적인 구조 없이 논리적인 시방을 결정하는 작업.
서브 시스템과 컴포넌츠들을 분해하고, 끝에는 전체 솔루션으로 합쳐진다.
↓
시스템 통합 테스트(System Integration Test)
다양한 컴포넌트들과 서브시스템들이 어떻게 함께 작동할지 평가(evaluate)한다.
시스템, 패키지, 마이크로 서비스 간의 상호운용성과 인터페이스에 초점.
상세 설계(or Module Design)
솔루션을 위해 설계된 모듈들을 정리하고 디자인들을 분류한다.
구현을 위해 클래스와 순서를 나타내는 다이어그램들을 만드는 게 특징이다.
이 단계에서는 언어 구체화 디자인은 포함되지 않는다.
↓
모듈 테스트/모듈 통합 테스트(Module Integration Test)
상세 설계에 대한 유효성 검증.
설계된 시스템의 "디자인"을 테스트. 큰 컴포넌트나 서브시스템으로 포함되기 전에, 디자인된 모듈들의 기능을 테스트한다.
모듈: 소프트웨어나 하드웨어의 일부로, 큰 전체 시스템 및 체계 중 다른 구성 요소와 독립적인 하나의 구성 요소를 말한다.
구현(implementation) or 코드 레벨 디자인
솔루션을 코딩하는 것. 프로그래머들은 제공된 디자인에 맞추어 솔루션으로 사용되는 기능 프로그램을 생성한다.
↓
유닛 테스트
구현에 대한 신뢰성 검증.
개발자들이 작성한 코드가 잘 실행되는지 테스트. 대개, function과 method 레벨에서 행해진다.
'테스팅 관련 > 개념' 카테고리의 다른 글
테스트 계획이란? (0) 2020.06.02 Validation과 Verification (V&V) (0) 2020.05.27 테스팅 원리 (0) 2020.05.27 신뢰성(Dependability) 정의 (0) 2020.05.26 테스트가 뭐지? (0) 2020.05.23