민첩한 테스트 자동화 프레임워크
⚡ 스마트 요약
애자일 테스트 자동화는 요구사항이 매주 변경되는 짧은 스프린트 내에서 자동화된 검사를 적용하며, 안정적인 워터폴 릴리스를 위해 구축된 테스트 스위트는 안전망이라기보다는 유지 관리 부담으로 빠르게 전락합니다.
민첩한 자동화 테스트
애자일 자동화 테스트 애자일 개발 프로세스 내에서 테스트 자동화를 활용하는 방식을 말합니다. 그 목적은 소프트웨어 개발을 더욱 효과적이고 효율적으로 만들면서 품질을 유지하고 릴리스에 소요되는 시간과 리소스를 관리하는 것입니다. 테스트는 기능 개발과 함께 작성되므로 개발자와 테스터 간의 긴밀한 협업이 매우 중요합니다.
애자일 방법론이 폭포수 모델의 고되고 힘든 현실을 없애기 위해 등장한 이후로, 그 영향력은 여러 분야에 걸쳐 느껴지고 있습니다. 자동화 테스트 또한, 두 분야는 의도적으로 결합되어야 합니다.
워터폴 방식의 자동화 vs. 애자일 방식의 자동화
전통적인 소프트웨어 테스트 수명 주기에서 자동화 테스트는 애플리케이션이 개발된 후에야 가능해집니다. 안정적이며 요구 사항이 충족되었습니다.그것은 다음을 가정합니다. 상당한 시간고도로 숙련된 자동화 전문가와 상당한 초기 투자 비용이 수반됩니다. 기본적인 목적은 장기적으로 비용을 절감하고 기존 테스트 케이스 주변에 새로운 결함이 발생하지 않았는지 확인하는 것입니다.
자동화 테스트는 본질적으로 탐색적 테스트가 아닙니다.자동화 테스트의 주된 역할은 시간과 비용을 절약하는 것이기 때문입니다. 새롭고 혁신적인 결함을 찾아내도록 설계된 것이 아닙니다. 자동화 테스트는 대부분 이미 존재하는 동작을 확인하는 데 사용됩니다.
따라서 이 두 가지 설정은 테스트 스위트에 매우 다른 요구 사항을 제시합니다.
| 요인 | 워터폴 방식의 자동화 | 애자일에서의 자동화 |
|---|---|---|
| 애플리케이션 상태 | 스크립팅 시작 전 안정화 및 승인이 완료된 상태여야 합니다. | 스프린트마다 변경 사항이 발생하며, 스크립팅 중에도 자주 변경됩니다. |
| 이용 가능한 시간 | 전용 자동화 단계 | 1주에서 4주 사이의 단기간에 완료할 수 있는 모든 것 |
| 누가 스크립트를 썼나요? | 자동화 전문가들로 구성된 별도의 팀 | 배송팀, 테스터, 개발자가 함께 |
| 주요 목표 | 대규모 회귀 분석 제품군 전반에 걸친 장기적인 비용 절감 | 방금 생성된 증분에 대한 빠른 피드백 |
| 유지 관리 위험 | 요구사항이 천천히 변하기 때문에 낮습니다. | 요구 사항이 끊임없이 변하기 때문에 높습니다. |
애자일 방법론에서 자동화하는 방법
애자일 방법론은 그 정의에 따라 지루한 문서 작업을 없애고 새로운 아이디어를 신속하게 구현하고 사람들이 자유롭게 소통할 수 있도록 합니다. 애자일은 서류 작업보다는 탐색적인 작업을 선호합니다.
애자일 방법론의 기본 철학과 자동화 테스트 사이에는 실질적인 모순이 존재합니다. 애자일 팀은 자동화 범위를 줄이는 대신 자동화할 대상을 좁힘으로써 이 모순을 해결합니다. 즉, 기능 개발과 동일한 스프린트에서 검사 코드를 작성하고, 유지 관리 비용이 가장 저렴한 단위 및 API 레벨로 푸시하여 모든 빌드에서 실행합니다.
민첩한 테스트 자동화를 위한 기본 사항
자동화에 스프린트 역량을 투입하기 전에 스크립트 완료 가능 여부를 결정하는 요소들을 고려해야 합니다.
- 설계 및 코딩 시간: 모든 스크립트는 실제 운영 환경에서 사용하는 코드처럼 설계, 코딩 및 검토 과정을 거쳐야 합니다.
- 테스트 데이터에 대한 유효성 검증: 완성된 스크립트는 기존 테스트 데이터를 사용하여 검증해야만 비로소 신뢰할 수 있습니다.
- 시험의 목적: 기능 테스트와 회귀 테스트는 유지 관리 비용과 유효 기간이 서로 다릅니다.
- Sprint 길이 : 스프린트는 보통 2주, 최대 1~4주 동안 진행되므로 대규모 스크립팅 작업을 위한 여유가 거의 없습니다.
두 번째 요인은 요구사항 변경입니다. 애자일은 본질적으로 고객 중심의 변화에 대응하는 기법이므로 개발 과정 전반에 걸쳐 빈번한 조정이 가능합니다.
반면 자동화 테스트는 안정적인 요구사항에 대해 가장 유용합니다. 끊임없이 변화하는 애자일 방법론에는 적합하지 않기 때문에 자동화할 대상을 선택하는 것이 자동화할 대상의 양보다 더 중요합니다.
민첩한 자동화 도구
관련성 있는 선택 자동화 도구 애자일 방법론 내에서 자동화 테스트를 도입하는 데 있어 또 다른 중요한 요소는 라이선스입니다. 예를 들어, 라이선스가 있는 자동화 도구는 다양한 유형과 수준의 사용자에게 엄격한 보안 접근 기준을 적용하여 해당 테스트 자동화 프레임워크에 속한 리소스에 접근할 수 있는 사용자를 제한합니다.
반면 애자일 방법론은 팀 구성원 간의 개방적인 협업과 자유로운 상호 작용을 강조합니다. 제한적인 접근 정책은 이러한 응집력을 저해하고 프로젝트 성공에 도움이 되지 않는 결과를 초래할 수 있습니다.
애자일 프로세스에서 허용하는 시간 내에 품질 높은 자동화 스크립트를 제공하는 것이 최우선 과제입니다. 테스트 케이스 후보를 신중하게 선택하여 생성된 스크립트를 나중에 재사용할 수 있도록 하고, 할당된 시간 내에 완료할 수 있도록 해야 합니다.
애자일 환경에서도 일부 테스트, 특히 회귀 테스트는 여전히 필수적입니다. 다음 섹션에서는 자동화 테스트가 적합한 상황과 각 상황이 애자일 테스트에 어떻게 적용되는지 살펴봅니다.
자동화 테스트 Concepts 애자일 방식에 적용했을 때
아래 표는 테스트 자동화를 정당화하는 7가지 고전적인 조건을 제시하고 각 조건에 대한 애자일 방식의 해답을 보여줍니다. 이 중 3가지만 애자일 스프린트에 깔끔하게 적용될 수 있으며, 이 3가지는 모두 회귀 테스트 형태입니다.
| # | 자동화 테스트 개념 | 애자일 방법론에 대한 답변 |
|---|---|---|
| 1 | 검사는 자주 반복해야 합니다. | 바로 여기서 회귀 테스트라는 개념이 등장합니다. |
| 2 | 테스트 워크플로와 검증 방식은 시간이 지남에 따라 서서히 발전하고 변화합니다. | 애자일 테스트에는 적합하지 않습니다. 애자일 테스트는 요구사항이 자주 변경되는 것을 의미하기 때문입니다. |
| 3 | 이 테스트는 외관, 색상 또는 표 레이아웃이 아닌 비즈니스 프로세스 또는 워크플로를 검증합니다. | 이 시나리오는 수동 테스트와 관련된 것으로 볼 수 있습니다. |
| 4 | 해당 시험은 규제 기관에 결과를 제출하며, 규제 기관은 그 결과를 전자적으로 기록하고 보관하여 규정 준수에 대한 공식적인 증거로 활용하도록 요구합니다. | 애자일 방법론에는 적합하지 않습니다. 애자일 방법론은 철저한 수준의 문서화를 요구하지 않기 때문입니다. |
| 5 | 해당 테스트는 매우 반복적이거나 매번 정확히 동일하게 수행해야 하는 단계가 많아 수동 테스트 담당자의 피로를 방지해야 합니다. | 애자일 방법론에 적합하지 않습니다. |
| 6 | 선택한 자동화 도구를 사용하면 테스트의 합격 또는 불합격 결과를 비교적 쉽게 확인하고 기록할 수 있습니다. | 애자일 테스트 과정에서 반복적이고 힘든 작업이 요구되는 회귀 테스트에 적합합니다. |
| 7 | 해당 테스트는 애플리케이션에 상당한 양의 데이터를 입력해야 합니다. | 회귀 테스트로 활용될 수 있습니다. |

.jpg)


