반응형

출처: Software Testing by Ron Patton, 2001, 11페이지

 

 

1994Intel Pentium 부동 소수점 나누기 버그 사례

PC 계산기에 다음 식을 입력한다.

 (4195835 / 3145727) * 3145727 - 4195835

 

답이 0이면 당신 컴퓨터에 문제가 없는 것이다. 뭔가 다른 답이 나타난다면 부동 소수점 나누기 버그가 있는 오래된 Intel Pentium CPU를 갖고 있는 것이다(이 소프트웨어 버그가 컴퓨터 칩에 내장되어 제조 과정에서 계속해서 재생산됨).  

 

1994 10 30, 린치버그(버지니아) 대학의 Thomas R. Nicely 박사는 실험 중 예상치 못한 결과를 추적하다가 자신의 Pentium PC에서 수행된 나눗셈 문제의 답이 잘못된 것을 발견했다. 그는 이를 인터넷에 올렸고, 얼마 지나지 않아 수많은 사람들이 그의 문제를 복제하고 오답이 나오는 추가적인 상황을 발견하면서 폭풍처럼 번져나갔다. 다행히 이러한 경우가 드물었고 극도로 수학 집약적인 과학 및 공학 계산에서만 오답이 나타났다. 대부분의 사람들은 세금을 계산하거나 사업을 운영하거나 하면서 이런 상황을 겪지는 않았다.

 

이 이야기를 주목하게 만드는 것은 버그가 아니라 인텔이 문제를 처리한 방식이다.

  • 인텔의 소프트웨어 테스트 엔지니어는 칩이 출시되기 전에 자체 테스트를 수행하는 동안 해당 버그를 발견했다. 인텔 경영진은 이것이 문제를 해결하거나 공론화할 만큼 심각하지 않다고 판단했다.
  • 버그가 발견된 후에는 인텔이 보도 자료와 공개 성명을 통해 인지된 심각도를 낮추려고 시도했다.
  • 압박을 받자 인텔은 결함이 있는 칩을 교체해 주겠다고 제안했지만 사용자가 버그의 영향을 받았다는 사실을 증명할 수 있는 경우에만 가능했다.

 

대중의 항의가 빗발쳤다. 인터넷 뉴스그룹은 인텔에 문제를 해결하라고 요구하는 성난 고객들로 가득 찼다. 뉴스 기사는 회사를 무심하고 믿을 수 없는 사람으로 묘사했다. 결국 인텔은 버그 처리 방식에 대해 사과하고 불량 칩 교체 비용을 충당하기 위해 4억 달러가 넘는 비용을 부담했다. 이후 인텔은 회사 웹 사이트에 알려진 문제를 보고하고 인터넷 뉴스 그룹의 고객 피드백을 주의 깊게 모니터링한다.

 

 

반응형

+ Recent posts