2016년 5월 17일 화요일

소프트웨어 테스팅 도구 지표 가이드

카페 > 뉴딜코리아 홈페이지 | 뉴딜코리아
http://cafe.naver.com/rapid7/2439

소프트웨어 테스팅 도구 지표 가이드 2016

본 가이드는 소프트웨어 테스팅에 대하여 기본부터 실무에 필요한 사항까지를 정리하였다. 

제 1장 소프트웨어 테스팅 정의 및 소개 
 - 초보자부터 고급의 소프트웨어 엔지니어를 대상으로 정리한 소프트웨어 테스팅 입문편에 해당한다. 
   주로 ISTQB와 ISO/IEC/IEEE 29119와 같은 국제표준 또는 이에 준하는 가이드에서 정의하고 있는 내용을 위주로 정리하였다. 

제 2장 소프트웨어 테스팅 도구 분류 
 - 소프트웨어 개발 생명주기를 기준으로 테스팅 관리 지원 도구, 정적 테스팅 지원 도구, 테스팅 설계 지원 도구,
   테스팅 실행 및 로깅 지원 도구 그리고 성능과 모니터링 지원도구 5가지로 구분하여 테스팅 도구를 분류하고 설명하였다. 
   현업에서 테스팅을 2년 이상 수행한 실무자부터 관리자를 대상으로 하는 테스팅 실무 입문편에 해당한다.

제 3장 소프트웨어 테스팅 도구 소개 
 - 2장에서 분류한 테스팅 도구 순서대로 다양한 도구의 설치법과 사용법을 소개한다. 
   상용 소프트웨어 보다는 무료 소프트웨어 위주로 구성하였다. 
   이는 현실적으로 상용 소프트웨어 도입이 어려운 중소 소프트웨어 기업을 우선 고려한 점임을 밝힌다. 
   하지만, 최근 국내 상용 소프트웨어 제품의 기능과 품질이 우수해지고 있어 차후 본 가이드를 업데이트 할 때는 
   국내 상용 소프트웨어 제품의 소개도 진행하려 한다. 
   제 3장은 테스팅 2년 이상 실무 수행 엔지니어를 대상으로 한다. 

제 4장 소프트웨어 테스팅 지표 
 - 테스팅 실무 경력 5년 이상 또는 테스팅 관리자를 대상으로 한다. 
   소프트웨어 테스팅 계획 단계에서 제품 또는 프로젝트의 성공적인 수행을 위해 
   어떤 지표를 선택해서 측정, 관리, 통제하는것이 맞는지에 대하여 가이드를 제공하기 위함을 목적으로 한다.




◈ 목 차 ◈


Ⅰ. Software Testing 정의 및 소개 

1.0 Software Testing 오해.............................................1
   1) 잘 작동하던 시스템이 갑자기 멈춘다.
   2) 시간과 인력이 부족해서 소프트웨어 테스팅은 어렵다.
   3) 소프트웨어 테스팅은 어려운 업무가 아니다, 아무나 가능하다.
   4) 소프트웨어 테스팅은 언제부터 시작해서, 언제까지 해야 하는지 모르겠다.
   5) 소프트웨어 제품에 결함이 없다는 것을 증명하는 것이 소프트웨어 테스팅의 목적이다.   

1.1 Software Testing 필요성..........................................6 
   1) 잠재적 오류와 결함의 발견 그리고 예방
   2) 요구사항의 준수여부(기능/비기능) 확인 및 정량적 문서화
   3) 소프트웨어 특성들에 대한 제품 확인
   4) 고객 만족도 향상

1.2 Software Testing 정의............................................12 
   - 테스팅(Testing)
   - 테스트(Test)

1.3 Software Testing 역사............................................14 
   1) 디버깅 위주 시대(Debugging Oriented Period : ~ 1956)
   2) 증명위주 시대(Demonstration Oriented Period : 1957 ~ 1978)
   3) 파괴위주 시대(Destruction Oriented Period : 1979 ~ 1983)
   4) 평가위주 시대(Evaluation Oriented Period : 1984 ~ 1987)
   5) 예방위주 시대(Prevention Oriented Period : 1987 ~ 2000)
   6) 위험위주 시대(Risk Oriented Period : 2000 ~ 2020)

1.4 Software Testing 원칙............................................17 
   1) 개발자가 자신이 개발한 프로그램 및 소스코드를 테스팅 하지 않는다.
   2) 효율적인 결함 제거 법칙 사용(낚시의 법칙, 파레토의 법칙)
   3) 완벽한 소프트웨어 테스팅은 불가능하다.
   4) 테스팅은 기획단계부터 해야 한다.
   5) 살충제 패러독스
   6) 오류-부재의 궤변

1.5 Software Testing 관련 국제표준...............................23 
   1.5.1 ISO/IEC/IEEE 29119 Software and system engineering-Software Testing
   1.5.2 ISO/IEC 33063 Process Assessment Model

1.6 위험 기반 테스팅....................................................32 
   1.6.1 위험 기반 테스팅 전략 수립
   1.6.2 위험 수준 분석 및 결정
   1.6.3 위험 수준 별 테스팅 접근법 수립
   
1.7 탐색적 테스팅........................................................39 


Ⅱ. 소프트웨어 테스팅 도구 분류  

2.1 테스팅 관리 지원 도구.............................................47
   2.1.1 테스팅 프로세스 관리 도구(Testing process management tools)
   2.1.2 결함 관리 도구(Defect management tools)
   2.1.3 요구사항 관리 도구(Requirement management tools)
   2.1.4 형상 관리 도구(Configuration management tools)

2.2 정적 테스팅 지원 도구.............................................55
   2.2.1 리뷰 도구(Review tools)
   2.2.2 정적 분석 도구(Static analysis tools)
   2.2.3 모델링 도구(Modelling tools)

2.3 테스팅 설계 지원 도구.............................................58 
   2.3.1 테스팅 설계 도구(Test design tools)
   2.3.2 테스팅 데이터 준비 도구(Testing data preparation tools)

2.4 테스팅 실행 및 로깅 지원 도구..................................60 
   2.4.1 테스팅 실행 도구(Testing execution tools)
   2.4.2 테스트 하네스 도구(Test Harness Tool)
   2.4.3 단위 테스팅 프레임워크 도구(Unit test framework)
   2.4.4 테스팅 비교자(Test comparator)
   2.4.5. 커버리지 측정 도구(Coverage measurement tools)
   2.4.6 보안 도구(Security tools)

2.5 성능과 모니터링 지원 도구.......................................68 
   2.5.1 동적 분석 도구(Dynamic analysis tools)
   2.5.2. 성능/부하/스트레스 테스팅 도구(Performance/Load/Stress Testing tools)
   2.5.3. 모니터링 도구(Monitoring tools)


Ⅲ. 소프트웨어 테스팅 도구 소개

3.0 테스팅 도구 도입의 원칙........................................73
   3.0.1 테스팅 도구 도입의 잠재 이익과 위험 요소
   3.0.2 테스팅 도구 도입 및 배포
   3.0.3 파일럿 프로젝트 적용
   3.0.4 테스팅 자동화
   3.0.5 도구의 배포
   3.0.6 도구 도입 절차
   3.0.7 도구 도입의 성과

3.1 테스팅 관리 지원 도구...........................................86
   3.1.1 테스팅 관리 도구(Testing management tools)
       - Redmine / Mylyn
   3.1.2 결함 관리 도구(Defect management tools)
       - Bugzilla / Mantis / Trac
   3.1.3 요구사항 관리 도구(Requirement management tools)
       - JFeature 
   3.1.4 형상 관리 도구(Configuration management tools)
       - Subversion + TortoiseSVN
 
3.2 정적 테스팅 지원 도구.............................................110
   3.2.1 리뷰 도구(Review tools)
       - Gerrit
   3.2.2 정적 분석 도구(Static analysis tools)
       - CheckStyle / CppCheck / PMD / JDepend
   3.2.3 모델링 도구(Modelling tools)
       - StarUML /  ERMaster    

3.3 테스팅 설계 지원 도구.............................................130 
   3.3.1 테스팅 설계 도구(Test design tools)
       - Jubula / TestLink
   3.3.2 테스팅 데이터 준비 도구(Test data preparation tools)
       - Toad 

3.4 테스팅 실행 및 로깅 지원 도구..................................140 
   3.4.1 테스팅 실행 도구(Test execution tools)
       - Selenium
   3.4.2 테스팅 하네스 도구
       - SoapUI
   3.4.3 단위 테스팅 프레임워크 도구
       - JUnit / NUnit
   3.4.4 커버리지 측정 도구(Coverage measurement tools)
       - Emma / Cobertura
 
3.5 성능과 모니터링 지원 도구.......................................159 
   3.5.1 동적 분석 도구(Dynamic analysis tools)
       - Valgrind / JMeter / LoadUI
   3.5.2 성능/부하/스트레스 테스팅 도구(Performance/Load/Stress Testing tools)
       - JMeter / LoadUI 


Ⅳ. 소프트웨어 테스팅 지표

4.1 소개.....................................................................166 
   4.1.1 개요
   4.1.2 소프트웨어 지표
   4.1.3 소프트웨어 테스팅 지표
   4.1.4 관련 용어 정리

4.2 지표의 중요성........................................................173
   - 지표의 특징

4.3 테스팅 지표관리 체계..............................................175 
   - 분석, 협의, 평가, 보고, 

4.4 기능 관점 테스팅 지표.............................................178
  4.4.1 개발 시스템 품질 지표
     - 시스템 기능 지표
  4.4.2 테스팅 프로세스 품질 지표
    - 테스팅 관리 지표
    - 코드 품질 지표
    - 테스팅 실행 지표
    - 자동화 테스팅 지표   


☞ 보고서 전문은 첨부 파일을 확인해 주시기 바랍니다.

※ 뉴딜코리아
- [소프트웨어 테스팅 도구 지표 가이드 2016] 활용 시
  반드시 출처(정보통신산업진흥원 부설 소프트웨어공학센터)를 명시하여 주시기 바랍니다.

댓글 없음:

댓글 쓰기