게시 : 1 월 19, 2021
2021년 테스트 자동화의 주요 과제
자동화된 테스트는 효율성을 높일 수 있습니다. 이러한 과제를 해결하여 고객에게 더 나은 제품을 더 빠르고 자주 제공하세요.
애자일 조직은 유연성과 빠른 대응을 추구합니다. 따라서 소프트웨어 테스트를 최대한 효율적으로 수행하려고 합니다. 효율적인 테스트는 빠른 배포와 생산성 향상으로 이어집니다. 소프트웨어 테스트에서 효율성은 개발 속도를 높일 뿐만 아니라 긍정적인 결과를 가져옵니다. 예를 들어, 발견 및 수정된 결함의 수는 증가하는 반면, 탐지되지 않고 운영 환경으로 유출되는 결함의 수는 감소합니다.
많은 조직들이 테스트 자동화 테스트 효율성 향상을 위한 성배 중 하나로 여겨집니다. 자동화를 통해 조직은 규모에 맞춰 기반을 다지고 지연 시간을 최소화할 수 있습니다. 이를 통해 인재와 기타 리소스를 혁신, 문제 해결, 사용자 스토리 등에 더욱 집중할 수 있습니다.
테스트 자동화는 구현하기가 결코 간단하지 않습니다. 2020년에 발표된 기사에서 소프트웨어 진화 및 프로세스 저널8개국 72개 조직을 대상으로 한 설문 조사에 따르면 "테스트 관리 및 테스트 자동화는 실무자들이 모든 테스트 활동 중 가장 어려운 것으로 간주합니다."라고 합니다. 최소한의 성장통으로 테스트 자동화를 도입하고 확장하려면 조직에서 자동화 테스트의 기술적 과제는 물론 직면할 수 있는 다른 문제들을 인지해야 합니다.
높은 구현 비용
자동화는 테스트 속도를 높이지만, 프런트엔드 자본에 상당한 투자를 요구합니다. "회수" 기간이 예측 불가능하거나 길어질 수 있기 때문에 경영진에게 설득하기 어렵습니다. 경우에 따라서는 회수조차 불가능할 수도 있습니다. 특히, 내부 팀 생산성 향상과 제품 성능 향상을 통해 창출되는 가치를 측정하는 데이터를 수집하는 등의 모범 사례를 따르지 않을 경우 더욱 그렇습니다.
포괄적인 테스트 자동화 도입 후 긍정적인 ROI를 보장하는 가장 큰 방법은 생태계의 다른 제품과 통합되는 자동화 테스트 솔루션을 구현하는 것입니다. 이를 통해 거의 실시간으로 측정되는 강력한 분석과 같은 엔드 투 엔드 기능을 활용할 수 있습니다. 이러한 지표 중 하나는 속도 지수로, 사용자가 애플리케이션 로드에 걸리는 시간(온페이지 요소가 실시간으로 채워지는 시간 포함)을 알려줍니다. 이러한 요소를 테스트하고 개발의 모든 단계에서 성과를 집계할 수 있다면 더 나은 변경 사항을 더 빠르게 출시할 수 있습니다.
오픈 소스 아키텍처에서 벗어나기
오픈소스 솔루션은 저렴한 가격과 기능보다는 결과물을 중심으로 구축된다는 점 때문에 큰 인기를 누려 왔습니다. 하지만 오픈소스 도구에는 한계가 있습니다. 이러한 핵심 프로젝트에는 개발 예산이 턱없이 부족하여 가장 적극적으로 기여하는 개발자들이 많은 시간을 투자할 수 없습니다. 재정적 인센티브와 전담 개발자가 부족하기 때문에 오픈소스 도구가 인공지능(AI)이나 머신러닝(ML)과 같은 고급 기능을 도입할 유인이 거의 없습니다.
사용 가능한 오픈 소스 솔루션을 발전시키고자 하는 조직은 프로젝트에 시간과 비용을 기꺼이 투자해야 합니다. 이러한 헌신은 독점 아키텍처가 특정 요구에 더 적합한지 여부와 같은 비용/편익 측면의 고려 사항을 야기합니다. 또한, 일부 오픈 소스 프로젝트는 수익 창출을 명시적으로 금지하거나 새로운 버전의 툴이 소스 코드를 공개하도록 장려하기 때문에 라이선스와 관련된 고려 사항도 있습니다.
오픈소스 아키텍처는 소스 코드가 공개되어 악의적인 공격자가 쉽게 악용 사례를 찾아낼 수 있기 때문에 보안 측면에서도 어려움을 겪습니다. 종단간 암호화와 같은 솔루션은 소스 코드가 공개된 경우에도 테스트 도구를 안전하게 보호할 수 있지만, 개발팀은 이러한 측면을 사례별로 고려해야 합니다.
어떤 경우에는 여전히 오픈소스 솔루션이 최선의 선택일 수 있습니다. 하지만 조직은 단기적으로 가장 저렴한 솔루션만 선택하기보다는, 업무에 가장 적합한 도구를 결정하기 위해 테스트 요구 사항을 꼼꼼히 살펴봐야 합니다. 대신, 해당 도구를 사용하는 커뮤니티가 가장 일반적인 사용 사례를 기반으로 특정 기능에 대한 가치와 기대를 공유할 수 있다고 판단될 때만 오픈소스 도구를 도입해야 합니다.
테스트 생태계의 단편화
현재 대부분의 조직은 일관된 기능과 통합 역량을 갖추지 못해 테스트 생태계가 단편화될 수 있습니다. 예를 들어, 일부 테스트 자동화 플랫폼은 개발 툴체인과 매우 잘 호환되지만, 운영 피드백을 테스트 매개변수에 구현하기 위한 통합 기능이 부족합니다. 테스트 환경 자체도 매우 단편화될 수 있으며, 모바일, 데스크톱, 브라우저 또는 기타 환경에만 적용되는 경우도 있습니다.
이러한 이유로 개발팀은 개발 단계 전반에 걸쳐 기능을 제공하고 다른 도구와 통합할 수 있는 기능을 갖춘 테스트 솔루션을 찾아야 합니다. DevOps 환경을 고려해야 합니다. 또한 모든 의도된 장치 환경(레거시 장치 포함)에서 성능을 관찰하는 테스트 도구 세트를 선택해야 합니다.
해석하기 어려운 보도
이해하기 쉬운 보고서는 테스트 자체만큼이나 중요합니다. 테스트 모델은 매우 구체적인 시나리오를 기반으로 구축될 수 있으며, 이러한 자동화 아키텍처로 인해 개별 결과는 대부분의 당사자에게 친숙한 관점을 제시하지 못할 수 있습니다. 보고서가 읽는 당사자에게 유용하려면 추가적인 해석 및 상황적 데이터가 제공되어야 할 수 있습니다.
자동화 테스트 솔루션을 평가할 때는 대시보드에서 도출된 실행 가능한 인사이트를 제시할 수 있는지 여부를 고려하세요. 최소한, 원하는 실행 가능한 인사이트를 제공할 수 있는 강력한 분석 플랫폼과 통합할 수 있는지도 살펴보세요.
팀 간 협업 및 작업 연속성
테스터와 개발자는 테스트 프로세스가 원활하게 진행되도록 협력해야 합니다. 테스트, 특히 자동화된 테스트는 "핸드오프" 단계에서 중단을 초래할 수 있습니다.
에 따르면 ACCELQ 솔루션 엔지니어링 디렉터 Stephen Rosing"개발에 있어 가장 중요한 소통 경로는 테스터와 개발자 사이입니다. 애플리케이션이 자동화에 적합하도록 하려면 개발팀이 자동화 도구의 기본 작동 방식을 이해하는 것이 매우 중요합니다."
의사소통이 원활하지 않아 문제가 발생할 수 있는 부분이 여러 군데 있습니다. 테스터는 목표를 오해할 수 있고, 개발자는 테스터의 피드백을 코드 품질 개선에 반영하지 못할 수도 있습니다.
로싱은 "개발자들은 최신의 뛰어난 코드 라이브러리를 사용하는 것을 좋아하지만, 자동화 도구가 이를 지원하기까지는 종종 지연이 발생합니다."라고 말합니다. "개발팀과 소통하면 개발 과정에서 지원되지 않는 기술이 도입되어 수동 테스트로 돌아가는 상황을 방지할 수 있습니다."
완전한 테스트 범위 도달
어떤 테스트든 무언가를 놓칠 가능성은 항상 존재합니다. 특히 자동화된 테스트에서는 더욱 그렇습니다. 모델 내에서 고려되지 않아 간과될 수 있는 요소들이 있을 수 있습니다.
이러한 사각지대를 피하는 핵심은 낮은 테스트 커버리지와 관련된 문제(예: 높은 결함 이탈률)의 추세를 파악할 수 있는 지표를 추적하는 것입니다. 이러한 지표를 세부적으로 분석하면 특정 유형의 코드 또는 코드 영역이 누락되는 원인을 파악할 수 있습니다. 또한, 이러한 분석을 통해 우선순위를 정하고 시간 경과에 따라 더 나은 성능을 추구할 수 있습니다.
통합된 엔드투엔드 분석 솔루션은 테스트 내부 및 외부의 성능을 자동으로 모니터링하고 관련 요소를 최우선으로 파악할 수 있습니다. 예를 들어, 지난 몇 주 동안 보안 취약점이 발견된 앱 기능을 테스트할 때 알림이 표시될 수 있습니다. 이 알림은 내부 테스트 로직이나 고려 중인 사용자 스토리를 기반으로 하는 것이 아니라, 운영 환경에서 앱의 실제 성능을 기반으로 합니다. 이러한 기능은 테스트의 공백을 메우는 동시에 팀이 단순한 가정이 아닌 실제 상황에 집중할 수 있도록 지원합니다.
결과보다 자동화에 집중
애자일 프로세스의 이점과 지속적 통합 및 지속적 배포(CI/CD)의 빠른 속도를 활용하는 많은 조직은 가능한 경우 테스트 자동화를 구현하고자 합니다. 이는 자동화 자체를 위한 자동화 구현으로 이어질 수 있습니다.
As 아미르 가라이 "특히 애자일 개발에서 문제는 QA가 사용자 스토리를 받아 승인 기준을 자동화한다는 것입니다. 이 과정에서 QA의 주된 관심사는 제한된 코딩 실력으로 테스트를 통과시키는 것입니다."
결국 자동화는 테스트 프로세스를 개선하는 데 사용됩니다. 자동화된다는 것은 자동으로 이루어진다는 것을 의미하지 않습니다. 영상을무엇을 자동화할지 신중하게 선택하고, 사용자 또는 조직에 미치는 위험과 잠재적 영향을 고려하여 선택하는 것이 좋습니다. 시스템이 제대로 작동하는지 확인하기 위해 회귀 테스트와 같이 정기적으로 수행하는 테스트를 자동화하세요.
자동화된 테스트를 구현할 때는 "자동화되었습니까? 예/아니요" 외에도 다른 측정 항목이 필요합니다. 더 빠른 사이클 시간, 더 높은 자동화와 같은 자동화의 가치와 이점에 초점을 맞추십시오. 배포 빈도결함 이탈률 감소, 계획되지 않은 작업 감소 등의 이점을 누릴 수 있습니다. 개발자들은 스프린트 및 CI/CD 목표를 달성하기 위해 빠른 테스트 속도를 달성해야 한다는 압박에 직면합니다. 조직은 자동화된 테스트 파이프라인을 미세 조정하기 위해 테스트 자동화 목표를 낮춰야 할 수도 있습니다.
테스트 자동화의 목표는 빠른 테스트가 아니라 빠른 가치입니다.
조직이 자동화 테스트를 통해 무엇을 달성하고자 하든, 가장 중요한 목표는 다음을 만드는 것입니다. 가치 효율적으로 테스트를 완료하는 것만이 아닙니다. 테스트는 빠르게 실행되지만 나중에 문제를 일으킬 결함을 놓치는 것은 제 역할을 하지 못하며 조직에 가치를 더하지도 못합니다.
가치 흐름 관리 접근 방식을 통해 조직은 모든 상태에서 창출된 가치를 정량화할 수 있습니다. DevOps테스트를 포함합니다. 테스트 자동화는 모든 최적화를 추진하기 위한 빠른 피드백 루프를 촉진할 수도 있습니다. DevOps 프로세스.
테스트 자동화는 까다롭고 비용도 많이 들 수 있습니다. 하지만 그 결과, 더 나은 제품이 고객에게 더 빨리 전달되고 개선 사항도 더 자주 제공될 수 있습니다. 자동화뿐 아니라 가치 흐름 매핑과 분석을 활용하면, 단순히 빠르게 움직이는 것이 아니라 지속적으로 개선되는 조직 문화를 구축할 수 있습니다.
테스트 자동화의 이점이 어떻게 커졌는지, 그리고 앞으로 자동화 테스트에서 무엇을 기대할 수 있는지에 대한 자세한 내용은 웨비나에서 확인하세요.테스트 자동화의 이점 – 과거, 현재, 미래".