본문 바로가기

knowledge/CSTS

[CSTS] 내용정리 및 암기법 1. 테스트 개념 및 용어 (7문제)

* 테스트 목적 *

- 시스템이 정해진 요구사항을 만족하는지, 주어진 표준 등을 준수하는지 확인

- 결함을 검출해서 SW품질을 개선하기 위한 목표

- 어떤 단계에서 결함이 발생하는지 분석, 결함이 왜 검출되지 않았는지 파악하기도 함.

 


 

* 오류, 결함, 장애 *

- 오류 (error)

: 개발자 잘못. 사용자의 요구사항을 잘못파악하거나 이해해서 발생하는 실수.

오타를 내거나 코딩을 잘못한 것 등등

  => 암기법 : 5,4 (오류는 사람잘못) 

 

- 결함 (defect)

: SW 내에 장애를 유발할 수 있는 문제. 

누락 (요구사항에 명시되어있지만 구현되지 않은것),

부정확한 구현 (SW에 부정확하게 반영됨),

비관련 결함 (무의미한 코드가 존재하는 것)

등이 있다. 

 

- 장애 (Failure)

: SW가 요구사항과 다르게 동작한 것. 

결함으로 인해 장애가 발생할 수 있지만 반드시 그런건 아님. 

 

ex) 코드를 (a * b) 로 작성해야 하는데 (a + b)로 작성했다면 오류로 인해 결함이 있는 것이지만

a = 2, b =2 를 입력하면 기대하는 결과값은 같기 때문에 장애가 발생하지 않음.

 


 

 * 개발 단계별 결함 *

- 각 단계의 산출물에는 결함이 존재할 가능성이 있고,

결함은 일부분의 모듈에 집중되어 나타난다.

- 결함이 발생한 시점에 제거되지 않고 이후 개발단계에 전달되면 이 결함을 제거하기 위해 더 많은 비용이 소요된다.

- 결함 해결 비용 : 요구분석 < 설계 < 코딩 < 단위테스팅 < 인수테스팅 < 유지보수

 


 

* 테스팅, 디버깅, 재테스팅 *

- 테스팅

: SW의 실제 동작과 요구사항과의 차이 확인, 장애발생을 확인하여 SW에 결함이 있음을 판단

: 소스코드를 어떻게 수정해야하는지에 관여 안함!

 

- 디버깅 (= 소스코드수정)

: 테스팅을 통해 결함의 존재를 확인 후 수행, 결함의 위치 파악하고 제거함이 목적.

 

- 재테스팅

: 개발자가 코드 수정 후, 결함이 제거 되었는지 확인

: 초기에 결함을 검출한 TC (테스트 케이스)를 이용하여 다시 테스팅을 수행

 

 

* 완벽한 테스트의 비현실성 *

모든 조합을 테스트 하는 것이 현실적으로 불가능하기 때문.

" 프로그램 테스트는 결함이 있음을 보일 수는 있지만, 결함이 없음을 보일 수는 없다"

 


* 기본용어 *

- 테스트 대상 : 테스트(T) 를 통해 결함을 검출하려는 대상 소프트웨어 (SW).

 

- 테스트 레벨 : 규모에 따라 구분

=> 컴포넌트T ( =단위T ; 부분을 대상으로 한 T ),

=> 통합T (시스템을 구성하는 각 부분의 여결에 초점을 둔 T),

=> 시스템T (전체 SW대상)

 

- 피처 (Feature) : T대상의 특성 중에서 T하고자 하는 측면, 관점

 

- 테스트 유형 : 기능에 따라 구분

=> 기능 적합성, 사용성, 신뢰성, 호환성, 이식성, 성능 효율성, 보안성, 유지보수성

=> 암기법

- T유형 : 기사신호이성보유 (기사가 신호를 보낸다, 이성을 보유하라고^^ㅋㅋ)

 

- 테스트 설계기법 : T대상의 결함을 효과적으로 검출하기 위한 것. 

=> 정적 테스트, 동적테스트

 

- 테스트 케이스 (TC) : 입력과 대응되는 예상 결과를 묶어서 부르는 말.

=> 입력값, 입력값을 T대상에게 제공하는 방법, 예상 결과와 실제 결과를 비교하는 방법도 포함.

 

- 테스트 절차 (Procedure) : 테스트를 준비하고, 실행하고, 결과를 관찰 기록하는 절차

 

- 테스트 스크립트 (Script) : 자동화 도구가 해석하고 실행하는 언어

 

 


 

암기법은 ㅋㅋㅋ 정말 매우 말도 안되는 거 같아서

쓸까말까 고민했지만 ㅋㅋㅋ 

입에 달달 붙도록 해주시면 나중에 편합니다,,^^ㅋㅋ

사실 본인이 고민해서 암기법을 만드는게 가장 기억에 잘 남긴 하죠 :)

편하게 원하시는대로 외워주시면 됩니다 😉😉