metamorphic-testing

4 posts

Metamorphic testing으로 GCC·LLVM에서 147개 컴파일러 버그와 자율주행차 결함을 발견하는 방법

Metamorphic testing은 GCC, LLVM, Vulkan 셰이더 컴파일러, ADAS 시뮬레이터에서 실제 버그를 찾아냈다. 이 글에서는 이 기법을 동작하는 코드와 함께 설명하고, 당신의 테스트 스위트에 어디에 맞는지 보여준다.

Metamorphic testing은 GCC와 LLVM에서 147개의 확인된 버그를 찾았고, 자동차 OEM이 사용하는 상용 ADAS 시뮬레이터의 결함을 발견했으며, 보행자 사망 사고 8일 전 자율주행차 인지 시스템의 치명적인 결함을 잡아냈다. 이 기법은 학술적으로 들리지만, 버그는…

LLM은 Metamorphic Relation을 제안할 수 있다. 하지만 보장할 수는 없다.

대규모 언어 모델은 test oracle 발견을 위한 괜찮은 브레인스토밍 파트너이지만, 속성을 환각하고 도메인 제약을 놓칩니다. 거짓 테스트를 배포하지 않고 이들을 사용하는 방법을 설명합니다.

사전에 올바른 출력을 알 수 없는 함수를 테스트해야 합니다. 경로 최적화기. 감정 분류기. 물리 시뮬레이션. metamorphic testing에 대해 읽어봤습니다: 반드시 성립해야 하는 입력과 출력 사이의 relation을 찾고, 정확한 값 대신 그 relation을 테스트합니다.…

대부분의 Metamorphic Relation은 쓸모없다. 좋은 것을 고르는 방법.

모든 metamorphic relation이 버그를 잡아내는 것은 아닙니다. 약한 relation은 거짓 자신감을 주고, 강한 relation만이 실제 결함을 찾습니다. 차이를 구분하고 실제로 작동하는 relation 집합을 구축하는 방법을 설명합니다.

가격 책정 엔진에 대해 12개의 metamorphic relation을 작성했습니다. 모든 테스트가 통과합니다. 커버리지에 대해 기분이 좋습니다. 그런 다음 고객이 대량 할인이 거꾸로 계산된다고 보고합니다. relation 스위트를 확인합니다. 단 하나의 테스트도 실패하지 않았습니다.…

정답을 모를 때 코드를 어떻게 테스트할까?

metamorphic testing은 정확한 예상 출력을 알지 못해도 코드의 정확성을 검증할 수 있게 해줍니다. 작동 방식, 한계, 그리고 시작하는 방법을 설명합니다.

고객 지원 티켓에 라벨을 붙이는 머신러닝 모델을 배포했습니다. 테스트 스위트는 초록색입니다. 모든 테스트가 통과했습니다. 그 테스트들 중 어느 것도 라벨이 올바른지 실제로 검사하지 않습니다. 올바른 라벨이 무엇인지 모릅니다. 아무도 모릅니다. 실제 입력에 대해 '올바른' 출력은…