Search
📻

생성형 AI를 활용하여 자동차 소프트웨어 요구사항을 위한 테스트 케이스 생성하기

URL
생성 일시
2025/08/24 02:23
최종 편집 일시
2025/08/24 13:44
태그
AWS
GenAI
Test
파일과 미디어
이 글은 AWS for Industries 블로그에 게시된 글(Using generative AI to create test cases for software requirements [https://aws.amazon.com/blogs/industries/using-generative-ai-to-create-test-cases-for-software-requirements/])를 한국어로 번역 및 편집하였습니다. 오늘날 자동차 산업에서 소프트웨어 시스템 요구사항 관리는 시스템의 복잡성 증가와 중요성으로 인해 상당한 도전 과제가 되고 있습니다. 이러한 요구사항에는 자율주행, 인포테인먼트, 사용자 인터페이스와 같은 기능적 요구사항과, 성능, 보안, 신뢰성과 같은 시스템의 운영 기준을 설정하는 비기능적 요구사항이 포함됩니다. 최근 백서에 따르면, 잘 갖춰진 중형 차량의 경우 450,000개의 소프트웨어 및 전자장치 요구사항을 관리해야 합니다. 이는 각 요구사항을 검증하고 소프트웨어가 지정된 기준을 충족하는지 확인하기 위해 수십만 개의 테스트 케이스가 필요함을 의미합니다. 요구사항 관리 도구와 방법론의 발전에도 불구하고, 이 프로세스는 여전히 반복적이고 노동 집약적이어서 더 자동화되고 효율적인 방법론이 필요함을 강조하고 있습니다. Virtual Engineering Workbench(VEW) [https://aws.amazon.com/ko/blogs/industries/stellantis-sdv-transformation-with-the-virtual-engineering-workbench-on-aws/]는 자동차 소프트웨어 엔지니어링의 개발 및 테스트 프로세스를 간소화하고 자동화하도록 설계된 클라우드 기반 프레임워크입니다. VEW는 디지털 툴체인, 가상화된 하드웨어, 런타임 환경을 위한 셀프서비스 포털을 제공하여 개발자 효율성 향상을 목표로 합니다. Amazon Web Services(AWS)를 사용하여 VEW 프레임워크는 현재 소프트웨어 개발 생명주기를 향상시키는 데 도움이 되는 다양한 도구와 대상을 제공합니다. 테스트 담당자(테스터)와 통합 담당자의 효율성을 더욱 높이기 위해, 생성형 AI 서비스를 통합하여 VEW 환경에서 생성된 산출물이 명세서에 맞게 검증되도록 할 수 있습니다. 이 접근 방식은 수동 작업을 줄이고 자동차 소프트웨어 엔지니어링 전반에 걸쳐 테스트 및 통합 프로세스의 정확성과 효과를 향상시키는 데 도움이 됩니다. 또한 VEW는 테스터가 다양한 프롬프트와 모델을 실험할 수 있도록 지원하여, 워크플로 개선 및 맞춤화가 가능합니다. 피드백 루프와 미세 조정 기능을 통합함으로써 VEW는 생성된 테스트 케이스의 품질을 지속적으로 개선할 수 있습니다. 결과적으로 VEW는 시스템 테스터가 직면한 현재의 과제를 해결할 뿐만 아니라 자동차 소프트웨어 산업에서 더 혁신적이고 효율적인 테스트 방법론의 길을 열어줍니다. 현재 자동차 테스터의 워크플로우 오늘날 테스트 케이스 생성 프로세스는 종종 수동적이고 시간이 많이 소요되며, 완전성과 정확성을 확인하기 위한 광범위한 문서화와 반복적인 검토를 필요로 합니다. 기능 요구사항은 사용자 스토리와 유즈 케이스를 통해 도출하고, 비기능적 요구사항은 산업 표준과 규제 지침을 활용하여 정의합니다. AI 기반 기능을 활용한 워크플로우 이러한 과제를 해결하기 위해 우리는 AWS를 기반으로 구축된 VEW의 인공지능(AI) 기반 확장 기능을 개발하여, 이 프로세스를 더 효율적으로 만들었습니다. 워크플로우는 네 가지 주요 단계로 구성됩니다: 1. 요구사항 관리 시스템에서 요구사항 데이터 내보내기 2. 요구사항 데이터를 VEW로 가져오기 3. VEW 기능을 사용하여 테스트 케이스 생성하기 4. VEW에서 테스트 케이스 데이터를 내보내어 테스트 도구에서 사용하기 먼저 테스터는 요구사항 관리 시스템에서 요구사항 데이터를 VEW로 업로드합니다. 요구사항 데이터는 사용자 측에서 파싱되고 저장됩니다. [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/08/07/image-2025-08-07T224059.752.png] 각 요구사항에 대해 VEW의 테스트 케이스 기능은 프롬프트에 제공된 정의를 기반으로 “제어 기능” 또는 “기능 안전”과 같은 적용 가능한 분류 범주의 상세한 설명을 생성할 수 있습니다. 이는 테스터가 다루고 있는 요구사항의 유형과 고려해야 할 관련 특성을 더 잘 이해하는 데 도움이 됩니다. [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/08/07/image-2025-08-07T224132.688.png] 다음 단계로 넘어가기 전에 테스터는 분류가 정확한지 검증하고 필요한 경우 편집해야 합니다. 테스터의 분류는 다음 단계의 입력으로 사용됩니다. 다음 단계에서 VEW는 이 사용 사례에 적합한 테스트 기법 (예를 들어 블랙박스 테스트)을 사용하여 각 요구사항에 대한 상세한 테스트 케이스 설명을 생성합니다. 그러면 테스터는 이러한 테스트 케이스를 검토, 편집 및 승인할 수 있습니다. [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/08/07/image-2025-08-07T224158.839.png] 분류와 테스트 케이스가 생성되고 테스터에 의해 승인되면, 워크플로우는 승인된 생성 테스트 케이스를 저장하여 테스터가 테스트 케이스를 내보내고 테스트 실행 도구에서 사용할 수 있도록 합니다. 분류와 테스트 케이스 생성 모두에서 테스터는 정확한 결과를 보장하기 위해 다음 단계로 넘어가기 전에 시스템의 결과를 검증해야 합니다. 이는 테스터의 워크플로우를 처음부터 또는 템플릿을 기반으로 테스트 케이스를 생성해야 하는 것에서 단순히 검토하는 것으로 변경합니다. 이러한 인간 참여형(human-in-the-loop) 접근 방식을 통해 테스터는 감독과 제어를 유지하면서 자동화된 시스템의 효율성과 일관성을 활용할 수 있어 더 신뢰할 수 있고 포괄적인 테스트 케이스를 개발하는 데 도움이 됩니다. 이 섹션에서는 AI를 사용하여 테스트 케이스 생성을 자동화하는 워크플로우에 대해 논의했습니다. 테스트 케이스 생성 시간이 최대 80% 단축되어 효율성을 극적으로 개선하고 품질을 유지하는 데 도움이 됩니다. 솔루션 아키텍처 다음 다이어그램은 Amazon Bedrock을 활용한 생성형 AI 기능을 구현하기 위한 주요 컴포넌트 및 아키텍처를 보여줍니다. [https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2025/08/07/image-2025-08-07T224236.123.png] 1. 테스터는 웹 인터페이스를 사용하여 요구사항을 분류하거나 테스트 케이스를 생성합니다. 이 인터페이스는 Amazon API Gateway [https://aws.amazon.com/ko/api-gateway/]로 요청을 보냅니다. API Gateway는 개발자가 어떤 규모에서든 API를 쉽게 생성, 게시, 유지 관리, 모니터링하고 보안을 적용할 수 있도록 지원하는 완전 관리형 서비스입니다. 2. Amazon API Gateway는 AWS Lambda [https://aws.amazon.com/ko/api-gateway/]의 통합을 사용하여 API lambda 진입점으로 요청을 전달합니다. AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 사용자가 코드를 실행할 수 있도록 지원하는 서비스입니다. 3. AWS Lambda 함수는 Amazon Bedrock의 API를 호출합니다. Amazon Bedrock은 단일 API를 통해 다양한 고성능 기반 모델에 액세스하고 활용할 수 있도록 하는 완전 관리형 서비스입니다. 응답 시간은 약 5초 정도 소요됩니다. 이 솔루션에서는 Claude 모델의 뛰어난 범용 성능과 비용 효율성을 고려하여, 분류 단계에는 Amazon Bedrock의 Anthropic Claude [https://aws.amazon.com/ko/bedrock/anthropic/] Instant 버전을, 테스트 케이스 생성 단계에는 Claude 2.0 버전을 각각 사용했습니다. 4. 사용자가 분류와 테스트 케이스를 승인하면 결과는 Amazon DynamoDB [https://aws.amazon.com/ko/dynamodb/]에 저장됩니다. Amazon DynamoDB는 어떤 규모에서든 현대적인 애플리케이션을 개발할 수 있도록 지원하는 서버리스 NoSQL 데이터베이스 서비스입니다. 이는 이 사용 사례가 다양한 조직에서 접근 가능하고 비용 효율적일 수 있음을 보여줍니다. 테스트 케이스 설정이 더 복잡한 조건과 요구사항을 포함하더라도 오늘날의 언어 모델은 정교한 테스트 요구사항을 처리하고 워크플로우를 가속화할 수 있습니다. 프롬프트 엔지니어링 이 워크플로우의 중요한 구성 요소는 제공된 프롬프트의 품질입니다. 선택된 모델과 더불어 프롬프트는 결과 생성에서 가장 큰 비중을 차지합니다. 더 나은 결과를 얻기 위해 다양한 프롬프트 엔지니어링 기법 [https://aws.amazon.com/ko/blogs/machine-learning/prompt-engineering-techniques-and-best-practices-learn-by-doing-with-anthropics-claude-3-on-amazon-bedrock/]을 사용했습니다. 그러한 기법 중 하나는 롤플레잉입니다. 예를 들어, 시스템에게 테스트 엔지니어의 역할을 맡도록 지시할 수 있습니다. 프롬프트는 다음과 같습니다: “당신은 소프트웨어 요구사항 분류에 전문성을 가진 소프트웨어 테스트 및 블랙박스 테스트 기법의 테스트 엔지니어입니다.” 이는 업계 전문성에 기반한 응답 생성을 위한 기반을 설정합니다. 프롬프트에는 다양한 유형의 기능적 및 비기능적 요구사항에 대한 지침과 배경 정보가 포함되어 있어 시스템이 분류 기준에 대한 필요한 이해를 가지고 있는지 확인하는 데 도움이 됩니다. 이러한 컨텍스트 정보는 시스템이 주어진 소프트웨어 요구사항을 정확히 분류하는 데 중요합니다. 또한 프롬프트는 각 요구사항 유형에 대해 명확하게 정의된 섹션을 포함하도록 응답 형식을 구조화합니다. 이러한 구조화된 접근 방식은 시스템이 생각을 정리하고 프롬프트의 기대에 부합하는 잘 형식화된 출력을 제공하는 데 도움이 됩니다. 프롬프트는 정확성과 간결성을 강조하여 시스템이 불필요한 논평 없이 관련 측면에 집중하도록 돕습니다. 불필요한 텍스트를 피하기 위해 프롬프트에 다음을 포함할 수 있습니다: “응답에서 제안, 긍정 또는 확인과 같은 표현은 건너뛰십시오. 부가 설명 없이 직접적인 답변을 선호합니다.” 테스트 케이스 생성의 두 번째 단계에서도 유사한 프롬프트 엔지니어링 기법이 시스템의 응답 생성에 가이드라인을 제공합니다. 작업은 테스트 엔지니어의 역할 내에서 프레임화되어 요구사항과 블랙박스 테스트 기법에 맞춘 구조화된 테스트 케이스를 제공하는 데 도움이 됩니다. 향후 개발 이 기능은 테스터가 다양한 프롬프트를 실험하여 어떤 프롬프트, 모델 및 temperature(AI 모델의 temperature는 출력의 무작위성을 제어하며, 낮은 값은 더 예측 가능하고 집중된 응답을 생성하고 높은 값은 더 창의적이고 다양하며 놀라운 출력을 만듭니다)와 같은 매개변수가 원하는 출력을 생성하는지 결정할 수 있도록 하여 확장되고 더 일반적으로 사용할 수 있게 만들 수 있습니다. 이러한 실험의 결과로 사용자 정의 프롬프트를 기존 워크플로우에 적용하고 다른 테스터와 공유할 수 있습니다. 워크플로우의 입력과 출력은 모두 CSV 파일로 주고 받으며 현재 다른 도구와 분리되어 있습니다. API 통합의 도움으로 사용자는 요구사항 소프트웨어에서 관련 요구사항을 직접 가져오고 생성된 테스트 케이스를 테스트 소프트웨어에 업로드할 수 있습니다. 미래에는 이것이 애플리케이션 생명주기 관리(ALM)에서 소프트웨어 개발, 테스트, 그리고 다시 ALM으로의 엔드투엔드 사용 사례를 가능하게 하여 사용자가 전반적인 효율성을 크게 개선하는 데 도움이 될 수 있습니다. 이 솔루션은 테스터, 생성된 분류 및 테스트 케이스 간의 피드백 루프를 특징으로 합니다. 테스터는 생성된 출력을 저장하기 전에 적극적으로 검증해야 합니다. 승인된 분류와 테스트 케이스는 미세 조정 작업의 도움으로 Amazon Bedrock의 대형 언어 모델을 미세 조정하기 위한 훈련 데이터로도 사용할 수 있습니다. 이는 생성된 테스트 케이스의 품질을 더욱 개선하고 출력 품질에 대한 더 긍정적인 피드백 루프를 만드는 데 도움이 될 것입니다. 결론 AI를 Virtual Engineering Workbench(VEW)에 통합하면 자동차 소프트웨어 테스트 효율성을 크게 개선하는 데 도움이 될 수 있습니다. Amazon Bedrock과 AWS 서비스를 사용하여 자동차 소프트웨어 요구사항의 복잡성을 해결하는 데 도움이 되는 솔루션을 개발했습니다. 이 AI 지원 워크플로는 인간 참여형 접근 방식을 통해 정확성을 유지하면서 테스트 케이스 생성 시간을 최대 80% 단축할 수 있습니다. 이 솔루션은 수많은 요구사항을 효율적으로 처리할 수 있으며 4주 내에 프로덕션에 구현되었습니다. 앞으로 ALM에서 소프트웨어 개발 및 테스트까지의 end-to-end 통합이 추가적인 효율성을 제공할 수 있습니다. 이 AI 기반 접근 방식은 현재의 과제를 해결하고 혁신적인 테스트 방법론을 가능하게 하여 기업이 차량 소프트웨어 시스템의 복잡성을 관리하는 데 도움이 될 수 있습니다. TAGS: 자동차 (automotive) [https://aws.amazon.com/blogs/industries/tag/automotive/], 소프트웨어 정의 차량 (software defined vehicle, SDV) [https://aws.amazon.com/blogs/industries/tag/software-defined-vehicle/]