7 loại lỗi phần mềm mà mọi nhân viên kiểm thử nên biết
Ở bài lần này mình xin giới thiệu về các loại lỗi phần mềm mà mọi nhân viên kiểm thử nên biết. Có rất nhiều loại lỗi phần mềm. Dù là loại gì thì lỗi vẫn là lỗi. Nhưng đôi khi ta nên hiểu bản chất, hàm ý của nó và nguyên nhân để thực thi nó tốt hơn. Điều này giúp phản ứng nhanh hơn và quan trọng ...
Ở bài lần này mình xin giới thiệu về các loại lỗi phần mềm mà mọi nhân viên kiểm thử nên biết. Có rất nhiều loại lỗi phần mềm. Dù là loại gì thì lỗi vẫn là lỗi. Nhưng đôi khi ta nên hiểu bản chất, hàm ý của nó và nguyên nhân để thực thi nó tốt hơn. Điều này giúp phản ứng nhanh hơn và quan trọng nhất là phản ứng thích hợp. Ở đây, chúng ta sẽ trao đổi về các loại lỗi phần mềm chung và cách để xác định chúng trong suốt quá trình kiểm thử với những ví dụ và bài tập đơn giản. Hãy cùng bắt đầu định nghĩa lỗi phần mềm nhé.
Software Errors và Bugs
Như được định nghĩa trên Wikipedia “error là sai lệch giữa sự chính xác hay đúng đắn” và “software bug là 1 lỗi, lỗ hổng, trong chương trinh hay hệ thống máy tính gây ra kết quả không chính xác hoặc không mong muốn hoặc phải hành xử theo cách không mong muốn”. Do vậy có thể suy ra:
- Error là sự khác biệt của kết quả thực tế so với kết quả được mong đợi.
- Error là 1 loại của software bugs
- Error có thể được đưa ra do yêu cầu không đầy đủ hoặc không chính xác hoặc vấn đề nhập dữ liệu của con người.
Các loại software error chung:
#1 ) Lỗi chức năng:
Chức năng là cách phần mềm được kỳ vọng hoạt động. Phần mềm có lỗi chức năng nếu cái được bạn hi vọng làm lại không được làm. Kiểm tra màn hình chụp bên dưới: Chức năng mong muốn của button Cancel là màn hình ‘Tạo mới dự án’ nên đóng lại và mọi thay đổi không được lưu lại (ví dụ: không có dự án nào được tạo). Nếu nút Cancel không thể click vào thì đó là lỗi chức năng.
#2 ) Lỗi giao tiếp:
Những lỗi này xảy ra trong giao tiếp từ phần mềm đến người dùng cuối. Mọi thứ mà người sử dụng cuối cần biết để sử dụng phần mềm nên được tạo sẵn trên màn hình. Một vài ví dụ của lỗi giao tiếp như:
- Không có sẵn hướng dẫn/menu Help
- Các tính năng ở lần chuyển giao này không được đề cập trên menu Help
- Nút có tên là ‘Save’ không được xóa bỏ file…
#3 ) Lỗi thiếu lệnh:
Cái này xảy ra khi lệnh mong muốn đang thiếu. Hãy xem hình chụp dưới: Màn hình này cho phép người dùng tạo dự án mới. Tuy nhiên lại không có lựa chọn cho người dùng thoát khỏi màn hình mà không tạo dự án. Do lựa chọn/button ‘Cancel’ không được cung cấp đến người dùng, đây là 1 lỗi thiếu lệnh.
#4 ) Lỗi cú pháp:
Lỗi cú pháp là từ bị sai chính tả hoặc câu không đúng ngữ phá và rất dễ thấy khi kiểm thử GUI phần mềm. Hãy lưu ý răng chúng ta không đề cập đến lỗi cú pháp trong code. Trình biên dịch sẽ cảnh báo người phát triển về lỗi cú pháp xảy ra trong code. Chú ý từ sai chính tả là ‘Cancel’: Chú ý thông báo sai ngữ pháp bên dưới:
#5) Lỗi xử lý lỗi:
Bất cứ lỗi nào xảy khi khi người dùng đang tương tác với phần mềm đều cần được xử lý bằng cách thức rõ rang và có ý nghĩa nhất. Nếu không, sẽ bị gọi là Error Handling Error(lỗi xử lý lỗi). Hãy nhìn vào ảnh bên dưới. Thông báo lỗi không chỉ ra dấu hiệu của lỗi thực sự ở đâu. Nó đang thiếu trường bắt buộc, lỗi lưu trữ, lỗi tải trang hay lỗi hệ thống? Do vậy, nó là ‘Error Handling Error’.
#6) Lỗi tính toán:
Những lỗi này xảy ra do lỗi sau:
- Logic kém
- Công thức sai
- Không khớp kiểu dữ liệu
- Lỗi coding
- Lỗi gọi hàm, … Năm 1999, NASA mất máy bay khí hậu sao Hỏa vì một trong những nhà thầu mà NASA thuê đã sử dụng các đơn vị tiếng Anh thay vì hệ thống số liệu dự kiến, điều này làm cho các động cơ của quỹ đạo hoạt động không chính xác. Vì thế mà chiếc tàu sân bay đã rơi gần như ngay lập tức khi nó đến sao Hỏa.
#7) Lỗi luồng điều khiển:
Luồng điều khiển của 1 phần mềm mô tả sẽ làm gì tiếp theo và trong điều kiện nào. Ví dụ, giả sử 1 hệ thống mà người dùng phải điền vào 1 form và các lựa chọn có sẵn: ‘Save’, ‘Save and Close’ và ‘Cancel’. Nếu người dùng click vào button ‘Save and Close’, thông tin người dùng trong form nên được lưu lại và form đóng lại. Nếu click vào button mà không đóng form thì nó là lỗi luồng điều khiển.
Thực hành:
Hãy định nghĩa những lỗi bên dưới thuộc loại nào nhé. Bài tập #1: Đây là những lỗi xử lý lỗi. Bài tập #2: Đây là lỗi thiếu lệnh. Button Cancel được yêu cầu nhưng lại đang bị thiếu. Hơn nữa thì cả button ‘Proceed’ và ‘Delete ’ bị thừa và thực hiện chức năng giống nhau. Bài tập 3: Đây là lỗi cú pháp.
Bước tiếp theo:
Việc báo cáo lỗi được phát hiện là rất cần thiết. Để có kết quả tốt nhất , hãy báo cáo ngay lập tức. Bao gồm mô tả, ưu tiên, mức độ nghiêm trọng và các bước để tạo lại kịch bản, chụp màn hình (nếu có) trong báo cáo lỗi.Để biết thêm thông tin về cách viết báo cáo lỗi một cách hiệu quả, hãy xem bài viết này.
Kết luận:
Xác định lỗi, phân loại, báo cáo và thậm chí là loại trừ là một phần của hoạt động kiểm soát chất lượng.
Tuy nhiên phòng tránh vẫn hơn là chữa. Điểm mấu chốt của Quản lý chất lượng phần mềm là thiết lập các quy trình giám sát và kiểm tra tại mỗi giai đoạn của Chu kỳ vòng đời phát triển phần mềm.
Mục đích là để phát hiện các lỗi càng sớm càng tốt. Điều này là do chi phí để tìm và sửa lỗi tăng lên đáng kể theo tiến trình phát triển phần mềm.Do đó xác định lỗi sớm là rất cần thiết.
Sửa lỗi là giá rẻ nhất trong giai đoạn phân tích yêu cầu, dần dần đắt với từng giai đoạn và đắt nhất trong giai đoạn bảo trì sau khi phát hành.
Là kỹ sư QA, chúng ta có thể hoặc không thể trực tiếp tham gia vào việc định nghĩa các yêu cầu.
Chúng ta cũng có thể có ít hoặc không có kiểm soát trực tiếp về chất lượng yêu cầu.
Do đó, điều quan trọng là có thể xác định, tìm kiếm và báo cáo bất kỳ lỗi nào mà ta gặp phải trong giai đoạn thử nghiệm.
Nguồn tham khảo:
http://www.softwaretestinghelp.com/types-of-software-errors/