case-study

2 posts

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

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

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

정말로 1만 줄을 결함 없이 검증한 사람이 있었을까? IBM은 했고, 그 방법론은 결과보다 이상하다.

Cleanroom software engineering은 디버깅 대신 mathematical verification을 통해 zero-defect increment를 약속했다. 우리는 IBM의 실제 프로젝트 데이터를 살펴보아 그 주장이 성립했는지 본다.

1980년대 소프트웨어 업계 평균은 천 줄당 30~60개의 결함이었다. IBM의 Cleanroom 팀은 2만 줄짜리 컴파일러 인크리먼트를 테스트에서 53개의 결함이 발견된 상태로 출시했다. 이는 KLOC당 2.6개이다. 1만 줄짜리 개별 인크리먼트 중 일부는 시스템 테스트에서 결함이…