Verification과 Validation은 테스트를 설명할 때 빠지지 않는다.
의미: 개발 과정의 각 단계에서 산출물이 이전 단계의 요구사항 또는 설계와 일치하는지 확인하는 활동
목적: 제품이 올바르게 만들어지고 있는지(Are we building the product right?)를 확인
예시:
의미: 완성된 시스템 또는 산출물이 사용자의 실제 요구사항과 기대를 충족하는지 확인하는 활동
목적: 제품이 올바른 제품인지(Are we building the right product?)를 확인
예시:
인공지능의 Validation set과 일맥상통하나??
validation set이 모의고사 느낌이니까 사용자의 요구사항에 맞도록 하이퍼파라미터를 조정하니까?
동적 V&V의 목적은 기본적으로 사용자가 의도한 결과와 소프트웨어 실행 결과에 차이가 있는지를 식별하려는 것이다.
소프트웨어 테스트는 기본적으로 다음과 같은 세 가지 활동으로 수행된다.
프로그램 개발자가 정상적인 실행에 대해서는 충분히 고려하여 소프트웨어를 개발하기 때문에 정상적이지 않은 데이터들도 입력 데이터의 범주에 포함하여 내재된 오류나 결합을 찾을 수 있도록 한다.
입력 데이터양도 고려 대상이다. 전수 테스트를 하여 오류가 존재하지 않는다는 것을 증명할 수는 없기에 입력 데이터의 샘플을 적절히 선택해야 한다.
결함을 잘 찾아낼 수 있는 테스트 데이터를 선택하는 것이 무엇보다 중요하다.
테스트가 입력 데이터를 통한 실행 결과를 모니터링하여 실행 결과와 예상 결과를 비교하는 활동이기에 입력 데이터들에 대한 예상 결과가 필요하다.
테스트 케이스: 입력 데이터와 예상 결과의 쌍으로 정의
테스트 오라클: 예상 결과를 만들어내지 못하는 경우 별도로 준비
오라클 생성 소스:
오라클의 뜻: 예언
테스트는 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 등으로 구분되어 수행된다.
소프트웨어를 구성하는 단위(모듈, 함수)를 중심으로 테스트하는 활동이다.
모듈 내부의 결함을 찾는 것이 주 목적이다.
단위 테스트가 종료된 모듈들을 하나씩 통합하면서 수행하는 테스트다.
모듈 간의 인터페이스 정확성 확인이 주 목적이다.
개발된 소프트웨어를 테스트하는 것이다.
우선 개발자 환경에서 통합된 소프트웨어를 테스트하는 소프트웨어 테스트를 진행하고 이후 실제로 소프트웨어가 운영될 하드웨어 환경을 갖추어 테스트하는 시스템 테스트 활동을 진행한다.
사용자 환경에서 개발된 소프트웨어를 테스트하는 활동이다.
사용자가 요구한 기능을 하나씩 실행시키는 데모 형식으로 진행된다.
소프트웨어 테스트 과정에서 발견된 결함을 수정하고 난 후에 수행하는 테스트이다.