ITQB CTAL Test Automation Engineer - 8. Continuous Improvement

Dahun Yoo·2024년 7월 6일
0

ISTQB CTAL TAE

목록 보기
8/9
post-thumbnail

Keyword
maintenance

8.1 Options for Improving Test Automation

테스트 자동화 개선 방안

TAS를 SUT와 동기화하기 위한 지속적인 유지 보수 작업 외에도 TAS를 개선할 수 있는 다양한 기회가 있다. TAS 개선은 효율성 향상(수동 개입 감소), 사용 편의성 향상, 추가 기능 제공 및 테스트 활동 지원 강화와 같은 여러 가지 이점을 달성하기 위해 이루어질 수 있다. TAS 개선 방향은 프로젝트에 가장 큰 가치를 추가할 수 있는 이점에 따라 결정된다.

TAS의 개선 가능 영역은 스크립팅, 검증, 아키텍처, 전처리 및 후처리, 문서화, 도구 지원 등이다.

Scripting

스크립팅 접근 방식은 단순한 구조화된 접근 방식에서 데이터 기반 접근 방식, 더 정교한 키워드 기반 접근 방식까지 다양하다. 현재 TAS 스크립팅 접근 방식을 모든 새로운 자동화 테스트에 맞게 업그레이드할 수 있다. 이 접근 방식은 기존 자동화 테스트에도 적용하거나 유지 보수 노력이 가장 많이 드는 테스트에 적용할 수 있다. 스크립팅 접근 방식을 완전히 변경하기보다는 스크립트 구현에 중점을 두고 개선할 수 있다.

  • 중복된 테스트 케이스/단계/절차를 평가하여 자동화 테스트를 통합한다. 비슷한 순서의 동작을 포함하는 테스트 케이스는 여러번 구현하지 말고 함수를 만들어 라이브러리에 추가한 후, 이를 다양한 테스트 케이스에서 재사용할 수 있다. 이렇게 하면 유지 보수성이 향상된다. 테스트 단계가 동일하지 않지만 유사한 경우 매개변수를 사용해야할 수도 있다.
  • TAS와 SUT의 오류 복구 프로세스를 설정한다. 테스트케이스 실행 중 오류가 발생하면 TAS가 이 오류 조건에서 복구하여 다음 테스트 케이스를 계속 실행할 수 있어야 한다. SUT에서 오류가 발생하면 TAS가 필요한 복구 작업(전체 재부팅) 등을 수행할 수 있어야 한다.
  • 최적의 대기 메커니즘을 평가해야한다. 일반적으로는 3가지가 있다.
    1. 하드코딩된 대기는 많은 테스트 자동화의 문제의 원인이 될 수 있다.
    2. 폴링을 통한 동적 대기 (특정 상태 변화나 동작이 발생했는지 확인)은 더 유연하고 효율적이다. 필요한 시간만큼만 대기하고 시간이 더 오래 걸릴 경우 폴링은 조건이 충족될 때까지 기다린다. 타임아웃 메커니즘을 포함해야 문제가 발생할 경우 테스트가 무한정 대기하지 않는다.
    3. SUT의 이벤트 메커니즘을 구독하는 방법이 더 좋다. 이는 다른 두 옵션보다 훨씬 신뢰할 수 있지만, 테스트 스크립팅 언어가 이벤트 구독을 지원해야하고, SUT가 테스트 애플리케이션에 이러한 이벤트를 제공해야한다. 타임아웃 메커니즘을 포함해야 문제가 발생할 경우 테스트가 무한정 대기하지 않는다.
  • 테스트웨어를 소프트웨어로 취급한다. 테스트웨어의 개발 및 유지 관리는 소프트웨어 개발의 한 형태일 뿐이다. 따라서 좋은 코딩 관행을 적용해야한다. 특정 테스트웨어 부분을 개발하기 위해 소프트웨어 개발자를 사용하는 것도 좋은 생각일 수 있다.
  • 기존 스크립트를 평가하여 수정/제거한다. 여러 스크립트가 문제를 일으킬 수 있으며 이러한 스크립트를 재설계하는 것이 현명할 수 있다. 다른 테스트 스크립트는 더 이상 가치가 없기 때문에 스위트에서 제거할 수 있다.

Test Execution

회귀 테스트 자동화가 하룻밤 사이에 완료되지 않는 것은 놀라운 일은 아니다. 테스트에 너무 오래 걸릴 경우, 여러 시스템에서 동시에 테스트해야할 수도 있지만 항상 가능한 것은 아니다. 비싼 시스템을 테스트에 사용하는 경우, 모든 테스트가 단일 대상에서 이루어져야하는 제약이 있을 수 있다. 회귀 테스트 스위트를 여러 부분으로 나누어 각각 일정 시간에 실행할 수 있다. 자동화 테스트 커버리지를 추가로 분석하면서 중복을 발견할 수 있다. 중복 제거는 실행 시간을 단축하고 추가 효율성을 가져올 수 있다.

Verification

새로운 검증 기능을 만들기 전에, 모든 자동화 테스트에서 사용할 표준 검증 방법을 채택한다. 이는 여러 테스트에서 검증 동작을 다시 구현하는 것을 방지한다. 검증 방법이 동일하지 않지만 유사한 경우 매개변수를 사용하여 여러 유형의 객체에서 기능을 사용할 수 있도록 한다.

Architecture

SUT의 테스트 가능성을 향상시키기위해 아키텍처를 변경해야할 수도 있다. 이러한 변경은 SUT의 아키텍처와 자동화의 아키텍처에서 이루어질 수 있다. 이는 테스트 자동화에서 주요 개선을 제공할 수 있지만, SUT/TAS에 상당한 변경 및 투자가 필요할 수 있다. 예를 들어 SUT가 테스트를 위해 API를 제공하도록 변경된다면 TAS도 이에 맞게 리팩토링해야한다. 이러한 기능을 나중에 추가하면 비용이 많이 들 수 있으므로 자동화 시작시 (그리고 SUT 개발 초기 단계에서) 이를 고려하는 것이 훨씬 좋다. (섹션 2.3를 참고해라)

Pre- and Post-processing

표준 설정 및 종료 작업을 제공한다. 이는 전처리 setup 및 후처리 teardown 라고도 한다. 이는 각 자동화 테스트에 대해 반복적으로 작업을 구현하는 것을 줄여 유지보수 비용을 절감하고 새로운 자동화 테스트 구현에 필요한 노력을 줄입니다.

Documentation

스크립트 문서화 (스크립트의 기능, 사용 방법 등), TAS 사용자 문서화, TAS가 생성한 보고서 및 로그 등 모든 형태의 문서화를 포함한다.

TAS features

상세 보고, 로그, 다른 시스템과의 통합 등 추가 TAS 기능 및 기능을 추가한다. 중요한 것은, 이러한 기능이 실제로 사용될 때만 추가해야한다. 사용되지 않는 기능을 추가하면 복잡성이 증가하고 신뢰성과 유지 보수성이 감소한다.

TAS updates and upgrades

TAS를 새 버전으로 업데이트하거나 업그레이드함으로써 테스트케이스에서 사용할 수 있는 새로운 기능이 제공될 수 있다. (또는 오류가 수정될 수 있다.) 프레임워크를 업데이트하면 (기존 테스트 도구를 업그레이드하거나 새로운 도구를 도입함으로써) 기존 테스트케이스에 부정적인 영향을 미칠 수 있다. 새 버전의 테스트 도구를 도입하기 전에 샘플 테스트를 실행하여 확인해야한다. 샘플 테스트는 다양한 애플리케이션, 테스트 유형 및 적절한 경우 다양한 환경의 자동화 테스트를 대표해야한다.

8.2 Planning the implementation of Test Automation Improvement

테스트 자동화 개선 구현 계획

기존의 테스트 자동화 시스템에 변화를 주는 것은 신중한 계획과 조사가 필요하다. TAF와 구성 요소 라이브러리로 구성된 견고한 TAS를 구축하는 데 많은 노력이 들어갔다. 사소한 변화라도 TAS의 신뢰성과 성능에 광범위한 영향을 미칠 수 있다.

Identify changes in the test environment components

변경 및 개선이 필요한 부분을 평가한다. 이러한 변경이 테스트 소프트웨어, 사용자 지정 함수 라이브러리, 운영 체제에 필요한지확인해야한다. 각각은 TAS의 성능에 영향을 미친다. 자동화된 테스트가 효율적으로 계속 실행되도록 하는 것이 전체 목표이다. 변경 사항은 점진적으로 이루어져야 하며, TAS에 대한 영향을 제한된 테스트 스크립트 실행을 통해 측정해야한다. 부정적인 영향이 없다고 판단되면 변경 사항을 완전히 구현할 수 있다. 마지막 단계로 전체 회귀 테스트를 실행하여 변경 사항이 자동화된 스크립트에 부정적인 영향을 미치지 않았는지 확인한다. 이러한 회귀 스크립트를 실행하는 동안 오류가 발견될 수 있다. 보고서, 로그, 데이터 분석 등을 통해 이러한 오류의 근본 원인을 식별하면 자동화 개선 활동으로 인한 것이 아님을 보장할 수 있다.

Increase efficiency and effectiveness of core TAS function libraries

TAS가 성숙해짐에 따라 작업을 더 효율적으로 수행하는 새로운 방법이 발견된다. 이러한 새로운 기술 (함수 코드 최적화, 최신 운영 체제 라이브러리 사용 등)을 현재 프로젝트와 모든 프로젝트에서 사용하는 핵심 기능 라이브러리에 통합해야한다.

Target multiple functions that act on the same control type for consolidation

동일한 컨트롤 유형에서 동작하는 여러 기능 통합대상

자동화된 테스트 실행 중 발생하는 많은 부분은 GUI에서 컨트롤을 조사하는 것이다. 이 조사는 해당 컨트롤에 대한 정보를 제공한다. (표시/비표시, 활성화/비활성화, 크기 및 치수 등) 이러한 정보를 통해 자동화된 테스트는 드랍다운 목록에서 항목을 선택하거나, 필드에 데이터를 입력하거나, 필드에서 값을 읽을 수 있다. 이러한 정보를 얻기 위해 여러 함수가 컨트롤에서 동작할 수 있다. 일부 함수는 매우 전문화되어 있고, 다른 함수는 더 일반적이기도 하다. 예를 들어 드롭다운 목록에서만 동작하는 특정 함수가 있을 수 있다. 대안으로 TAS 내에서 여러 함수와 함께 동작하는 함수가 있을 수 있다. 따라서 TAE는 여러 함수를 통합하여 더 적은 수의 함수로 동일한 결과를 얻고 유지 관리 요구 사항을 최소화할 수 있다.

Refactor the TAA to accommodate changes in the SUT

SUT 변경 사항에 맞추기 위한 TAA 리팩토링

TAS의 수명 동안 SUT의 변경 사항을 수용하기 위해 변경이 필요하다. SUT가 발전하고 성숙해짐에 따라 기본 TAA도 발전해야 하며, 이를 통해 SUT를 지원할 수 있는 기능이 보장된다. 기능을 확장할 때는 단순히 덧붙이는 방식으로 구현하지 않고, 자동화 솔루션의 아키텍처 수준에서 분석 및 변경해야 한다. 이를 통해 새로운 SUT기능이 추가 스크립트를 필요로 할 때 호환 가능한 구성 요소가 새로운 자동화된 테스트를 수용할 수 있다.

Naming conventions and standardization

변경 사항이 도입됨에 따라 새로운 자동화 코드 및 함수 라이브러리의 명명 규칙이 이전에 정의된 표준과 일치해야한다. (섹션 4.3.2 참조)

Evaluation of existing scripts for SUT revision/elimination

변화 및 개선 과정에 기존 스크립트, 사용 및 지속적인 가치 평가도 포함된다. 예를 들어 특정 테스트가 복잡하고 실행 시간이 오래 걸린다면, 여러 작은 테스트로 분해하는 것이 더 실행 가능하고 효율적일 수도 있다. 드물게 실행되거나 전혀 실행되지 않는 테스트를 대상으로 제거하면, TAS의 복잡성을 줄이고 유지 관리해야할 항목을 더 명확하게 할 수 있다.


ref

  • ISTQB CTAL TAE Syllabus
profile
QA Engineer

0개의 댓글