Tất tần tật về các Lỗi phần mềm
- Tháng Chín 1, 2021
- Posted by: codestar
- Category: Uncategorized
Chắc hẳn hầu hết chúng ta đều đã phải trải qua khoảng hơn chục năm học tiếng anh và không ít trong số chúng ta một thời đau đầu ngán ngẩm vì phải phân biệt, ghi nhớ những từ có nghĩa tương đồng hay sát nghĩa nhau, nhưng cách sử dụng lại hoàn toàn khác nhau.
Chẳng hạn, trong nghĩa tiếng Việt chỉ có từ “lỗi”, mà quay ra Tiếng Anh lại có biết bao nhiêu từ, nào là mistake, fault, failure, error,…
Lấy một ví dụ như vậy để sát nhất với thực tế chủ đề bài chia sẻ hôm nay của mình, đó là Lỗi phần mềm. Trong quá trình phát triển phần mềm, không ai trong chúng ta có thể tránh khỏi thứ được gọi là lỗi phần mềm. Vậy lỗi phần mềm là gì và nó xuất hiện khi nào? Cùng tôi bắt đầu tìm hiểu qua bài viết bên dưới nhé.
Các thuật ngữ về Lỗi phần mềm
Trong chuyên ngành Công nghệ phần mềm, có một số thuật ngữ được sử dụng để gọi tên lỗi phần mềm như: Defect (nhược điểm), Fault (khuyết điểm), Failure (sự thất bại), Anomaly (sự bất thường), Variance (biến dị), Incident (rắc rối), Problem (vấn đề), Error (lỗi), Bug (lỗi), Inconsistency (mâu thuẫn).
Tùy từng hoàn cảnh, các công ty sẽ lựa chọn sử dụng các thuật ngữ về lỗi phần mềm khác nhau. Đọc đến đây, chắc mọi người cũng đã tưởng tượng ra hàng tá các từ ngữ chuyên ngành liên quan, phức tạp đúng không? Về cơ bản, những thuật ngữ chúng ta hay gặp và thường sử dụng nhất chỉ 4 từ sau: Bug, Defect, Error và Failure.
Vậy khi nào các Lỗi này sẽ xuất hiện?
Lỗi lầm, khuyết điểm là thứ con người không bao giờ muốn gây ra, hay mắc phải. Tuy nhiên con người là không hoàn hảo và việc sót lỗi và có sai phạm là điều hoàn toàn có thể xảy ra. Điều đáng quan tâm ở đây là sau các lỗi đó, chúng ta sẽ hoàn thiện hơn, hạn chế hơn số lượng lỗi xảy ra. Và để hạn chế được lỗi, chúng ta cần xác định rõ được nguyên nhân sâu xa Lỗi đó bắt nguồn từ đâu? Cùng tôi tìm hiểu về nguyên nhân gây ra 4 loại lỗi thường gặp nhé:
BUG: Là lỗi trong một module hoặc hệ thống mà nó không thực hiện đúng chức năng như yêu cầu. Các bạn Developers chắc hẳn đều rất dị ứng với từ này cho xem. ^^ LOL
DEFECT: Lỗi trong quá trình phát triển (coding) hoặc lỗi logic làm cho chương trình hoạt động sai yêu cầu đề ra. (cơ bản là giống định nghĩa bug).
ERROR: Là hành động của con người dẫn đến kết quả sai.
FAILURE chính là sự khác biệt giữa kết quả thực tế trên màn hình và kết quả mong đợi của một function, hệ thống hoặc service nào đó.
Từ phân tích về nguyên nhân gây ra từng loại Lỗi ở trên thì có thể thấy Lỗi phần mềm xuất hiện khi xảy ra một trong các vấn đề dưới đây:
– Phần mềm không thực hiện một số chức năng giống như mô tả trong Spec
– Phần mềm thực hiện một số chức năng mà Spec yêu cầu nó không được thực hiện
– Phần mềm thực hiện một số chức năng không được đề cập trong Spec
– Phần mềm không thực hiện một số việc mà Spec không đề cập tới, nhưng là những việc nên làm
Dưới quan điểm của Tester, phần mềm là khó hiểu, khó sử dụng, hoạt động chậm đối với người sử dụng
Như vậy, đến đây, chúng ta có thể phân biệt được thế nào là Bug, thế nào là Error, Failure hay Defect. Cơ bản hình dung là con người tạo ra Error trong tài liệu, trong code, khiến xảy ra Bug, Defect trong code, dẫn đến việc hoạt động chương trình gây ra Failure.
Quy trình xử lý lỗi phần mềm
Như đã phân tích ở trên, lỗi trong phần mềm, trong coding là không thể tránh khỏi, chỉ có thể khắc phục bằng cách hạn chế tối thiểu chúng. Vậy khi xảy ra lỗi rồi, chúng ta phải xử lý ra sao? Cũng giống như những thành phần khác, Lỗi phần mềm cũng cần có 1 quy trình xử lý riêng biệt gồm 10 bước chi tiết như bên dưới:
Bước 1: NEW (Mới): Khi tester thực thi test, đầu ra của test case đó không đúng như kết quả mong đợi.
Bước 2: OPEN (Mở): Lỗi được log lên các tool tracking Bug bởi Testers. Team lead cần xác minh lại bug đó có thật sự là bug hay không, khi đó bug có trạng thái OPEN.
Bước 3: REJECTED (Từ chối): Một bug được đánh dấu là Rejected khi bug đó không hợp lệ. Nghĩa là thỉnh thoảng tester có thể hiểu sai chức năng và có thể đánh dấu chức năng là bug. Trong trường hợp này, bug sẽ bị reject sau khi team lead kiểm tra lại
Bước 4: DUPLICATE (Trùng lặp): Nếu bug là hợp lệ, team lead sẽ kiểm tra xem lỗi đó đã được người khác log trước đó hay chưa. Nếu đã có người khác log nó, thì team lead sẽ đánh dấu nó là DUPLICATE.
Bước 5: DEFERRED (Hoãn lại): Nếu bug không bị duplicate, nhưng lại không thuộc bản release hiện tại thì sẽ được đánh dấu là Deferred.
Bước 6: ASSIGNED (Gán bug): Khi bug tìm thấy là hợp lệ, duy nhất và thuộc bản release hiện tại, thì team lead sẽ gán bug đó cho developer.
Bước 7: FIX (Sửa): Khi nhận được bug từ team lead, developer sẽ thực hiện thay đổi để fix bug cho đúng với yêu cầu và đẩy lại cho tester kiểm tra lại lỗi đó.
Bước 8: RE-TESTING (Test lại): Sau khi fix xong bug và chức năng/tính năng đã sẵn sàng để test, thì tester sẽ thực hiện lại những test case lỗi và xác minh lại xem nó đã chạy đúng hay chưa. Việc này gọi là RE-TESTING.
Bước 9: CLOSED (Đóng quy trình) Khi bug đã được fix, đã được test lại và nó chạy đúng như yêu cầu thì tester sẽ đánh dấu nó là CLOSED.
Bước 10: RE-OPENED: Có 2 tình huống mà chúng ta cần phải re-open lại bug:
– Tình huống 1: Khi developer fix bug và tester thực hiện test lại nó, nhưng sau khi re-test, bug đó vẫn xảy ra thì tester sẽ RE-OPEN lại bug và assign cho developer
– Tình huống 2: Có trường hợp lỗi đã fix và được close xuất hiện lại. Trong trường hợp này, tester cần RE-OPEN lại bug đã close và gán nó cho developer.
Để được đi sâu hơn vào chi tiết về Bug và được thực hành các thao tác trực tiếp trên tool Jira, mời các bạn tham gia Khóa học Tester cho người mới tại Học viện Đào tạo CodeStar: https://codestar.vn/product/testing-for-freshers/
CodeStar tổ chức đào tạo theo phương pháp đào tạo: On-Job trong dự án THẬT với thời gian thực hành lên đến trên 60% thời lượng khóa học. Vì vậy bạn có thể nhanh nâng cao kỹ năng test và thành thạo các công việc thực tế của một người Tester trong dự án.
Hơn nữa, bạn sẽ được tham gia học cùng các chuyên gia là các Anh/chị Trưởng phòng hoặc Giám đốc kiểm thử phần mềm với trên 15 năm kinh nghiệm trong nghề kiểm thử phần mềm tại các doanh nghiệp IT hàng đầu Việt Nam. Ngoài các kiến thức chuyên môn, bạn sẽ được Giảng viên chia sẻ những kinh nghiệm thực tế, các tips, mẹo để thực hiện test hiệu quả nhất.
Một điều không thể bỏ lỡ khi đăng ký tham gia khóa học Tester cho người mới bắt đầu tại CodeStar, bạn sẽ được tặng kèm khóa học: Chinh phục nhà tuyển dụng trị giá 2,000,000Đ giúp Bạn có một CV ấn tượng với nhà Tuyển dụng và có đủ kỹ năng và tự tin tham gia phỏng vấn cùng các đối tác của CodeStar và các nhà tuyển dụng bên ngoài.
Và ngay sau khi kết thúc các khóa học Tester, 100% Học viên các lớp đều được hỗ giới thiệu việc làm tại các doanh nghiệp đối tác của CodeStar như Công ty TNHH Công nghệ phần mềm Kaopiz, Trung tâm Kiểm thử phần mềm CMC-Global, LG Việt Nam,…
Cảm ơn các bạn đã đón đọc, hẹn gặp các bạn tại CodeStar nhé!!! ^..^