「상업용 SW의 기능오류(버그)는 어느 선까지 허용될까.」
컴퓨터 사용중 흔히 발생할 수 있는 SW의 버그 논쟁이 최근들어 다시 가열되고 있다. 이는 최근 국내 유력신문에 「윈도95」 내장 공학용 전자계산기 일부기능에 오류가 있다는 내용이 보도되면서 발단이 됐다.
가령 소수 0.58에 정수 100을 곱(*)한 다음 정수값만 취하라(INT)라는 명령을 내렸을 때 윈도95 계산기는 58이 아닌 57을 출력한다는 것이 이 기사의 골자였다.
이같은 내용이 보도되자 (주)마이크로소프트측은 비공식이긴 하지만 『INT 오류는 우리로서도 어쩔 수 없는 중앙연산장치(CPU) 계산방식의 문제이다. 비주얼베이식 등에서 계산기 모듈을 이용하는 개발자 대부분은 이 오류를 이미 알고 있으며 실제로는 이를 인식하는 보완 명령,이를테면 CINT와 같은 기능을 사용하고 있다』는 반응을 보였다.
요컨대 이번 사건은 컴퓨터가 수행하는 독특한 곱셈식을 기사 제보자가 이해하지 못한데서 일어난 해프닝이라는 것이다.
이번 사건의 경우 컴퓨터는 CPU의 레지스터 특성에 따라 < 0.58*100>이라는 곱셈식을 <0.58+0.58+0.58....>이라는 덧셈식으로 재해석해서 계산하게 된다. 이 방식은 하드웨어 형태의 공학계산기에서도 그대로 채택돼 동일한 오류가 발생하는 것으로 알려지고 있다.
이번 논쟁에 앞서 지난해 3월에는 한글과컴퓨터가 「한글3.0a」의 버그 논쟁에 휘말렸던 적이 있었다. 비슷한 경우로는 93년 큰사람컴퓨터의 「이야기6.0」 등에서 수많은 버그 논쟁이 있었다.
국산 SW로서는 최고의 지명도를 갖고 있는 두 제품의 버그는 이를테면 자주 실행중단(다운)되거나 프린터 출력에 이상이 있는 등 제품의 치명적 오류에 해당되는 것이었다.
한글과컴퓨터와 큰사람컴퓨터 등은 이 오류를 자동 교정해주는 패치(Patch)파일을 긴급 수혈하는 등 갖은 노력을 기울였으나 사용자들은 이들 제품을 철저하게 외면해 버렸다. 한글과컴퓨터가 「한글3.0a」의 오류 때문에 기업경영 자체가 휘청거렸음은 이미 널리 알려진 사실이다.
진위야 어쨌든 이와같은 버그 논쟁은 제품 개발사나 공급회사의 고민을 단적으로 드러내주고 있는 사례라고 할수 있다.
다른 분야에서도 그렇지만 SW의 버그는 특히 해당 기능의 중요도에 따라 자칫 제품의 생명과 직결되는 일이 비일비재하다. 수백개의 화려한 기능 보다는 단 한점의 실수 때문에 제품 전체의 신뢰성에 치명적 손상을 입을 수 있는 것이 바로 SW의 특성이다. 이런 점을 감안해서 개발사들은 SW가 시판되기 직전까지 최고 수만번에 걸친 버그테스트를 실시하는 것이 일반적이다.
개발사들은 보통 알파, 베타, 프리뷰(파이널) 등 3단계에 걸쳐 버그 데스트를 실시하는데 알파는 내부 의견을 조율하는 단계로서 일종의 SW 체형 갖추기라고 할수 있다. 베타는 외부 전문가들이나 언론 등을 통해 선을 보이는 단계로서 제품의 안정성과 신뢰성, 실행 상의 일반 오류 등을 알아보기위해 실시된다. 정식 제품과 거의 동일한 프리뷰는 시판에 앞서 일반 사용자를 대상으로 실시하는 것으로서 엄밀하게는 상품화 가능성을 점쳐보는 단계라 할 수 있다.
이번 윈도95 공학계산기의 기능 오류 사건은 개발사나 전문가들이 사전에 인지하고 있었던 것을 뒤늦게 한 사용자가 발견한 것에 불과하다. 그러나 찻잔 속에 태풍쯤으로 끝날 수도 있었던 이 사건은 다국적기업 마이크로소프트에 대한 정서나 컴퓨터환경과는 무관한 또다른 외적 요소에 의해 본질 이상으로 확대되고 있는 듯한 인상이다. 물론 공학계산기가 자주 사용되거나 프로그램 전제에 미치는 영향이 적지 않았을 경우 이 문제는 조기에 사건화됐을지도 모른다.
그러나 세계 SW산업을 좌지우지하고 있는 마이크로소프트 측에도 문제가 없었던 것은 아니다. 보편적인 사용자들을 위해서는 아무리 미미한 오류라도 추가고지문(readme.txt)이나 안내문 등을 통해 사전에 고지했어야 했다는게 업계 전문가들의 지적이다.
<서현진 기자>