Có một sự thật phổ biến là những phần mềm trong quá trình phát triển luôn có bug (lỗi), thậm chí đối với sản phẩm đã được phát hành và đưa vào sử dụng. Ngay cả khi rất nhiều nỗ lực được bỏ ra để phát triển sản phẩm thì kết quả cuối cùng vẫn là một chương trình có chứa bug.
Những lỗi này dường như khá nhỏ và chỉ hơi phiền toái đối với người dùng bình thường. Không có lỗi thì sản phẩm hoạt động mượt mà trơn tru, còn nếu có lỗi thì người dùng vẫn chấp nhận và tiếp tục sử dụng. Tuy nhiên, đôi khi những lỗi bé bé ấy lại có thể gây ra thảm hoạ, kết cục là tổn thất về người và tài sản.
Bài viết này sẽ trình bày về một vài lỗi nghiêm trọng đã từng xảy ra trong lịch sử ngành khoa học máy tính.
Ariane 5 là tên lửa đẩy để hỗ trợ phóng tàu vũ trụ. Nó đã phát nổ khoảng 40 giây sau khi khởi động do một lỗi rất phổ biến là tràn bộ nhớ đối với số nguyên (integer overflow). Lỗi này xảy ra khi chúng ta cố gắng lưu trữ một số nguyên lớn hơn giá trị lớn nhất có thể lưu được trong bộ nhớ đối với một kiểu dữ liệu cụ thể. Theo tính toán, thiệt hại của sự kiện này lên đến 370 triệu USD.
Trong suốt những năm 1960, những kỹ sư máy tính chỉ sử dụng 2 chữ số để biểu diễn đơn vị đo thời gian năm. Theo đó, năm 1970 sẽ được biểu diễn là 70. Lý do của việc làm này là để giảm kích thước giá trị khi lưu trữ vào bộ nhớ: chỉ lưu 2 chữ số cuối thay vì phải lưu cả 4 chữ số biểu diễn năm. Cách thức lưu trữ này hoạt động tốt đến tận ngày 31/12/1999. Nhưng, sang ngày 1/1/2000, nhiều máy tính hiểu nhầm đó là năm 1900. Để giải quyết bug bé bé này, các chuyên gia máy tính đã phải làm việc rất nhiều.
Một người đàn ông tên là Chris Reynolds đến từ bang Pennsylvania, Hoa Kỳ đã trở thành người giàu nhất thế giới khi hệ thống tín dụng của PayPal đã tính toán nhầm, vô tình gia tăng số tiền trong tài khoản của người này lên con số lớn không thể tưởng tượng được: 1 triệu tỷ USD! (Hiện tại, GDP một năm của cả thế giới vẫn chưa đạt mốc 100 nghìn USD)
28 lính Mỹ đã thiệt mạng và 98 người bị thương khi một tên lửa của Iraq tấn công vào doanh trại đồn trú của họ. Hệ thống đánh chặn đã thất bại trong việc phát hiện và ngăn chặn quả tên lửa này bởi vì có bug trong phần mềm máy tính.