banner

블로그

Jun 11, 2023

내가 머신러닝 시스템 테스터로서 기여한 방법: 기회, 과제 및 학습

InfoQ 홈페이지 기사 기계 학습 시스템의 테스터로서 내가 기여한 방법: 기회, 과제 및 학습

2023년 2월 16일 10분 분량의 읽기

~에 의해

시바니 가바

검토자

벤 린더스

테스트는 소프트웨어 개발 수명 주기(SDLC)에서 중요한 측면으로 간주되므로 애플리케이션의 품질을 보장하기 위해 테스터가 참여합니다. 이는 웹 애플리케이션, 모바일 애플리케이션, 웹 서비스 등을 포함한 기존 소프트웨어 시스템에도 적용됩니다.

하지만 머신러닝 기반 시스템에 대해 궁금한 적이 있나요? 이러한 경우 테스트는 뒷전으로 밀려납니다. 일부 테스트가 수행되더라도 대부분 개발자가 직접 수행합니다. 이러한 영역에서는 테스터의 역할이 명확하게 설명되지 않습니다.

테스터는 일반적으로 ML 기반 시스템을 이해하고 그러한 프로젝트에서 어떤 기여를 할 수 있는지 탐색하는 데 어려움을 겪습니다. 그래서 이 글에서는 테스터로서 ML 기반 시스템의 품질을 보장하는 나의 여정을 공유하겠습니다. 나는 나의 도전, 학습 및 성공 사례를 강조하겠습니다.

대부분의 테스터와 마찬가지로 저는 웹 앱, 기본 앱, 백엔드, 마이크로서비스 등과 관련된 기존 시스템을 테스트하는 일에 참여해 왔습니다. 이러한 시스템에서는 사람(주로 개발자)이 입력을 받고 로직을 작성하여 결정론적 출력. 테스터로서 우리의 초점은 지정/암시된 요구 사항에 대해 예상되는 출력을 확인하는 것입니다.

흥미롭게도 몇 년 전에 저는 ML 기반 추천 시스템을 테스트할 기회를 얻었습니다. 기존 시스템과는 상당히 달라서 설렘과 불안이 동시에 있었습니다.

ML 시스템에서는 패턴이 포함된 수많은 데이터가 입력으로 제공됩니다. 이러한 패턴을 발견하고 미래의 사건을 예측하는 논리를 학습하는 모델에 입력됩니다.

품질을 보장하려면 테스트하는 것이 중요합니다.배운 논리 . 그래서 저는 스스로에게 물었습니다. 이 학습 과정과 학습 과정을 어떻게 테스트할 수 있을까요?배운 논리 모델별로? 이 논리를 테스트하는 것이 가능합니까? 모델은 완전히 블랙박스인가요?

이런 질문을 많이 갖고 있어서 탐구하고 배우고 싶은 호기심이 생겼습니다. 롤러코스터를 탈 준비가 다 되어 있었어요 :)

빨리 기여하고 싶은 흥분과 호기심으로 저는 우리 대부분이 하는 일을 했습니다. 바로 테스트 아이디어를 Google에 검색하는 것이었습니다! 제가 언급한 대부분의 리소스는 정밀도, 재현율, 혼동 행렬 등과 같은 모델 평가 지표를 가리키고 있었습니다. 제게는 전문 용어처럼 느껴졌습니다. 솔직히 나는 그들을 이해하지 못했습니다. 하지만 저는 설익은 학습 내용을 개발자에게 돌려주었고 개발자들은 이미 이러한 측정항목을 고려하고 있다고 말했습니다.

나는 개발자들이 자신의 도메인에 대해 잘 알고 있다는 것을 깨달았습니다. 테스터로서 영향력을 발휘하려면 그들이 놓친 관점을 가져와야 했습니다.

테스터로서 우리는 올바른 질문을 하고, 큰 그림을 이해하고, 틀에서 벗어나 생각하고, 더 깊은 제품 지식을 적용하고, 현상 유지에 도전하는 등의 훌륭한 기술을 갖추고 있습니다. ML 시스템을 테스트하면 많은 문제를 예방할 수 있습니다.

또한 시스템이 어떻게 작동하는지, 구성 요소가 무엇인지 이해하지 못한 채 무언가를 테스트하려고 한다는 사실도 깨달았습니다. 그러나 시스템을 더 잘 테스트하려면 이것이 첫 번째 단계여야 합니다.

저는 시스템을 깊이 이해하고 모든 단계에서 테스트 기술을 적용하기 위해 협력하기 위해 개발자들과 이 접근 방식에 대해 논의했습니다.

처음에는 테스터를 탑재하는 것에 회의적이었던 개발자들은 이 계획을 듣고 흥분했고 제가 제공할 수 있는 가치를 기대했습니다.

우리 팀과 함께 저는 머신러닝에서 특정 패턴을 가진 방대한 데이터 세트가 수집, 필터링되어 모델에 제공된다는 것을 이해했습니다. 모델은 이러한 패턴을 식별하고 향후 사건의 확률을 예측합니다.

공유하다