PreventativeTestPro는 AI 기반 테스트 프레임워크로, 관측 가능성 데이터와 대규모 언어 모델을 활용해 근본 원인 분석, 테스트 생성, 지속적 검증을 자동화하며, 소프트웨어 신뢰성을 향상시키고 프론트엔드 및 백엔드 시스템 모두에서 품질 보증을 최적화하여 보다 효율적인 지원 티켓 관리를 가능하게 하는 것을 목표로 합니다.
Research Article
PreventativeTestPro는 AI 기반 테스트 프레임워크로, 관측 가능성 데이터와 대규모 언어 모델을 활용해 근본 원인 분석, 테스트 생성, 지속적 검증을 자동화하며, 소프트웨어 신뢰성을 향상시키고 프론트엔드 및 백엔드 시스템 모두에서 품질 보증을 최적화하여 보다 효율적인 지원 티켓 관리를 가능하게 하는 것을 목표로 합니다.
본 논문은 현대의 소프트웨어 전달 문제를 해결하기 위해 관측성 기반 자동화와 AI 보조 선제적 품질 엔지니어링을 통합한 정교하고 확장 가능한 테스트 시스템을 소개합니다. 제안된 시스템은 혁신적인 관측성 기반 테스트 오케스트레이션 계층을 통합하여 블랙박스와 화이트박스 방법론을 결합한 오픈 소스 하이브리드 테스트 플랫폼인 PreventativeTestPro를 강화합니다. 이 플랫폼은 로그, 지표, 이벤트, 추적 데이터를 브라우저 및 서버 측 모니터링과 함께 활용하여 이상 현상을 신속히 식별하고, 테스트 케이스 선택을 강화하며, 기능, 성능, 보안 테스트 스위트를 자동화합니다. 특징적인 점은 대규모 언어 모델(LLM)을 도입하여 근본 원인 인사이트를 제공하고 생산 동작과 식별된 이상 현상을 바탕으로 자율적으로 새로운 테스트 케이스를 구성함으로써 적응형 회귀 커버리지와 지능적 복원을 가능하게 한다는 점입니다.
이 시스템은 AI 기반 로그 분석을 통한 실시간 테스트 실행을 촉진하여 운영과 테스트 간의 지속적인 피드백 루프를 촉진합니다. 마이크로서비스 기반 SaaS 플랫폼과 SAP BTP 생태계 등 여러 기업 시나리오에서 검증되었습니다. 4회의 생산 배포와 49명의 엔지니어로 구성된 베타 그룹의 실증적 결과에 따르면, 해결까지 최대 30% 감소, SLA 준수율은 95% 이상, 테스트 커버리지와 결함 추적성에서 상당한 개선이 이루어졌습니다. 업계 표준 도구와의 손쉬운 연계는 플러그 앤 플레이 기능을 잘 보여줍니다.
이 연구는 애자일 및 DevOps 원칙에 부합하는 포괄적이고 도구 독립적이며 미래지향적인 품질 엔지니어링 방법론을 제시합니다. 향후 사업으로는 머신러닝을 통한 동적 이상 분류, 모바일 및 사용자 경험 지향 시스템으로의 확장, 도메인별 테스트 개발 및 실패 예측을 위한 대규모 언어 모델 기능 강화가 포함됩니다.
소프트웨어 비즈니스에서 애자일 패러다임의 인기가 높아지면서 지속적 통합 환경에 대한 관심이 커지고 있습니다. 이러한 시스템의 장점은 정기적인 프로그램 수정을 원활하게 통합하여 소프트웨어 진화가 가속화되고 비용 효율적인 데 있다는 점입니다. 따라서 구축 절차, 테스트 실행, 테스트 결과 보고와 같은 업무를 효율적으로 관리할 수 있습니다. 소프트웨어 테스트는 소프트웨어 공학이 시작된 이래로 도입되어 왔습니다. 소프트웨어 테스트 실천은 소프트웨어 품질을 평가하기 위해 도입되었습니다. 테스트는 소프트웨어 내 잠재적 오류를 최종 사용자에게 배포하기 전에 감지하고 해결하는 다양한 작업을 포함합니다. 소프트웨어 테스트는 개발 과정에서 비용이 많이 드는 단계입니다. 소프트웨어 테스트 및 디버깅 비용이 전체 개발 비용의 50% 이상을 차지합니다 3,4. 회귀 테스트의 비용은 애플리케이션의 복잡성과 테스트 스위트5의 규모에 따라 달라집니다.
애자일 방법론은 생산 환경에서 빠른 변화를 도입하게 만들고, 이는 피드백으로 인한 많은 지원 문제를 초래합니다. 지원 문제를 관리하는 것은 매우 중요하고 중요한 책임이며, 우수한고객 서비스를 제공하는 것으로 유명한 기업의 제품과 서비스에 대해 68%의 소비자가 프리미엄을 지불할 의향이 있다고 표현한 사실에서 알 수 있습니다. 한 연구에 따르면, 뛰어난 고객 서비스를 받은 고객의 86%가 장기적으로 비즈니스의 충성도 높은 옹호자가 될 가능성이 더높습니다. 한 연구에 따르면, 89%의 구매자가 긍정적인 고객서비스 경험을 했을 때 재구매 경향이 더 높다고 합니다. 연구에 따르면, 고객의 93%가 뛰어난고객 서비스를 제공하는 업체에서 재구매를 할 경향이 있습니다. 우수한 고객 서비스를 제공하기 위해서는 신속하고 효과적으로 높은 품질의 지원 요청을 해결하는 것이 필수적입니다. 품질 요소는 더 빠른 배송을 목표로 할 때 매우 중요합니다. 지원 문제 해결 비용이 시간이 지날수록 증가하고10단계까지 에스컬레이션이 올라갑니다.
높은 품질을 얻으려면, 티켓에 대한 회귀 테스트를 위한 포괄적인 테스트 커버리지를 확보하면서 지원 문제를 찾아내고 해결하는 것이 필요합니다. 이 임무는 복잡하며, 지원 문제를 신속히 발견하고 해결하는 데 있어 운영 어려움이 증가했습니다. 지원 문제는 시스템 성능 저하나 예기하지 못한 오작동과 같은 다양한 문제를 포함하며, 소프트웨어 시스템의 운영 단계에서 자주 발생합니다. 이러한 문제들이 신속히 발견되고 해결되지 않으면, 상당한 기간 동안 비활동, 소비자 불만, 재정적 어려움으로 이어질 수 있습니다. 현재 테스트 요구에 관측 가능성 정보를 활용하는 방법은 수작업 절차, 적극적이기보다는 반응적인 전술, 그리고 이상 감지와 테스트 실행의 통합에 대한 부족에 자주 제약을 받고 있습니다. 실시간 관측성 데이터를 활용한 지원 문제를 선제적으로 감지하거나 적절한 테스트 케이스를 자동으로 실행하여 발생할 수 있는 실패를 방지하는 데 명백한 부재가 있습니다.
포괄적이고 통합된 솔루션의 부재는 소프트웨어 유지보수와 신뢰성에 많은 부정적인 결과를 초래합니다. 이러한 요인에는 문제 식별 지연으로 인한 장기간 시스템 비활동, 관련 테스트 케이스 찾기 위한 수작업 증가, 시스템 신뢰성에 대한 신뢰 감소 등이 포함됩니다. 더불어, 확인된 이상 현상을 테스트 케이스와 정확히 연관 짓지 못하면 테스트 커버리지의 부족함이 발생해 중요한 문제가 해결되지 않을 수 있습니다.
이러한 격차의 근본적인 이유는 기존 모니터링 및 테스트 시스템의 단편화된 구조에 기인할 수 있습니다. 많은 현재 시스템은 관측성 데이터 분석을 관련 테스트 케이스 실행과 원활하게 통합할 능력이 부족합니다. 더불어, 불규칙성과 테스트 케이스를 연관짓기 위해 고정된 규정과 인간의 절차에 의존하는 것은 새로운 문제를 신속하고 정확하게 해결하는 능력을 저해합니다.
업계가 지원 문제를 어떻게 처리하고 예방 테스트를 수행하는지 이해하기 위해,우리는 해당 분야의 전문가들을 인터뷰하는 기술적 연구를 실시했습니다. 인터뷰 데이터를 바탕으로, 어떤 솔루션이든 구현할 때 가장 큰 장애물은 품질을 보장할 충분한 시간이 없다는 점이 강조되었습니다. 면접 중에는 개인의 역량 강화, 유지보수 비용, 낮은 투자 수익률, 도구 선택 및 통합 등 여러 가지 우려 사항이 언급되었습니다. 이 정보는 Katalon의 "2024년 품질 현황 보고서"에서도 확인되었습니다. 인터뷰에서 언급된 문제에 대한 해결책을 제공하기 전에, 우리는 언급된 우려 사항을 해결할 수 있는 기존 도구나 알고리즘이 있는지 비교 평가를 실시했습니다13,14. 우리는 이제 인터뷰에서 논의된 어려움을 해결하기 위해 특별히 설계된 도구나 알고리즘이 부족합니다.
이 연구는 관찰 가능성을 활용해 지원 문제를 조기 단계(보고되기 전)에 감지하고 적절한 테스트 케이스를 수행하는 혁신적인 방법을 도입하여 소프트웨어 시스템의 신뢰성과 견고성을 향상시킵니다. 이 전략은 관측 데이터를 활용해 이상 현상을 식별하고, 잠재적 문제와의 연관성을 확인하며, 문제의 근본 원인을 밝힐 가능성이 높은 타겟 테스트 케이스를 실행하는 데 기반합니다. 제안된 해결책은 소프트웨어 운영과 테스트 간의 간극을 해소하여 지원 문제에 대해 선제적이고 신속한 대응을 가능하게 하는 것을 목표로 합니다. 제안된 솔루션은 테스트 케이스가 스위트에 없을 경우 새로운 테스트 케이스를 생성할 수 있게 하여 테스트 커버리지를 향상시킵니다. 제안된 전략은 인터뷰와 Katalon11, 12, 13, 14 보고서에서 제기된 우려를 해결하는 것도 목표로 한다.
제어 이론의 맥락에서 관측 가능성은 시스템의 외부 출력으로부터 내부 상태를 어느 정도까지 도출할 수 있는지를 의미합니다. 소프트웨어 공학 분야에서 관측 가능성(observability)은 로그, 메트릭, 트레이스, 이벤트15, 16, 17과 같은 출력을 활용하여 소프트웨어 시스템의 상태를 모니터링하고 이해하는 능력을 의미합니다. 문헌 분석에는 관측 가능성과 소프트웨어 테스트에서의 활용 검토가 포함됩니다. 하지만 이 주제에 관한 문헌은 제한적이었습니다. 따라서 혁신적인 예방 검사와 관련 연구에 대한 논의도 포함시켰습니다. 저희 문헌 검토는 3개의 다른 그룹으로 다시 분류됩니다.
Bogatinovski 등은 CLog라는 맥락 인식 신경망 및 클러스터링 기법을 제시하 는데, 이는 불안정한 로그 데이터와 불충분한 장애 커버리지를 해결하기 위해 중요한 하위 프로세스를 식별하고 갑작스러운 컨텍스트 전환 중 고장을 감지하는 방식으로 설계되었습니다. Busby 등은 개인 데이터 없이 복제를 위한 사용자 시퀀스를 예측하는 익명화 테스트 케이스를 생성하는 로그 기반 방법론을 제안 합니다; 하지만 동시성과 로거 수준의 변동은 여전히 중요한 제약으로 남아 있습니다. Lee와 Kang(20 )은 변동성 메커니즘이 존재하는 상황에서 소프트웨어 제품군 테스트를 위한 테스트 아키텍처를 구현하여 관측 가능성과 제어성을 향상시키는 것을 제안합니다. QEX 모델21 은 다양한 테스트 출처의 데이터를 결합하여 테스트 수행 시 명확하고 유용한 정보를 제공합니다. 랄과 쿠마르22 는 지능형 테스트를 보고 통제할 수 있는 능력의 중요성을 강조합니다. 그들은 AI 기반 자동화를 활용해 테스트를 더 빠르고 효율적이며 철저하게 만들 것을 제안합니다. Briand 등(23 )은 자바에서 계약과 불변량의 효과적인 계측화를 위한 측면 지향 프로그래밍 적용을 설명하는 반면, Baral과 Offutt24 는 잘못된 테스트 주장이 잘못된 행동을 식별하지 못하는 '블라인드 테스트' 문제를 강조합니다.
Rott25 는 Teamscale 내의 현대적 분석 및 시각화가 소프트웨어 테스트 과정을 강조하며, 테스터가 필요한 문제와 상황에 특화된 처리된 산출물에 접근할 수 있도록 한다고 설명합니다. Collins와 Lucena26 은 운영 환경에 배포하기 전에 CI 파이프라인에서 많은 테스트를 실행하는 것이 중요하다고 강조합니다. 그들은 레이어드 테스트가 제품의 품질을 확인하고 지원 문제를 줄이는 좋은 방법이라고 말합니다.
BugSwarm27 은 근본 원인과 해당 해법을 연관시켜 CI 테스트 실패를 분석하는 방법을 제공합니다. Dudila와 Letia28 은 화이트박스와 블랙박스 테스트 방법론을 검토하며, 개발 과정 중 디버깅 노력을 완화하기 위한 일관된 전략을 제안합니다. Fushihara 등은 Python 애플리케이션에서 "테스트 냄새"를 조사하며 , 테스트 코드 관리를 강화하기 위한 코드 수정을 통해 그 진행 과정을 분석했습니다. SUPERNOVA30 은 데이터, 자동화, 머신러닝을 활용해 품질 보증을 향상시키는 테스트 선정 및 결함 방지 시스템입니다. Araujo31 은 소프트웨어 노화 유지보수 전략을 제안합니다. 이 전략은 코드 변경이 가능할 때 시정 유지보수를, 시스템 다운타임을 초래할 수 있는 변경 시 예방 전략을 사용하여 서비스 실패 건수를 줄입니다. Andrew 등은 병렬 돌연변이 검사를 조사하 는데, 이는 모든 변이가 평가될 때까지 클래스를 반복적으로 돌연변이, 검사, 재적재하는 과정입니다. Dunn 등은 철저한 테스트의 중요성을 강조하기 위해 컴포넌트에 가중치를 할당하는 보안 취약점 지표를 제안 합니다. 마지막으로, Huo 등은 결함 위치를 찾고 문제를 확인하기 위해 순차 집합 인덱스를 사용합니다. 이는 소프트웨어 애플리케이션에서 대부분의 실패한 테스트 케이스와 근본 원인이 종종 연결되어 있음을 보여줍니다.
Access restricted. Please log in or start a trial to view this content.
시스템 아키텍처 및 프로토타입 요약:
본 연구는 관찰 데이터와 대형 언어 모델(LLM)을 활용하여 지원 문제 해결을 더욱 향상시키기 위해 능동적이고 유연한 프로토타입 시스템인 PreventativeTestPro를 제시합니다. 이 시스템은 통합 모니터링, 관측 가능성 데이터, 생성형 AI 통합을 활용한 미해결 보장에 대한 테스트 케이스의 지능형 실행 및 개발을 자동화하여 현대 소프트웨어 제공 문제를 해결하고자 합니다. 이 아키텍처는 모듈식이며, 세 가지 핵심 구성 요소로 구성되어 있습니다: 관측성 데이터 수집기 및 분석기, 생성 AI 기반 인텔리전스 계층, 그리고 테스트 오케스트레이션 및 실행 엔진으로, 이는 그림 1에 자세히 명시되어 있습니다.

그림 1: 제안된 시스템의 투입-출력. 관측 가능성 데이터와 관찰자 출력, 테스트 저장소, 매핑 규칙이 입력으로 제공되며, BHRAMARI 테스트 베드는 AI 기반 테스트 베드를 구축하여 테스트 케이스의 견고성을 향상시킵니다. 제안된 시스템은 이상 현상의 계측, AI 생성 권고, 관련 테스트 케이스 실행, 문서 작성 및 보고, 누락된 테스트 케이스의 식별 및 생성을 생성합니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
그림 2 는 제안된 접근법의 구조를 보여줍니다. 그림은 시스템의 입력, 처리, 출력을 보여줍니다. 또한 시스템에 대한 포괄적인 묘사를 제공하고, 이를 설명으로 번역하여 기본 특징에 대한 이해를 높이도록 돕습니다.

그림 2: 제안된 시스템의 시스템 아키텍처로, 관측 데이터 수집기 및 분석기, 생성형 AI 기반 인텔리전스 계층, 테스트 오케스트레이션 및 실행 엔진을 포함합니다. 이 그림은 PreventativeTestPro 시스템의 내부 아키텍처를 세 가지 계층으로 나누어 보여줍니다: 관찰 가능성 수집 계층은 브라우저 이벤트, 로그, HAR 파일, 백엔드 로그, 메트릭, 트레이스 등 여러 출처의 데이터를 집계합니다. 생성형 AI 인텔리전스 레이어는 이 데이터를 활용해 근본 원인 분석을 수행하고, 이상 현상을 우선순위 지정하며, LLM을 활용해 자율적으로 테스트 케이스(UI, API, 매뉴얼)와 문서를 생성합니다. BHARAMARI 모듈은 또한 새로운 시험대를 구축합니다. 테스트 오케스트레이션 및 실행 엔진은 불일치를 테스트 케이스에 매핑하고, 테스트를 동시에 실행하며, 결과를 평가하고, 엔지니어링 팀, 티켓팅 시스템, 대시보드에 실시간 감독 및 해결 모니터링을 제공합니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
관측성 데이터 수집기 및 분석기 모듈은 플랫폼의 감각 시스템 역할을 하며, 평가 중인 애플리케이션의 데이터를 대규모로, 다양한 측면으로 지속적으로 수집합니다. 프론트엔드 모니터링의 경우, 문서 객체 모델(DOM) 구조, 클릭, 호버, 입력과 같은 사용자 행동, 네트워크 및 API 요청 및 응답 정보를 캡처하는 HAR 파일 등 브라우저 측 이벤트를 모니터링하기 위해 합성 모니터링 에이전트가 배포됩니다. PreventativeTestPro는 브라우저의 기능을 향상시키기 위해 OBSERVER와 함께 내장되어 있습니다. 백엔드 모니터링은 서버 측 관측 정보를 요청하고 처리하는 로그 분석을 목표로 하며, 여기에는 애플리케이션 로그, 오류, 정보 및 디버그 메시지, 스택 추적 및 예외 로그, 응답 시간과 같은 성능 지표, OpenTelemetry나 New Relic과 같은 기술을 이용한 추적이 포함됩니다. 이 시스템은 사용자 트래픽과 상호작용을 시뮬레이션하는 합성 에이전트와 함께 작동하며, 로그 수집기는 들어오는 실시간 데이터를 압축합니다. 수집된 데이터는 구조화된 형식으로 정규화되어 다른 처리 장치에 전달되어 추가 분석을 받습니다.
PreventativeTestPro의 핵심은 GPT와 같은 대형 언어 모델(LLM)을 사용하여 관측 가능성을 읽고 분석하며 응답을 맥락화하고 생성하는 생성형 AI 기반 인텔리전스 레이어입니다. 이 모듈은 근본 원인 분석을 수행합니다: 특정 코드 라인의 NullPointerException과 같은 문제의 원인으로 가정된 원인(예: 초기화 되지 않은 변수)과 같은 기술적 결함을 이해할 수 있도록 근본 원인 로그와 추적 데이터를 해석하는 과정입니다. 테스트 케이스 생성에서는 예외 패턴이나 일련의 이벤트를 실행 가능한 테스트 스크립트(예: Selenium이나 API 테스트)로 변환하여 자동 테스트를 생성하지만, 품질 보증 직원이 실행할 수 있는 사람이 읽을 수 있는 테스트 절차도 생성합니다. API 테스트는 HAR과 트레이스 로그를 일련의 API 요청으로 변환하여 예상되는 주장을 포함하며, 생성된 모든 테스트 케이스는 BHRAMARI와 통합되어 효과적인 테스트 베드로 더욱 강화되었습니다. 분석된 시스템 동작에 따라 추천 시스템에서 추가 개선, 테스트 커버리지 향상, CI/CD 통합 기회가 제안됩니다. AI 엔진은 프롬프트 엔지니어링과 맥락 강화를 통해 구조화된 관측 데이터를 사용하여 로그 맥락을 프롬프트 템플릿으로 제시하고, 이 템플릿은 구조화된 쿼리를 LLM에 전달하며, 최종적으로 코드 스니펫, 테스트 케이스 명세, 자연어 문서와 같은 함수 형태의 출력을 생성합니다.
테스트 오케스트레이션 및 실행 엔진 모듈은 테스트 우선순위, 스케줄링, 실행을 처리하며, 코드 변경 커버리지 세부사항, 태그, 이상 매핑을 기반으로 한 자동 검증을 가능하게 합니다. 테스트 매핑과 선택은 매핑 규칙 엔진을 사용해 지도나 계측 패턴의 이상 현상을 알려진 테스트 케이스와 연관 짓고, 기존 매핑에 따라 테스트 케이스를 실행하는 과정을 포함합니다. 동시 테스트 실행 기능은 기능, 성능, 보안 테스트 등 다양한 환경에서 동시에 여러 유형의 테스트를 실행할 수 있게 하며, 자동화 파이프라인에서 Selenium, JMeter, ZAP를 도구로 활용하는 것을 조정할 수 있게 합니다. 피드백 루프 구현은 실행 결과를 기록하도록 보장하며, 테스트 실패 시 Jira와 Azure DevOps 등 지원 시스템에 변경 사항을 전달하여 이를 추적하고 해결합니다.
가설:
H1 (운영 효율성): 관측 데이터와 AI 기반 인텔리전스의 결합이 운영 지표를 향상시킬 것으로 보이며, 특히 평균 해결 시간(H1a), 평균 분석 시간(H1b), 평균 생산 문제 감지 시간(H1c), 운영 내 수정 배포 평균 시간(H1d)을 단축할 것으로 보입니다. 이러한 변화는 시스템 다운타임을 최소화하면서 탐지, 분석, 배포를 가속화함으로써 서비스 수준 협약(SLA) 요구사항(H1e)을 더 쉽게 충족할 수 있도록 할 것입니다.
H2(테스트 효과성): 소프트웨어 테스트의 효과는 더 많은 테스트 커버리지(H2a), 병렬 테스트 실행(H2b), 스마트 테스트 우선순위 지정(H2c)으로 향상될 것으로 여겨집니다. AI 생성 권고안(H2d)은 테스트 및 운영 워크플로우 모두에 도움을 줄 것으로 기대됩니다. 이를 통해 버그를 더 빠르게 발견하고, 피드백 루프를 가속화하며, 예방적이고 장기적인 품질 보증 관행을 지원할 수 있습니다.
범위 및 대상:
이 프로토타입은 전체 시스템 설계, 주요 아이디어, 그리고 PreventativeTestPro 프레임워크를 단계별로 설정하고 실행하는 방법을 보여줍니다. 또한 적절한 테스트 베드와 샘플 입력을 설정하는 방법과 문제 해결 팁에 대한 팁도 자세히 설명합니다. 이 내용은 이미 자바의 기본을 알고 있으며 예방적 테스트를 활용해 소프트웨어를 더 신뢰성 있고 효율적으로 만드는 방법을 배우고자 하는 소프트웨어 품질 엔지니어들을 위한 것입니다.
환경 설정:
보조 파일 1 에는 PreventativeTestPro와 소통하는 데 필요한 단계별 설명과 프로그램이 포함되어 있습니다. 여기에는 필요한 환경 설치 방법, 도구 서비스 시작 및 종료 방법, 도구의 기본 사용법에 대한 명확한 설명이 포함됩니다. 더 자세한 문서와 고급 도구 사용법, 설정 지침, 기타 조직 관련 세부사항을 원하시면 프로젝트 전용 공식 GitHub 소스를 참고하세요: https://github.com/sohambpatel/PreventativeTests/wiki 위치의 위키 페이지와 https://github.com/sohambpatel/PreventativeTests?tab=readme-ov-file/readme 의 메인 README입니다.
샘플 입력:
샘플 입력 파일은 GitHub 저장소에서 찾을 수 있습니다: https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/Inputs. 프레임워크는 이 파일들의 미리 설정된 테스트 케이스와 데이터셋을 즉시 실행할 수 있습니다. 이들은 환경 설정을 점검하고 이 프로토콜에서 설명한 동일한 결과를 얻기 위한 참조 입력으로 사용됩니다.
샘플 출력:
GitHub 저장소(https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/SampleOutputs)에는 예방 테스트 프레임워크의 출력 데이터의 구체적인 샘플이 원시 형식으로 포함되어 있습니다. 이 파일들을 통해 사용자는 생성된 보고서와 지표의 레이아웃과 세부 정보를 직접 확인할 수 있으며, 도구가 작동 중 달성한 결과를 보여줍니다. 이 가이드는 데이터 파이프라인을 이해하고 실험 과정을 재구성하는 동안 예상되는 프레임워크 동작을 확인하는 데 유용합니다.
실행 프로토타입:
이 섹션에서는 PreventativeTestPro 프레임워크 사용법에 대한 상세하고 단계별 가이드를 제공합니다. 사용자가 워크플로우를 재현할 수 있도록 각 단계가 순서대로 설명되어 있습니다. 이 섹션은 실행 단계를 구조화된 형식으로 제시하여 결과를 쉽게 재현하고 중요한 체크포인트를 지적하며, PreventativeTestPro 프레임워크가 다양한 실험 또는 운영 환경에서 일관되게 사용할 수 있도록 합니다.
이 단계에서 PreventativeTestPro GUI를 사용하여 최적의 예방 테스트 워크플로우를 선택할 수 있습니다. 그림 3 은 다섯 가지 선택지를 보여주며, 각각은 테스트 과정의 서로 다른 단계를 나타냅니다: 병렬 테스트 실행, 기존 테스트 케이스 우선순위 지정으로 출력 모니터링 후 테스트 스위트 생성, 수동 테스트 케이스 생성, 자동화 테스트 케이스 생성, 근본 원인 찾기. 사용자가 선택을 하면 지정된 워크플로우가 시작됩니다. 그 이후에는 AI 기반 테스트 케이스 생성이나 근본 원인 분석과 같은 추가 모드를 추가 단계에 추가할 수 있습니다. 이 잘 조직된 인터페이스는 예방적 검사 연구를 반복하고 더 작은 부분으로 나눌 수 있는 방법을 제공합니다.

그림 3: 시스템의 사용자 인터페이스 1. 이 그림은 예방 테스트를 수행하는 다섯 가지 방법 중에서 선택할 수 있는 PreventativeTestPro 사용자 인터페이스를 보여줍니다: 1. 예방 테스트, 병렬 실행: 테스트 시작, 2. 예방 테스트, 합성 앱 모니터링 기반 최종 테스트 모음, 3. 예방 테스트, 생성 AI를 이용한 수동 테스트 케이스 생성, 4. 예방 테스트, GenAI를 이용한 자동 테스트 케이스 생성, 5. 예방 테스트, 생성 AI를 이용한 근본 원인 분석. 한 번에 한 가지 선택지만 선택할 수 있습니다. 모듈식 설계는 예방 검사를 더 쉽게 할 수 있게 하며, AI 기반 테스트 생성 및 진단을 추가합니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
그림 4 는 프레임워크의 병렬 실행 인터페이스를 보여줍니다. 이 단계에서 사용자는 테스트하고자 하는 애플리케이션의 URL과 구성 설정이 포함된 속성 파일의 절대 경로를 입력합니다. 입력이 설정된 후, 사용자는 테스트 시작 버튼을 클릭하여 동시에 테스트를 시작할 수 있으며, 이 버튼은 테스트 대상 웹사이트를 모니터링하고 보안, 성능, 콘솔, 자바스크립트 로그를 생성합니다. 테스트 중지 버튼을 클릭하면 실행 중지를 할 수 있습니다. 추천 받기 버튼을 통해 기록된 로그에서 AI 기반 인사이트를 얻을 수 있습니다. 이 설계는 여러 테스트 카테고리(기능, 성능, 보안)가 동시에 실행되도록 하여 문제를 더 빠르게 발견할 수 있게 합니다.

그림 4: 시스템의 사용자 인터페이스 2. 이 그림은 PreventativeTestPro 프레임워크의 병렬 실행 모드를 보여줍니다. 사용자는 대상 애플리케이션 URL과 구성 세부 정보를 포함하는 속성 파일의 경로를 지정합니다. 옵션으로는 기능, 보안, 성능 테스트를 병렬로 실행하고 로그를 기록하는 테스트 시작 시작, 실행 중지 테스트, 그리고 로그 및 지표에서 AI 기반 인사이트를 얻는 추천 요청 등이 있습니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
그림 5 는 PreventativeTestPro 프레임워크의 모니터링 기반 테스트 최종 화합 인터페이스를 보여줍니다. 이 단계에서 사용자는 모니터링 출력 파일의 경로, 오류 또는 예외 노드를 얻기 위한 JSON 경로 쿼리, 생성된 케이스를 저장하는 테스트 저장소 경로를 설정합니다. 입력이 설정된 후, 사용자는 먼저 그에 맞는 클래스와 메서드의 이름을 받고, 테스트 풀에서 찾은 클래스와 메서드를 기준으로 테스트 케이스를 정렬할 수 있습니다. 이 우선순위 지정 단계는 모니터링 데이터를 활용해 테스트 케이스를 효과적으로 순위 매기는 방법을 보여줍니다.

그림 5: 시스템의 사용자 인터페이스 3. 이 그림은 합성 모니터링 출력을 사용하여 PreventativeTestPro 프레임워크에서 테스트 스위트를 우선순위 지정하는 방법을 보여줍니다. 사용자는 모니터링 출력 파일의 경로, 예외/오류를 얻기 위한 JSON 경로, 그리고 오프라인 테스트 저장소로 가는 경로를 입력합니다. Get 클래스/메서드 이름과 Get Test Cases 옵션을 사용하면 매핑 이상을 실행할 수 있는 테스트 케이스로 변환할 수 있습니다. 이로 인해 런타임 문제들이 테스트 과정에 포함되도록 합니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
그림 6 은 PreventativeTestPro의 수동 테스트 케이스 생성 인터페이스를 보여줍니다. 이 단계에서 사용자는 스택 트레이스 파일의 절대 경로와 구성 속성 파일의 경로를 제공하여 이상 현상을 보여주는 스택 트레이스 파일을 어디에 위치할지 알려줍니다. 입력이 설정되면 테스트 케이스 생성 옵션을 실행하면 이상 현상을 구조화된 수동 테스트 케이스로 변환할 수 있습니다. 이로 인해 이전에 발생한 런타임 오류가 항상 테스트 과정에 포함되도록 보장합니다. 이 프레임워크는 프로세스를 자동화하여 테스트 케이스를 생성하는 것을 더 쉽게 만듭니다. 이렇게 하면 수작업 작업이 줄고, 테스트 커버리지를 개선하며, 테스트 신뢰성을 높이고, 같은 문제가 다시 발생하지 않도록 합니다. 이 단계는 문제를 발견하는 것과 문제가 발생하기 전에 품질을 유지하는 것 사이의 매우 중요한 연결고리입니다.

그림 6: 시스템의 사용자 인터페이스 3. 이 그림은 PreventativeTestPro의 테스트 케이스 생성 인터페이스를 보여줍니다. 이 프로그램은 이상 스택 추적을 행동 기반 개발(BDD)에서 수동 테스트 케이스로 전환하여 사용할 수 있게 합니다. 사용자는 스택 트레이스 파일과 속성 파일의 경로를 제공한 후 "테스트 케이스 생성"을 클릭하면 발견된 실패와 일치하는 케이스를 자동으로 생성합니다. 이렇게 하면 런타임 문제들이 항상 반복 가능한 회귀 테스트로 전환됩니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
그림 7 은 PreventativeTestPro의 자동 테스트 케이스 생성 인터페이스를 보여줍니다. 이 단계에서 사용자는 관측 가능성 JSON 출력 파일의 절대 경로와 속성의 구성 파일로 가는 경로를 제공합니다. 자동 테스트 케이스 생성 버튼을 클릭하면 시스템이 모니터링 데이터를 처리하여 동일한 문제를 보여줄 수 있는 테스트 케이스를 생성합니다.

그림 7: 시스템의 사용자 인터페이스 4. 이 그림은 PreventativeTestPro의 자동 테스트 케이스 생성 인터페이스를 보여주며, 관측성 데이터를 활용해 실행할 수 있는 테스트를 만듭니다. 사용자는 속성 파일과 관측 가능성 JSON 출력 파일의 경로를 제공합니다. 그 다음, "자동화된 테스트 케이스 생성"을 클릭해 실행할 수 있는 스크립트를 만듭니다(Selenium 및 TestNG 형식). 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.

그림 8: 시스템의 사용자 인터페이스 5. 이 그림은 근본 원인 분석용 PreventativeTestPro(RCA)의 이상 측측 인터페이스를 보여줍니다. 사용자는 속성 파일과 스택 트레이스 파일의 경로를 제공한 후 RCA를 선택하여 AI 기반 분석을 시작합니다. 이 단계는 발견된 이상 현상을 구조화된 진단 인사이트로 바꿔, 문제를 반복하고 특정 방식으로 고장을 수정할 수 있도록 합니다. 이 그림의 더 큰 버전을 보시려면 여기를 클릭해 주세요.
문제 해결:
표 1은 애플리케이션 코드에만 관련된 가장 중요한 문제 해결 포인트를 보여줍니다. 이 포인트들은 PreventativeTestPro 프레임워크를 실행할 때 발생하는 코드 수준의 문제를 빠르게 해결하는 방법을 기억하는 데 도움이 됩니다. 프로젝트 문서는 애플리케이션 전체 기능에 영향을 미치는 문제 해결에 더 많은 도움을 원하는 독자들을 위해 더 많은 정보와 단계별 지침을 제공합니다. 전체 자료는 링크 https://github.com/sohambpatel/PreventativeTests/wiki/How-to-use%3F 에서 확인할 수 있습니다. 이 추가 참고 자료는 사용자가 코딩 문제를 해결하는 것뿐만 아니라 기능 문제 해결 방법도 배워 프레임워크를 더 효과적으로 사용할 수 있도록 보장합니다.
| 오류 동작 | 근본 원인 | 어떻게 고칠 수 있을까요? |
| 신청이 시작되지 않습니다 | Java 경로는 설정되어 있지 않습니다 | 환경 변수에서 JAVA_HOME을 설정하세요 |
| 서버 시작 시 실패 | 포트 8080/9090 사용 중입니다 (특히 도커를 사용할 때) | Docker 포트 매핑 업데이트 |
| 생성형 AI 콘텐츠는 무효입니다 | 토큰이 만료되었을 수도 있습니다 | 토큰을 생성하고 config.properties를 업데이트한 후 입력으로 제공하세요 |
| 프레임워크가 생성한 브라우저 인스턴스가 네트워크에 연결되어 있지 않습니다 | ZAP 서버가 실행되지 않거나 ZAP 자격 증명이 잘못된 경우일 수 있습니다 | 애플리케이션을 실행하기 전에 ZAP을 켜세요. 실행 중인데도 문제가 계속된다면, config.properties에서 ZAP 자격 증명을 입력으로 입력하기 전에 업데이트하세요 |
표 1: 흔히 제안되는 시스템 오류 및 빠른 해결책. 이 표는 일반적인 애플리케이션 특화 오류, 문제 해결 방법 및 문제를 해결하기 위해 적용할 수 있는 빠른 해결책을 보여줍니다.
Access restricted. Please log in or start a trial to view this content.
초기에는 다양한 산업과 협력하여 진행한 사례 연구에서 도출된 결과를 실시간으로 공유했습니다. 또한, 이 프레임워크와 알고리즘을 사용한 베타 테스터들의 결과와 결과의 타당성에 대한 잠재적 위험에 대한 최종 관찰도 함께 제공했습니다.
업계 사례 연구 결과:
실용적 응용에 초점을 맞추고 지원 문제를 해결하는 연구를 바탕으로, 우리는 네 개의 소프트웨어 회사와 협력하여 프레임워크를 공유하고 실시간 결과를 얻었습니다. 산업 참여와 결과는 실제 사용 환경의 실용성과 장점을 보여줍니다.
사례 연구 1:
GazonTech는 네트워킹, 스트리밍 플랫폼, 온라인 게임, 화상 회의, 스마트 홈 자동화를 전문으로 하는 소프트웨어 기업...
Access restricted. Please log in or start a trial to view this content.
이 연구는 합성 모니터링, 관측 데이터, 생성형 AI 기반 자동화를 통합하여 소프트웨어 품질 보증을 향상시키는 종합적인 테스트 및 관측 플랫폼인 PreventativeTestPro를 소개합니다. 이 시스템은 세 가지 기본 모듈로 구성되어 있습니다: 관측성 데이터 수집기 및 분석기, 생성형 AI 기반 인텔리전스 계층, 그리고 테스트 오케스트레이션 및 실행 엔진. 이 구성 요소들은 실시간 시스템 동작이 테스트 케이스 생성, 결함 감지, 지속적인 테스트 검증을 이끄는 피드백 루프를 형성합니다. 이 방법은 지능형 맥락 민감 테스트 생성을 소프트웨어 개발 과정에 직접 통합하여 고전적인 블랙박스 및 화이트박스 테스트 기법을 통합합니다.
이 연구의 과학적 기여는 대규모 언어 모델(LLM)을 혁신적으로 적용하여 복잡한 관측 데이터를 분석하여 근본 원인 분석(RCA), 테스트 케이스 생성, 시스템 동작에 대한 제안 등 실행 가능한 인사...
Access restricted. Please log in or start a trial to view this content.
저자들은 본 논문에서 보도된 연구에 영향을 미칠 수 있는 알려진 경쟁 재정적 이해관계나 개인적 관계가 없다고 선언한다. 우리는 제미니가 문법 다듬기와 문장 재구성에만 적용되었음을 증언합니다. 저자들은 AI가 제안한 모든 변경 사항을 신중하게 수정하여 원래의 과학적 의미를 유지하기 위해 정확하고 윤리적으로 옳음을 유지하기 위해,
저자는 이 연구 과정에서 다음 기관들이 제공한 상당한 지원과 협력에 대해 감사를 표합니다. 이들 기업과의 협력 실험 사례 연구는 제안된 도구와 방법을 입증하는 데 매우 중요했습니다. 실험 단계에서 실용 환경에 접근하고 기술적 통찰을 제공하며 귀중한 의견을 제공해 준 GazonTech, Lopa Engineering, Afour Technologies, QJ Technologies, SecureLayer7에 감사드립니다. 이들의 적극적인 참여는 연구 결과의 실질적 중요성과 활용성을 크게 높였습니다. 저자는 학술 연구에 참여할 준비가 되어 있고 소프트웨어 공학 및 사이버보안 분야의 혁신과 지속적인 발전에 헌신하는 데 깊은 감사를 표합니다.
Access restricted. Please log in or start a trial to view this content.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| 아파치 메이븐 | 아파치 소프트웨어 재단 | 3.9.6 | Java 프로젝트를 위한 의존성 및 프로젝트 관리 도구 |
| ChatGPT (GPT-3.5 터보 API) | 오픈AI | https://platform.openai.com/api-keys | 로그에서 AI 기반 테스트 권고를 생성하고, 수동 테스트 케이스를 생성하고, 자동화된 테스트 케이스를 생성하며, 근본 원인 분석을 얻는 데 사용됩니다 |
| 컴퓨터(개발/테스트 머신) | 표준 데스크톱/노트북 | - | PreventativeTestPro 개발, 실행 및 테스트에 사용됩니다 |
| 디스크 공간 | - | - | 로그, 보고서, 테스트 아티팩트를 위해 최소 10GB의 여유 디스크 공간이 권장됩니다 |
| 도커 | 도커 주식회사 | 27 (https://docs.docker.com/desktop/setup/install/windows-install/) | 환경 간 재현성을 보장하기 위해 컨테이너화에 사용됩니다 |
| 잇 | Git SCM | git 버전 2.45.2.windows.1 | 개발 및 협업에 사용되는 버전 관리 시스템 |
| GitHub 저장소 | 깃허브 | https://github.com/sohambpatel/PreventativeTests | 소스 코드, 문서, 데이터셋 및 예제를 포함하는 공개 저장소 |
| 구글 크롬 | 구글 | 140.0.7339.128 | 합성 모니터링 및 테스트에 사용되는 주요 브라우저 |
| 자바 | 오라클 / OpenJDK | 21.0.2 | PreventativeTestPro의 소프트웨어 개발 및 실행에 사용됩니다 |
| 운영 체제 | 플랫폼 독립 | - | Tool은 Java와 Maven이 설치된 모든 운영체제(Windows, Linux, macOS)에서 작동합니다. |
| 오와스프 삐 | OWASP 재단 | 2.14.0 | 보안 스캔 및 취약점 탐지 도구 |
| 프로세서 | - | - | 병렬 실행 및 AI 처리에는 Intel i5 이상(또는 동등한 제품)이 권장됩니다 |
| 램 | - | - | 테스트 실행과 브라우저 기반 모니터링을 위해 최소 8GB RAM이 권장됩니다 |
Access restricted. Please log in or start a trial to view this content.
Request permission to reuse the text or figures of this JoVE article
Request Permission