반응형
소프트웨어 테스트 전문가 CSTS 교육 과정
[출처] http://choris.springnote.com/pages/1494874.xhtml
- 소프트웨어 테스트 진화 과정
- 레벨1 (debugging-oriented)
- 테스트와 디버깅의 차이가 뚜렷하게 보이지 않는다. 우연히 발견된 오류를 수정
- 레벨2 (demonstration-oriented)
- 프로그램이 올바르게 동작한다는 사실을 입증하기 위한 테스트를 수행
- 레벨3 (destruction-orented)
- 프로그램에 오류가 존재함을 보여주기 위한 테스트를 수행
- 레벨4( evaluation-oriented)
- S/W 개발의 모든 단계에서 발생하는 오류를 발견하는 개념으로 확장
- 레벨5 (prevention-oriented)
- 오류가 발생하지 않도록 사전에 방지하는 개념
- 레벨1 (debugging-oriented)
- S/W 테스트 목적은? 버그를 찾아내는 것
- S/W 오류의 원인
- 요구사항의 잘못된 정의
- 고객과 개발자 간의 잘못된 의사 소통이나 부재
- 고의적인 요구사항 미준수
- 설계 오류
- 코딩 오류
- 문서나 코딩 표준에 따르지 않은 경우
- 미흡한 테스트 프로세스
- 버그란?
- 에러(error) - 프로그램이 올바르지 않은 내부 상태 ( 무결성 위배 )
- 결함(fault) - 잘못된 정보를 프로그램에 반영하거나 올바른 정보를 누락하여 잠재적인 버그가 될 수 있는 상태
- 오작동(failure) - 프로그램이 명세와 다르게 동작하는것이 외부에서 관찰되는 상황
- 테스트 용이성이란?
- 프로그램을 얼마나 손쉽게 테스트 할 수 있는지를 나타내는 특성
- 테스트 용이성의 7단계
- 제어용이성
- 프로그램의 실행을 제어하기 용히하도록 설계, 자동화할 수 있는 부분이 많이지고 최적화 할 수 있다.
- 관찰가능성
- 프로그램 내부 상태가 현재 어떤 상태인지를 쉽게 파악할 수 있는 기능을 갖추도록 설계
- 단순성
- 단순하게 설계.
- 분할용이성
- 테스트 영역을 제어함으로써 문제가 발생된 곳을 고립시켜 독립적으로 모듈에 대한 테스트를 수행할 수 있도록 설계한다.
- 운영용이성
- 결함이 발생하여도 테스트 작업을 계속 할 수 있도록 설계
- 이해용이성
- 설계정보가
- 안전성
- 제어용이성
- 오라클이란? 테스트 실행 결과가 올바른 결과값인지를 판달 할 수 있는 메커니즘
- 테스트 오라클
- 참 오라클
- 모든 입력 값들에 대해 원하는 결과들을 생성하여 발생된 오류를 놓지지 않고 검출 할 수 있는 오라클
- 샘플링 오라클
- 특정 몇몇 입력 값들에 대해서만 원하는 결과를 제공해주는 오라클
- 휴리스틱 오라클
- 샘플링 오라클의 단점을 개선하기 위해 특정 몇몇 입력 값들에 대해서는 샘플링 오라클의 경우처럼 올바른 결과를 제공하고 나머지 입력값에 대해서는 휴리스틱으로 처리하는 오라클
- 일관성 검사 오라클
- 수정 전후의 실행 결과를 비교
- 참 오라클
- 소프트웨어 테스트 원칙 7가지
- 테스트는 반드시 해당 S/W 개발과 전혀 무관한 그룹에 의해서 수행되어야 한다.
- 가장 능력이 뛰어난 사람에게 할당하라
- 오류가 발견되지 않을 것이란 가정하에서 테스트 계획을 수립해서는 안된다.
- 예상하지 못한 경우들에 대해서도 테스트를 수행하라
- 오류가 남아 있을 확률은 이미 발견된 오류의 수에 직접적으로 비례한다.
- 파레토(Pareto) 법칙... 20:80 비율
- 시스템의 20% 모듈이 전 자원의 80%를 소비
- 시스템의 20% 모듈이 실행시간의 80%를 소비
- 오류의 20%가 오류 수정비용의 80%를 차지한다
- 사용도구의 20% 기능만이 도구 사용의 80%를 차지
- 파레토(Pareto) 법칙... 20:80 비율
- 테스트 케이스를 체계적으로 관리하라.
- 각각의 테스트 결과를 철저하게 점검하라.
- S/W 테스트 분류 5가지
- 단위
- 모듈 테스트
- 통합
- 모듈간의 인터페이스 테스트
- 시스템
- 초기목적을 만족시키는지의 테스트
- 인수
- 요구사항을 만족하는가 테스트
- 리그레션
- 유지보수 단계에서 변경이 제대로 이루어지는지 테스트
- 테스크 용어
- 요구사항
- 테스트 시나리오
- 테스트 케이스
- 테스트 스크립트 또는 절차
- 블랙박스
- 명세 정보 기반
- 단위, 통합, 시스템에 적용
- 코드상의 문제를 발견하기 어려움
- 화이트박스
- 구현정보(제어흐름, 자료흐름) 기반
- 단위,소규모 서브 시스템에 적용
- 구현이 되지 않은 기능을 검출할 수 없음
- 블랙박스
- 동등 분할 클래스
- 결계 값 분석
- 도메인 테스트
- 페어와이즈 조합 테스트
- 상태 전이 테스트
- 인과 그래핑
- 결정 테이블
- 블랙박스
- 동등 분할 클래스
- 동일한 동작이 예상되는 동등 클래스로 분류, 각 클래스별 대표값을 선택하여 사용 ex) 대학교 성적표
- 결계 값 분석
- 동등 클래스의 입력값을 선정할때, 경계값을 포함 ex) 동등 클래스의 값이 0~100 사이면 0값, 1 ~ 99값 중 하나, 100값
- 도메인 테스트
- 입력 변수들 간의 상간관계에 따라 영역을 분할, on, OFF, IN, OUT
- 페어와이즈 조합 테스트
- 입력 값의 모든 짝들의 조합이 테스트 케이스 내에 적어도 한번 이상 들어가도록 작성.
- IPO 알고리즘
- 처음 두 입력 변수의 모든 쌍을 구한다.
- 그 이외의 모든 입력 변수의 쌍의 집합을 구하고 이를 AP라고 한다.
- 리스트에 하나씩 작성하고 포함된 쌍의 AP를 삭제한다.
- 가장 많은 짝을 제거할 수 있는 값을 할당한다. - 무한반복
- 상태 전이 테스트
- 시스템의 상태 전이도를 기반으로 테스트 케이스를 도출하는 방법
- 인과 그래핑
- 입력 조건과 출력 결과를 논리적으로 연결한 그래프를 이용하여 테스트 케이스를 도출
- 결정 테이블
- 입력 조건의 모든 조합에 대한 시스템의 액션을 고려하여 테스트 케이스를 도출하는 방법
- 동등 분할 클래스
- 화이트 박스
- 문장 커버리지
- 분기 커버리지
- 조건 커버리지
- 분기/조건 커버리지
- MC/DC
- 기본 경로 테스트
- 자료 흐름 테스트
- 화이트 박스
- 문장 커버리지
- 테스트하려는 프로그램 내의 모든 문장을 적어도 한번 이상 실행하도록 요구
- 분기 커버리지
- 각 분기(참/거짓)을 적어도 한번 이상 실행시키는 것
- 조건 커버리지
- 조건에 나타난 모든 기본 조건들에 대해서 참/거짓이 되는 모든 경우를 테스트
- 분기/조건 커버리지
- 분기 + 조건
- MC/DC
- 기본 조건들과 무관하게 전체 조건의 평가에 영향을 미치는지를 알아보기 위한 테스트
- 기본경로 테스트
- 상호 독립적인 경로를 모두 수행하여 잠재적인 오류를 찾아내는 방법
- 문장 커버리지
- 정적분석
- 프로그램을 실제로 실행해보지 않고 분석하는 방법
- 검증 활동
- 프로그램을 실행시키지 않고 그 자체를 분석하는 것으로 프로그램에 내재한 논리적 오류를 찾아낼 수 있다.
- 동적분석
- 프로그램을 실행해보고 분석하는 방법
- 확인 활동
- 프로그램을 직접 실행하여 입력 값을 넣으므로 예상되는 출력 값이 나오는지 분석한다
- 정적 분석 기법
- Manual Static Analysis (동료 검토)
- 인스팩션
- 훈련된 리더에 의한 진행 및 제어가 이루어지며, 정식 프로세스가 존재. 정밀검사 리포트와 발견사항 리포트를 산출 하여 정상적인 후속처리 확인 프로세스 존재
- 리뷰
- 개발 중간 산출물의 누락과 같은 결함을 발견하는 것으로 코드를 포함한 중간 산출물을 검토/테스트 하는 방법으로 장애보다는 결함을 발견하는 방법
- 워크쓰루
- 문서 작성자에 의한 진행 및 제어되며 시간 및 인원수 등의 제한이 없고 상황에 따라 변경 가능한 세션으로 학습 시스템에 의한 이해 향상을 유도하여 그룹이 검토하는 리뷰
- 공식 검토
- 개발 단계의 종료 시점에서 산출물에 대해 수행되는지 정적분석.
- 인스팩션
- Automatic Static Analysis
- 심볼링 실행
- 프로그램 코드를 대상으로 입력 대신 집합이 상증하는 심볼을 입력하는 실행
- 자료 흐름 분석
- 자료의 흐름에 이상이 있는지를 분석
- 정형 검즘
- 수학적인 표기법을 이용하여 명세된 시스템의 특성을 검증
- 심볼링 실행
- Manual Static Analysis (동료 검토)
- 테스트 드라이버와 스텁에 대한 설명
프로그램을 실행해 보고 분석하는 방법
확인 활동
프로그램을 직접 실행하여 입력값을 넣으므로 예상되는 출력값이 나오는지 분석한다.
반응형
'소프트웨어 개발&환경' 카테고리의 다른 글
소프트웨어 품질인증기준 - GS 인증 (0) | 2012.01.13 |
---|---|
소프트웨어 품질인증기준, 정보통신부 고시 제2000-81(2000.10.31 제정) (0) | 2011.12.28 |
개인정보보호법 (0) | 2011.11.16 |
비즈니스 솔루션 및 컨설팅 관련 용어 정리 (0) | 2011.08.10 |
Editplus 이용한 모바일 자바 개발 IDE 환경 만들기 (0) | 2011.03.27 |