Nguyên nhân của lỗi phần mềm
Tại sao đôi khi hệ thống phần mềm không hoạt động chính xác?
Nếu ai đó mắc lỗi (error) hoặc nhầm lẫn trong việc sử dụng phần mềm, điều này có thể trực tiếp dẫn đến sự cố – phần mềm được sử dụng không đúng cách và do đó không hoạt động như cách chúng ta mong đợi. Tuy nhiên, con người thiết kế và xây dựng phần mềm và họ có thể mắc lỗi trong quá trình thiết kế và xây dựng phần mềm đó. Những sai lầm này có nghĩa là có những sai sót trong bản thân phần mềm. Đây được gọi là các defect hoặc đôi khi là bug hoặc fault.
Khi mã phần mềm (code) đã được xây dựng, nó được thực thi và sau đó bất kỳ lỗi nào có thể khiến hệ thống không thực hiện được những gì nó nên làm (hoặc làm điều gì đó không nên làm), gây ra một failure. Không phải tất cả các defect đều dẫn đến failure; một số không hoạt động trong mã code và chúng ta có thể không bao giờ nhận thấy chúng.
Những sai lầm (mistake) của chúng ta có quan trọng không?
Hãy nghĩ về hậu quả của những sai lầm. Đồng ý rằng bất kỳ con người nào, bao gồm cả lập trình viên và người kiểm tra, đều có thể mắc lỗi. Những lỗi này có thể tạo ra các defect trong mã phần mềm, hệ thống hoặc trong một tài liệu. Nếu một lỗi trong mã code được thực thi, hệ thống có thể dẫn đến failure.
Các hệ thống và dự án phần mềm rất phức tạp. Nhiều sản phẩm được xây dựng trong một dự án, và con người gần như chắc chắn sẽ mắc lỗi và sai sót trong tất cả các hoạt động của quá trình xây dựng sản phẩm. Một số trong số này được tìm ra và loại bỏ, nhưng rất khó để con người tự tìm ra lỗi của mình trong khi xây dựng một sản phẩm.
Defect và failure?
Các defect trong phần mềm, hệ thống hoặc tài liệu có thể dẫn đến failure, nhưng không phải tất cả các defect đều gây ra failure. Nếu một sai lầm không dẫn đến một defect hoặc một mistake không dẫn đến một failure, thì điều đó không có ý nghĩa quan trọng – chúng ta thậm chí có thể không biết mình đã mắc error.
Sự thất bại của chúng ta là một hỗn hợp của việc thiếu kinh nghiệm, không có thông tin chính xác, hiểu sai, hoặc khi không quan tâm, mệt mỏi hoặc chịu áp lực về thời gian. Tất cả những yếu tố này ảnh hưởng đến khả năng đưa ra quyết định hợp lý – bộ não của chúng ta hoặc không có thông tin hoặc không thể xử lý thông tin đủ nhanh.
Ngoài ra, chúng ta có nhiều khả năng mắc lỗi khi xử lý các vấn đề kỹ thuật hoặc kinh doanh phức tạp, quy trình kinh doanh phức tạp, mã code hoặc cơ sở hạ tầng, công nghệ thay đổi hoặc nhiều tương tác hệ thống. Điều này là do bộ não của chúng ta chỉ có thể đối phó với một lượng phức tạp hoặc thay đổi hợp lý – khi được yêu cầu xử lý nhiều hơn, bộ não có thể không xử lý thông tin một cách chính xác.
Defect là nguyên nhân dẫn đến failure?
Không phải chỉ có những defect mới là nguyên nhân dẫn đến failure. Các failure cũng có thể do điều kiện môi trường gây ra: ví dụ như vụ nổ bức xạ, từ trường mạnh, trường điện tử hoặc ô nhiễm có thể gây ra lỗi trong phần cứng (hardware) hoặc phần firmware. Những lỗi đó có thể ngăn cản hoặc thay đổi việc thực thi phần mềm.
Các failure cũng có thể phát sinh do lỗi của con người khi tương tác với phần mềm, có thể là nhập sai giá trị đầu vào hoặc đầu ra bị hiểu sai.
Cuối cùng, failure cũng có thể do ai đó cố tình gây ra lỗi trong hệ thống.
Khi chúng ta nghĩ về những gì có thể xảy ra sai lầm, chúng ta phải xem xét những defect và failure phát sinh từ:
- Error trong đặc tả, thiết kế và triển khai phần mềm và hệ thống
- Error sử dụng hệ thống
- Điều kiện môi trường
- Việc cố ý gây thiệt hại
- Hậu quả tiềm tàng của các error trước đó, phá hoại cố ý, defect và failure.
Phần tiếp theo, chúng ta sẽ tìm hiểu thêm về nội dung khi nào thì defect phát sinh.
Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây.