테스트라는 개념에는 항상 애증의 관계가 있었던 것 같습니다. 의심할 바 없이, 구축 중인 모든 것을 테스트하면 고객이 동일한 발견을 보고하는 것을 방지할 수 있습니다. 그것이 관계의 사랑 부분입니다.
싫어하는 부분은 프로젝트 타임라인으로 인해 테스트의 우선순위가 낮아지는 것입니다. 현재 스프린트에서는 거의 나타나지 않는 백로그 위시리스트 항목이 되는 경우가 많습니다. 이는 고객이 예상치 못한 결과로 귀하에게 연락할 것이라는 것을 거의 보장합니다.
소프트웨어 개발 수명주기(SDLC)가 성숙해짐에 따라 테스트가 더 쉬워졌으며 개발자는 검증되는 측면을 완전히 포괄하는 단위 테스트를 만들 수 있습니다. ChatGPT 또는 GitHub Co-Pilot의 사용은 이러한 단위 테스트를 자동 생성할 수 있는 수준까지 발전했습니다. PR(풀 요청)을 병합하기 전에 높은 수준의 코드 적용 범위를 적용하도록 CI(지속적 통합) 도구 솔루션이 개선되었습니다. 이를 통해 팀은 개발을 왼쪽으로 전환하여 개발 단계에서 문제를 해결하고 그 과정에서 기능 비용을 절감할 수 있습니다.
이 접근 방식은 기존 API 및 웹 프레임워크에 효과적이었지만 모바일 애플리케이션을 테스트하려면 팀에서 수동 테스트를 수행해야 하는 경우가 많습니다. 즉, 관리할 수 있는 다양한 장치 유형에 걸쳐 게시된 단계 목록에서 실행해야 합니다.
저는 모바일 개발 및 테스트에서 Shift-Left 개념을 사용할 수 있는 방법을 확인할 수 있는지 확인하고 싶었습니다.
높은 수준에서 모바일 애플리케이션 공간은 오늘날 API 및 웹 프레임워크가 테스트하는 것과 동일한 방식으로 기능을 테스트할 수 있는 능력을 갖추어야 합니다. 이는 물리적 장치나 에뮬레이터의 인벤토리를 사용하여 수동으로 테스트를 수행하는 업무에서 벗어나는 것을 의미합니다.
모바일 테스트의 이상적인 상태는 사용자 활동에 초점을 맞춘 암호화된 테스트 작성을 피하기 위해 UI 기반이 될 것입니다. 이 접근 방식은 비전을 현실로 검증하려는 내부 소비자나 제품 소유자에게 도구를 확장할 수 있습니다.
기존 단위 또는 통합 테스트와 마찬가지로 모듈을 도입하는 기능은 모바일 애플리케이션의 작은 측면을 검증하고 더 큰 흐름의 구성 요소로 사용할 수 있습니다. 이렇게 하면 팀은 "건조한" 상태를 유지하고(반복하지 않음) 중복 작업을 피할 수 있습니다.
마지막으로 이러한 테스트는 그래픽 UI로 구동됨에도 불구하고 CI/CD 파이프라인의 일부가 될 수 있어야 합니다.
이러한 이상적인 상태에서 모바일 소프트웨어 엔지니어는 모바일 개발 및 테스트를 위해 효과적으로 왼쪽으로 이동할 수 있습니다.
모바일 테스트에서 "왼쪽으로 이동"이라는 말이 무슨 뜻인지 명확히 하는 것이 좋습니다.
Wikipedia는 테스트를 위해 왼쪽 시프트를 아래와 같이 정의합니다.
“Shift-left 테스트는 테스트가 라이프사이클 초기에 수행되는(즉, 프로젝트 타임라인에서 왼쪽으로 이동) 소프트웨어 테스트 및 시스템 테스트에 대한 접근 방식입니다. '일찍, 자주 테스트하라'는 격언의 전반부이다. 이는 2001년 래리 스미스(Larry Smith) 가 만든 것입니다.”
단순히 Shift Left를 채택하면 개발 단계에서 결함을 식별할 수 있습니다. 이는 소스에 초점을 맞춘 엔지니어의 마음 속에 해당 기능이 생생하게 남아 있는 동안 문제를 해결할 수 있기 때문에 중요합니다.
왼쪽 시프트를 채택하면 다음과 같은 이점이 있습니다.
궁극적으로 Shift Left 개념은 솔루션이 검증되고 예상대로 작동하는 소비자에게 도달할 때 경쟁 우위로 이어질 것입니다.
작년에 저는 “ Tricentis Testim을 사용하여 고객 대상 앱 품질 개선 ” 기사에서 Tricentis Testim의 사용을 살펴보았습니다. GO 기반 RESTful API와 Vue.js 웹 기반 클라이언트를 사용하여 Magic 8 Ball 솔루션을 검증하는 것이 얼마나 쉬운지에 깊은 인상을 받았습니다. 저는 Tricentis에 팀이 모바일 테스트를 위해 왼쪽으로 이동할 수 있는 솔루션이 있는지 확인하고 싶었습니다.
알고 보니 Tosca 라는 제품이 있었습니다.
Tosca 제품은 코드 없는 테스트 생성 기능을 제공하므로 재사용 및 자동화가 가능한 작은 모듈을 생성할 수 있습니다. 이러한 모듈은 모듈 간의 표준화된 계약을 채택하여 필요한 곳에 연결할 수 있는 레고 블록으로 생각할 수 있습니다. Tosca는 AI를 활용하여 기능에 대한 모바일 테스트를 생성하는 기능을 제공함으로써 보다 전통적인 개발 수명주기에 한 단계 더 가까워졌습니다.
Tosca는 또한 Tricentis Mobile Agent를 통해 많은 학습 곡선 없이 오픈 소스 Appium 프로젝트의 강력한 기능을 활용합니다. 이를 통해 이전 기사에서 제공한 모든 기능을 모바일 개발의 Shift Left 여정에 포함할 수 있습니다.
결과적으로 Tosca를 사용하면 이러한 장치를 유지 관리하거나 소유하지 않고도 실제 iPhone, Android, 휴대폰 및 태블릿 장치에서 네이티브, 하이브리드 및 웹 모바일 앱을 테스트할 수 있습니다.
Testim 제품과 마찬가지로 Tosca 솔루션은 CI/CD 파이프라인의 일부로 테스트를 실행할 수 있는 기능을 제공하여 Shift Left 채택을 시행할 수 있습니다.
Tosca를 사용하면 iOS 또는 Android 휴대폰에서 직접 테스트할 수 있을 뿐만 아니라 Android Studio와 같은 IDE를 통해 사용 가능한 에뮬레이터나 시뮬레이터를 통해 테스트할 수도 있습니다. Tosca를 사용하면 애플리케이션을 스캔하고 테스트 사례를 만들 수 있습니다.
Tosca가 테스트 케이스를 생성한 후에는 자신만의 테스트 케이스를 생성할 수도 있습니다.
Tosca의 장점 중 하나는 코드를 작성하지 않고도 테스트를 작성할 수 있다는 것입니다. 이는 브라우저 열기나 양식 작성을 포함하여 대부분의 모든 작업을 시뮬레이션할 수 있는 모듈 라이브러리를 통해 가능합니다.
이 예에서는 Tosca 모바일 테스트 사례에 세 가지 모듈을 사용했습니다. 우리는 다음을 테스트합니다:
우리가 해야 할 일은 샘플 입력을 제공하는 것뿐입니다(스크린샷에서는 위에 강조 표시된 3단계에서 수행하고 있습니다). 테스트가 완료되면 Tosca에 대한 진단 보고서를 받게 됩니다.
모바일 개발에 집중하는 소프트웨어 엔지니어는 Tosca와 같은 제품을 활용하여 모바일 테스트에 남은 것들을 활용함으로써 팀의 경쟁 우위를 확보할 수 있습니다.
독자들은 제가 모든 IT 전문가에게 적용할 수 있다고 생각하는 다음 사명 선언문에 중점을 두었다는 것을 기억하실 것입니다.
“지적 재산의 가치를 확장하는 특징/기능을 제공하는 데 시간을 집중하십시오. 다른 모든 것에 프레임워크, 제품, 서비스를 활용하세요.” - J. 베스터
최고의 생산성에 도달하려면 모바일 개발에 초점을 맞춘 소프트웨어 엔지니어는 모바일 테스트 에 Shift Left를 채택해야 합니다. 그러나 이상적인 선택은 솔루션을 찾을 때 관련된 학습 곡선과 지원 가능성을 고려해야 합니다.
Tosca 제품은 지원 및 유지 관리를 위한 추가 소스 코드 없이 팀이 Shift-Left 상태에 도달할 수 있도록 함으로써 저의 개인적인 사명 선언문을 준수합니다. 또한 이 제품을 사용하면 엔지니어가 아닌 사람도 테스트 개발에 참여할 수 있으므로 팀은 설계가 기대에 부합하는지 확인하는 데 이점을 얻을 수 있습니다.
저는 개인적으로 수년 동안 왼쪽으로 이동하는 접근 방식을 사용해 왔으며 단순히 프로세스를 따르면서 결함을 피할 때마다 경험에 감사드립니다. 이제 모바일 개발에서 Shift Left 개념을 채택해야 할 때입니다.
정말 좋은 하루 보내세요!