728x90
반응형

Ripple Effect - 수정으로 인한 오류

Side Effect - 엄한데 오류

RSP, 기능변경시 또는 환경수정시 수행

IEEE610.12-90

 

[개념] 오류를 제거하거나 수정한 시스템에서 오류제거와 수정에 의해 새로 유입된 오류가 없는지 확인하는 반복 테스트

 

“수정(Modification)이 기대하지 않은 결과를 발생하지 않는다는 것을 증명하기 위한 시스템이나 컴포넌트에 대한 선택적 재테스트”로 소스코 드 수정되었을 때 의도치 않게 포함된 버그를 찾아낼 수 있도록 테스트를 수 행하는 기법

 

[종류] retest all(금융권), selective test(일반), priority test(저위험)

[절차] 1)테스트 수행전 확인사항 체크(스모크 진행가능), 변경된 각 모듈의 통합 및 배포 수정까지 빌드 실시

2)TC Lib같은 도구로 회귀테스트 수행. 반복 및 제약부하 환경에서 성능테스트

3)결과기록 및 사후검증 진행 - 기존 단위테스트의 회귀테스트는 repository에 저장. 변경된 기능 및 시나리오 감안한 테스트 절차 최신화

 

 

[고려사항]

테스트 자동화 도구 적용

repository 사용으로 자산축적 및 재사용성 향상

테스트 조직 사용

테스트 케이스 관리

추가 테스팅 기법 활용(지각, 스모크, 새너티)

테스트 스텁&드라이버 재사용

 

 

 

1. 확인/리그레션 테스트 - 변경으로 인한 Side effect최소화

  1) 확인 테스트 : 결함이 발견되어 수정된 후에 SW의 원래 결함이 성공적으로 제거되었는지 확인하기 위해 수행하는 테스트

  2) 리그레션 테스트 : 테스트한 프로그램을 다시 테스팅하는 것으로 변경결과 새롭게 생겨난 결함 및 다른 결함을 발견하기 위한 테스트

2. 확인/리그레션 테스트

  - 결함 수정 후 Side-Effect 확인, Record & Replay

  - 확인테스트(결함제거확인), 리그레션 테스트(테스트된 프로그램 테스트 반복)

3. 절차 : Record & Replay -> 전략적 Test설계  -> 주요대상설계 -> 반복횟수 설정

 

 

응용소프트웨어 테스트중에 회귀테스트(Regression test)에 대해 설명하시오

 

1. 정의

  테스트 수행 결과 발생한 결함을 수정 조치했을 때 부작용(Side-effect)으로 발생하는 또 다른 결함 여부를 파악하기 위한 일종의 반복적 테스트

 

2. 특징

  가. 효용

    - XP프로그래밍 등에서 반복되는 리팩토링, 변경 등에 대하여 발생되는 결함파악에 용이

    - CBD기반의 프로그램에서 재사용의 빈도가 높은 컴포넌트의 결함 수정 시에 회귀테스트 적용 필수

    - 공통 유틸, 라이브러리 모듈에 대한 결함 수정 시 회귀테스트 효과 높음

 

  나. 필요성

    - SW 구조의 복잡성 : 상호간 모듈의 의존성이 심화되어 결함조치 통한 한쪽 모듈의 변화가 다른 모듈에 변경 파급효과가 큼

    - 성능과 기능의 tradeOff : 기능상의 결함을 단순 조치함으로써 현격한 성능저하 초래 우려

    - 결함조치 확인 : 기존 테스트에서 발견된 결함이 실제로 완벽하게 조치되었는지 확인 필요

    - 정합성 테스트 : 개별 모듈 간의 변경 통한 정합성

 

3. 방안

    - Record & replay 테스트 : CASE툴을 이용하여 최초 테스트 상황 Recording 후, 데이타 풀을 이용하여 테스트 데이터를 변경시키면서 반복적으로 테스트

 

    - 전략적 Testcase 설계 : 회귀테스트케이스 시나리오는 가변적임, 따라서 최초에 테스트케이스를 미리 예측 작성하는 것은 어려움, 테스트를 진행하면서 수행하는 결함조치 결과에 기반을 둔 시나리오로 테스트케이스 유동적으로 신규 작성하는 테스트 계획수립이 필요

 

    - 주요 대상 선정 : 응집도가 높은 모듈 내부보다는 모듈 간 결합도가 높은 부분에 집중해서 반복 수행

 

    - 반복횟수 선정 : 회귀테스트 반복횟수 지정 기준 마련

728x90
Posted by Mr. Slumber
,