안드레이 2024. 4. 30. 15:19

▼테스트 케이스

★소트프웨어 테스트

소프트웨어 개발 단계에서 사용자 요구사항에 서술된 동작과 성능, 사용성, 안정성 등을 만족하는지 확인하기 위하여 소프트웨어의 결함을 찾아내는 활동으로 품질 향상, 오류 발견, 오류 예방 관점에서 수행하는 행동이다.

춤질 향상 관점 : 반복적인 테스트를 거쳐 제품의 실뢰도를 향상하는 품질 보증 활동이다.

오류 발견 관점: 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하는 활동이다.

오류 예방 관점: 코드 리뷰, 동료 검토, 인스펙션 등을 통해 오류를 사전에 발견하는 활동이다.

 

★소프트웨어 테스트의 원리

테스팅은 결함이 존재함을 밝히는 활동이다. 소프트웨어의 잠재적인 결함을 줄일 수 있지만 결함이 발견되지 않아도 결함이 없다고 증명할 수 없음을 나타낸다.
완벽한 테스팅은 불가능하다. 무한 경로, 무한 입력값, 무한 시간이 소요되어 완벽하게 테스트 할 수없으므로 리스크 분석과 우선순위를 토대로 테스트에 집중하는 것을 의미한다.
테스팅은 개발 초기에 시작해야 한다. 애플리케이션의 개발 단계에 테스트를 계획하고 SDLC의 각 단계에 맞춰 전략적으로 접근하는 것을 고려해야 한다.
결함 집중 애플리케이션 결함을 대부분은 소수의 특정한 모듈에 집중되어 존재한다. 파레토 법칙이 좌우한다.
살충제 패러독스 동일한   테스트 케이스로 반복 테스트 시경함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개션해야한다.
테스팅 정황에 의존한다. 정황과 비즈니스 도메인에 따라 테스트를 다르게 수행하여야 한다.
오류 부재의 궤변 사용자의 요구사항을 만족하지 못하는 오류를 발견하고 그 오류를 제거하였다해도, 해당 애플리케이션의 품질이 좋다고 말할 수 없다.

 

★파레토의 법직

80대 20법칙 또는 2대 8읠 법칙이라고도 한다. 전체결과의 80가 전체 원인의 20%에서 일어나는 현상.

 

★ 테스트 케이스

구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값, 실행조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서를 의미한다. 명세 기반 테스트의 설계산출물이며, 테스트케이스를 설계단계에서 작성하면 테스트 시오류를 방치하고,  테스트 수행에 있어 낭비를 줄일 수 있다.

 

표준 테스트 케이스 양식

ID 시나리오 테스트  단계 테스트 데이터 예상결과 실제 결과 통과실패

 

★테스트 케이스 작성철차

테스트 계획 검토 및 자로 확보 -> 위험평가 및 우선 순위 결정- > 테스트 요구사항 정의 -> 테스트 구조 설계 및 테스트 방법 결정 -> 테스트 케시으 정의 -> 테스트 케이스 타당성 확인 및 유지보수

 

★테스트 케이스의 구성요소

식별자, 테스트항목, 입력 명세, 출력 명세, 환경 설정, 특수 절차 요구, 의존성 기술

 

★ 테스트 프로세스

계획 및 제어 -> 분석 및 설계 - > 구현 및 실현 -> 평가 - > 완료

 

★테스트 커버리지

테스트 수행 정도로서 구문 커버리지, 결정 커버리지, 조건 커버리지, 조건/결정 커버리지, 변경 조건/ 결정 커버리지, 다중 조건 커버리지로 구분한다.

 

★ 테스트 오라클 

테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된  트루값을 입력하여 비교하는 기법 및 활동

 

참 오라클: 모든 입력 값에 대하여 적합한 결과를 생성하여 발생한  오류를 모두 검출할 수 있는 오라클이다.

일관성 검사 오라클: 애플리케이션 변경이 있을 떄, 수행  전과 후의 결과값이 동일한지 확인하는 오라클이다.

샘플링 오라클: 임의로 선정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공한다.

휴리스틱 오라클: 샘플리 오라클을 개선한 오라클로 임의 입려값에 대해 올바른 결과를   제공하고, 나머지 값들에 대해서는 휴리스틱으로  처리한다.