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 도구 도입과 성과
▶ 도구 도입
- 기대 효과 및 성과
>> 사람의 실수로 인한 에러 최소화
>> 수동으로 하기 어렵거나 불가능한 작업이 도구 지원을 통해 가능해짐
>> 신뢰성 있는 정량적 테스팅 리포팅 >> 실시간 현황 파악 가능
>> 테스트 시간의 단축으로 제품 릴리즈 시간 단축 가능
>> 더욱 빈번하게 자주 테스트함으로써 신뢰성을 높일 수 있음
>> 테스트 스킬이 높지 않아도 도구를 활용한 테스트 실행 가능
>> 테스트 커버리지 높일 수 있음
>> 실행 자동화 도구의 경우 리그레션 테스팅의 효과 가능
>> 도구에 내장된 기능을 사용함으로써 객관적이고 효과적인 도구 사용
'ISTQB > ISTQB_SW테스팅' 카테고리의 다른 글
ISTQB/ SW 테스팅 ) 6장. 테스트 지원 도구에 대해 알아보자 (1). (0) | 2024.03.28 |
---|---|
ISTQB/ SW 테스팅 ) 5장. 테스트 경과 모니터링, 결함 관리에 대해 알아보자. (0) | 2024.03.26 |
ISTQB/ SW 테스팅 ) 5장. 테스트 조직과 독립성에 대해 알아보자. (1) | 2024.03.25 |
ISTQB/ SW 테스팅 ) 4장. 소프트웨어 품질 특성에 대해 알아보자. (0) | 2024.03.25 |
ISTQB/ SW 테스팅 ) 4장. 구조 기반 기법과 경험 기반 기법 - 오류 추정, 체크 리스트에 대해 알아보자. (0) | 2024.03.22 |