//구글콘솔 광고 추가가
6.1.5 테스트 실행 및 로깅 지원 도구

테스트 프레임워크

 - 테스트 수행을 위한 전체적인 프로세스

 - 테스트 자동화 설계 유형

   >> 데이터 주도 : 테이블이나 스프레드쉬트에 테스트 입력값과 예상 결과를 저장하여 스크립트를 작성하고 테스트하는 기법.

   >> 키워드 주도 : 테스트 데이터와 예상 결과 뿐만 아니라 테스트 대상 어플과 관련된 키워드를 포함한 데이터 파일을 사용하는 테스트 기법

 - 테스트 도구를 구축하는데 사용할 수 있는 재사용 및 확장 가능한 테스트 라이브러리

테스트 실행 도구

 - 저장된 입력 값들과 예상 결과를 이용해 테스트를 자동 혹은 반자동으로 실행(스크립트 언어 이용)

 - 캡쳐 & 재실행 도구 - 테스트 스르립트와 실행결과 저장

 - 테이블 기반 테스트 실행 도구

 - 도입 시 고려사항

   >> 대규모 테스트 자동화에 부적합 - 예상하지 못한 이벤트 취약

   >> 스크립트 언어에 대한 전문가 필요

   >> 테스트 결과의 비교를 위해 각각의 테스트에 대한 기대 결과 저장 필요

테스트 하네스 도구(개발자에게 더 적절한 지원) 

 - 테스트 대상 실행 환경을 시뮬레이션하여 격리된 상태에서 컴포넌트를 테스트하거나 적절한 스텁과 드라이버와 함께 테스트 할 수 있도록 지원하는 도구

 - 테스트 하네스 도구는 미들웨어 상의 테스트 실행 프레임워크를 제공하는 용도로 사용

단위 테스트 프레임워크 도구(개발자에게 더 적절한 지원)

 - 컴포넌트 테스트 레벨에 포커스를 맞춘 도구

 - 단위 테스트 레벨에 특화된 테스트 하네스로 코드를 개발하는 동안 컴포넌트 테스트를 병렬적으로 수행 하도록 지원

 - TDD(Test Driven Development) - 단위 테스트 유용

 - 단위 레벨의 테스트 케이스는 리그레션 테스트에서도 의미 있게 재사용

테스트 비교자

 - 파일, 데이터베이스 혹은 테스트 결과 사이의 차이를 비교하고 결정

 - 자동화 시스템에서 테스트 오라클(판단 근거)을 이용

 - 일반적으로 테스트 실행 도구에 포함

커버리지 측정 도구(개발자에게 더 적절한 지원)

 - 측정된 유형의 구조가 테스트 세트에 의해 얼마나 완벽하게 실행됐는지 확인

 - 코드 커버리지 도구는 측정하고자 하는 특정 유형의 코드 구조( 구문, 분기 또는 결정, 모듈 또는 함수 호출)가 몇 퍼센트 실행됐는지 측정

보안 테스트 도구

 - 컴퓨터나 바이러스나 서비스 거부 공격 검사

 - 시스템 특정 취약성을 찾기 위해 부하를 주는 도구

 - 운영체제를 시뮬레이션해 보안성을 테스트 하는 도구

6.1.6 성능과 모니터링 도구

동적 분석 도구(개발자에게 더 적절한 지원)

 - SW 실행 중에만 발생하는 시간 의존성과 메모리 누수와 같은 결함을 발견

 - 컴포넌트 / 통합 테스팅에서 사용되거나 미들웨어를 테스트할 때 사용

성능 / 부하 / 스트레스 테스팅 도구

 - 시스템이 시뮬레이션된 다양한 사용 조건 하에서 어떻게 동작하는가를 모니터링

 - 어플리케이션, 데이터베이스, 네트워크 서버와 같은 시스템 환경에 대해 부하를 시뮬레이션

 - 자동 반복 실행에 기초하고 있고 파라미터에 의해 조정

 - 성능 테스팅 전문가 필요(테스트 설꼐 및 실행 결과 해석)

모니터링 도구

 - 특정 시스템 리소스의 사용량을 지속적으로 분석하고 확인해서 보고

 - 예상되는 서비스 상의 문제점에 대해 경고

6.1.7 특정 어플리케이션 영역을 위한 도구

특정 유형의 어플리케이션만을 위해 전문화

 - 웹 기반 어플리케이션에 특화된 성능 테스팅 도구

 - 특정 개발 틀랫폼을 위한 정적 분석 도구

 - 보안 테스팅에 특화된 동적 분석 도구

 - 임베디드 시스템과 같은 특정 어플리케이션 분야를 위한 상용 도구 스위트

▶ 자동화도구범위와오픈소스참조

https://www.oss.kr/info_test/show/b3f50bf5-7d67-486f-bc70-d426d6f01dc4

☞http://www.pseg.or.kr/pseg/casetest

6.1.8 테스팅 도구 이외의 다른 도구

기타 도구

 - 테스터는 개발자가 사용하는 도구, 사무용으로 사용하는 도구도 활용할 수 있음

6.1.9 상용 도구와 오픈 소스 도구

오픈소스도구 

 - 무료로 사용할 수 있는 오픈소스 도구는 코드를 공개하는 경우와 사용만 무료로 하는 경우로 나누어 질 수 있음

6.2.1 테스팅 도구 도입의 잠재 이익과 위험
++ RPA(Robotic Process Automation)란? 
디지털 시스템 및 소프트웨어와 사람 사이의 상호 작용을 에뮬레이션하는 소프트웨어 로봇을 쉽게 빌드, 구현, 및 관리할 수 있도록 해주는 소프트웨어 기술

로보틱 프로세스 자동화(RPA)는 소프트웨어 로봇을 사용하여 인간이 수행하는 작업을 자동화하는 비즈니스 프로세스 자동화 기술의 한 형태이다.

자동화 도구의 장단점

 - 혜택(benefit)

   >> 테스트 노력 절감 및 실수 감소 : 반복되는 부분을 자동화 시켜, 리소스를 보다 리스크가 높은 부분의 테스팅에 집중하도록 함 / 리그레이션 테스팅 실행, 동일 테스트 데이터 재입력, 코딩 표준 준수 여부 점검

   >> 객관적인 평가 기준 및 테스트의 신뢰성 제공 : 정적 측정치, 커버리지

   >> 테스트와 테스팅에 대한 정보에 쉬운 접근성 제공 : 테스트 진척도, 결함율, 그리고 성능에 대한 통계와 그래프

   >> 월등한 일관성과 반복성 제공 : 비용 효율적 유지보수 가능 --> 고객의 요구에 빠르게 대응할 수 있는 장점

   >> 품질 향상 --> 고객 만족도 향상 

++ 패턴이 있거나 굉장히 단순한 반복이 있다면 자동화를 이용, 건 바이 건 또는 랜덤형식이다. 하면 사람이 하는게 나음.

  -리스크(risk)

   >> 고가이면서 유지비용( 가상사용자, 업그레이드, 기술 지원 등) 높음

   >> 초기 환경 테스트 설정에 많은 시간과 노력 소요

   >> 도구를 통해 중대하고 지속 가능한 성과를 얻기 위해 많은 시간이나 노력 소요

   >> 도구에 의해 생성된 테스트 자산인 테스트 스크립트 유지 보수가 어려움

   >> 오픈 소스와 같은 비영리 프로젝트의 갑작스러운 중단

   >> 새로운 플랫폼 지원과 같은 변화된 환경에 대한 지원 능력 부족

   >> 도구에 대한 비 현실적인 기대/ 도구에 대한 지나친 의존

6.2.2 도구 유형별 고려사항

유형별 고려사항

 - 테스트 실행 도구

   >> 테스트를 실행할 수 있도록 작성된 스크립트를 재생

   >> 이런 종류의 도구는 가치를 끌어내기 위해 상당한 노력과 전문성 필요

 - 성능 테스팅 도구

   >> 성능 테스팅을 설계하고 테스트 결과를 해석할 수 있는 전문가 필요

 - 정적 분석 도구

   >> 소스 코드에 코딩 표준을 강제하는데 사용

   >> 실제 적용시 매우 많은 경고 메시지 발생 >> 유지보수를 위한 조치 취함

 - 테스트 관리 도구

   >> 조직의 요구에 맞는 최적화된 형태의 정보를 생성하기 위해 다른 도구와 연계하여 사용할 필요가 있음

6.3.1 도구 선택 및 도입

도구 선택

 - 주요 고려 사항

   >> 조직의 성숙도, 강점과 약점을 평가한 후, 도구 지원으로 테스팅 프로세스를 개선할 수 있는 기회를 발견.

   >> 도구 도입을 위한 명확한 요구사항과 객관적인 도구 평가 기준을 가지고 도입 하고자 하는 도구를 평가.

   >> 도구가 요구되는 기능성을 만족하는 지, 도구가 본래 목표하는 바를 달성하는지를 등을 파일럿 프로젝트에 적용하여 입증.

   >> 교육 제공과 지원 능력 등을 고려하여 도구 제작 회사나 배포 회사를 평가한다.

   >> 도구 사용과 관련된 조직 내부 교육과 개별 지도에 대한 요구사항을 식별한다. 

6.3.2 파일럿 프로젝트 적용

파일럿 프로젝트

 - 목표

   >> 도구와 관련된 상세한 사항을 습득

   >> 현 프로세스나 업무에 도구를 어떻게 적용할 수 있는지 평가하고, 도구 적용을 위해 현 프로세스나 업무의 무엇을 변경해야 하는 지 결정.

   >> 도구의 사용, 관리, 저장, 유지보수하는 표준적인 방식을 결정.

   >> 합리적인 비용으로 목표하는 성과에 도달할 수 있는지 평가. (시간이 너무 들거나 도입할 때 비용이 너무 많이 들면 ㄴㄴ )

6.3.3 테스트 자동화

 테스트 자동화

 - 테스트 자동화시 고려사항

   >> 적절한 자동화 대상 프로젝트 선정

   >> 자동화를 테스트 전략과 계획에 포함
   >> 자동화 도구 선정에 신중

   >> 도구에서 요구하는 것에 따라 제품과 테스트 스펙을 공식적으로 변경
   >> 자동화 테스트 지원 시설(도구) 개발 계획 고려

   >> 상세한 자동화 테스트 지침 필요

   >> 도구 전문가 참여

   >> 자동화 도구 관련 프로세스의 정의와 적용

6.3.4 도구의 배포

 도입한 도구를 조직 내부에 배포

 - 성공 요인

   >> 조직의 나머지 부분에도 도구의 사용을 점진적으로 확대

   >> 도구의 사용법에 맞게 프로세스를 수정하고 개선

   >> 새로운 사용자를 위한 교육과 훈련(멘토링) 수행

   >> 사용 가이드라인을 정의

   >> 도구 사용을 통해 교훈을 얻는 방법을 마련

   >> 도구 사용 현황과 성과를 모니터링

6.3.4 도구 도입 절차
1. 도구 도입 계획 및 전략 수립
- 도구 도입 목적 정의 및 내부 요구사항 식별
- 비용 편익 비율 추정 >> 구체적인 비즈니스 사례 기반
- 상용 도구 도입 시 직접 개발하는 부분 존재(상용 도구 한계)
2. 후보 도구 선정 및 평가
- 자료 검토 및 후보 도구 선정
- 목적 달성 여부 검증
- 요구사항과 객관적인 기준으로 평가
- 교육 및 지원 능력 등 고려해 평가
3. 파일럿 프로젝트 
- 도구 적용 평가 및 프로세스 변경 대상 및 범위 결정
- 도구 사용, 관리, 저장, 유지 보수 등 표준 방식 결정(라이브러리 개발, 테스트 스위트 모듈화 등)
- 합리적인 비용으로 목적하는 성과에 도달할 수 있는지 점검
4. 도구 배포 및 확산
- 조직에 점진적으로 확대
- 도구 / 사용법에 맞게 프로세스 적용/ 개선
- 사용자 교육 및 지도 / 멘토링
- 사용 가이드 라인 정의
- 도구 사용과 성과 모니터링
- 도구 적용에 필요한 적절한 지원(인력, 기술 등)
6.4 도구 도입과 성과

 도구 도입

 - 기대 효과 및 성과

   >> 사람의 실수로 인한 에러 최소화

   >> 수동으로 하기 어렵거나 불가능한 작업이 도구 지원을 통해 가능해짐

   >> 신뢰성 있는 정량적 테스팅 리포팅 >> 실시간 현황 파악 가능

   >> 테스트 시간의 단축으로 제품 릴리즈 시간 단축 가능

   >> 더욱 빈번하게 자주 테스트함으로써 신뢰성을 높일 수 있음

   >> 테스트 스킬이 높지 않아도 도구를 활용한 테스트 실행 가능

   >> 테스트 커버리지 높일 수 있음

   >> 실행 자동화 도구의 경우 리그레션 테스팅의 효과 가능

   >> 도구에 내장된 기능을 사용함으로써 객관적이고 효과적인 도구 사용

 

728x90
반응형

+ Recent posts