Cách xử lý các lỗi mà tôi nghĩ là tôi đã sửa, nhưng tôi không hoàn toàn chắc chắn


13

Có một số loại bọ rất khó sinh sản, rất hiếm khi xảy ra và có vẻ ngẫu nhiên. Nó có thể xảy ra, rằng tôi tìm thấy một nguyên nhân có thể, khắc phục nó, kiểm tra chương trình và không thể tái tạo lỗi. Tuy nhiên, vì không thể tái tạo một cách đáng tin cậy lỗi và nó rất hiếm khi xảy ra, làm thế nào tôi có thể chỉ ra điều này trong một bugtracker? Cách phổ biến để làm điều đó là gì?

Nếu tôi đặt statuscố định và solutioncố định, điều đó có nghĩa là một cái gì đó hoàn toàn cố định, phải không?

Có phải thông thường là đặt statuscố định và solutionmở, để chỉ cho người kiểm tra rằng "có thể đã sửa, nhưng cần chú ý nhiều hơn để đảm bảo"?

Chỉnh sửa: hầu hết (nếu không phải tất cả) bugtrackers có hai thuộc tính cho trạng thái của một lỗi, có thể các tên không giống nhau. Bởi statustôi là mới, được giao, cố định, đóng cửa, vv , và bởi solutiontôi là mở (mới), cố định, không thể giải quyết, không tái sản xuất, nhân bản, không phải là một lỗi , vv


3
Điều này là hơi cụ thể để theo dõi lỗi của bạn. Những giá trị khác bạn có thể gán cho trạng tháigiải pháp ?
Scarfridge

Trong một số trình theo dõi lỗi, có trạng thái được giải quyết và trạng thái khác bị đóng. Chỉ người QA mới được phép đặt trạng thái thành đóng, nhưng nhà phát triển có thể đặt trạng thái thành đã giải quyết.
Brian

Câu trả lời:


8

Có phải thông thường là đặt trạng thái thành cố định và giải pháp để mở, để chỉ ra cho người kiểm tra rằng "có thể đã sửa, nhưng cần chú ý nhiều hơn để đảm bảo"?

Dù thông thường hay không, đây là điều đúng đắn nên làm và bạn tự đặt ra lý do tại sao: dù thế nào, đó là một cách tiếp cận tốt để

cho người kiểm tra biết rằng "có thể nó đã được sửa, nhưng cần chú ý nhiều hơn để đảm bảo"


Lưu ý bên lề ngay cả khi trình theo dõi lỗi cụ thể không có trường như bạn mô tả solution, nhà phát triển ít nhất có thể thêm nhận xét dạng tự do giải thích ở trên.

... Và nếu trình theo dõi lỗi không cho phép thêm nhận xét cho vấn đề thì nó phải được thay thế bằng một bình luận. Khả năng thêm làm rõ biểu mẫu miễn phí là một tính năng cực kỳ quan trọng vì các vấn đề khác nhau quá nhiều để phù hợp với một số hình thức được xác định trước.


6

Nhóm thử nghiệm sẽ quyết định xem sự cố đã được giải quyết chưa và liệu nó có thể đóng lại không. Nếu có thêm hồi quy, tác dụng phụ của bản sửa lỗi hoặc nếu bản thân bản sửa lỗi không hiệu quả trong một kịch bản khác, vấn đề sẽ được mở lại. Nhưng nếu bạn đã thực hiện đủ thử nghiệm của nhà phát triển, thì tốt hơn là đánh dấu nó là cố định.


+1 - Đây là câu trả lời đơn giản nhất. Nếu bạn đã cố gắng hết sức, và bộ thử nghiệm của nhóm thử nghiệm đủ mạnh, bạn có thể làm gì hơn nữa?
ozz

3

Có những loại bọ rất khó sinh sản, rất hiếm khi xảy ra và có vẻ ngẫu nhiên. Nó có thể xảy ra, rằng tôi tìm thấy một nguyên nhân có thể, khắc phục nó, kiểm tra chương trình và không thể tái tạo lỗi.

Trên thực tế, nếu tôi không có kịch bản kiểm tra có thể lặp lại, tôi thậm chí sẽ không thử sửa lỗi như vậy trước đó. Nếu bạn muốn người kiểm tra chú ý hơn vào nó, hãy cho họ cơ hội để tạo ra một kịch bản có thể tái tạo.

Ví dụ: giả sử bạn thay đổi chương trình và một người thử nghiệm đầu tư 1 giờ vào việc cố gắng tái tạo lỗi và lỗi không bật lên - đã đủ một giờ chưa? Hoặc việc kiểm tra thêm là lãng phí thời gian vì lỗi đã được sửa?

Mặt khác, khi bạn không thay đổi chương trình và lỗi không xuất hiện sau 1 giờ, rất có thể người kiểm tra nên đầu tư thêm một giờ nữa để thử những thứ khác nhau. Và khi người kiểm tra đầu tư một ngày và không thể tái tạo lỗi nữa - nó có thực sự đáng để thử không?

Nói rằng, bạn có thể nghĩ về cách bạn mô hình hóa quá trình đó trong hệ thống theo dõi lỗi của bạn: không cố gắng sửa nó và bàn giao cho người kiểm tra có thể là một trạng thái lỗi như "mở". Nếu người kiểm tra không thể sao chép nó, thì rõ ràng là "không thể tái tạo". Hy vọng, điều này không xảy ra, họ tìm thấy một kịch bản có thể lặp lại, bạn có thể tìm ra nguyên nhân gốc của lỗi, sửa nó và đặt trạng thái thành "đã sửa". Cố gắng tránh đi vào một cái gì đó như "không biết nếu nó đã được sửa".


4
Đối với một số loại lỗi nhất định, kịch bản kiểm tra có thể lặp lại đơn giản là không tồn tại. Ví dụ: một lỗi liên quan đến thời gian có thể xảy ra trung bình 1 lần trong một triệu - nhưng không thể dự đoán liệu nó sẽ ở lần chạy thứ 3 hay thứ 535454. Tuy nhiên, các lỗi như vậy là lỗi và phải được sửa chữa.
Joonas Pulakka

3
@Joonas Pulakka: Tôi đồng ý. Và những lỗi như vậy có thể phụ thuộc vào hoàn cảnh bên ngoài. Trong trường hợp nhúng, chúng có thể phụ thuộc vào sự đột biến sức mạnh gây ra bởi một cái gì đó ngoài tầm kiểm soát của bạn. Không cố gắng khắc phục nó không phải lúc nào cũng là giải pháp tốt nhất, đặc biệt nếu tôi tình cờ tìm thấy mùi mã mà tôi nghi ngờ đó có thể là nguyên nhân của lỗi đó. Trong trường hợp này, tại sao tôi không nên sửa nó?
vsz

2
@JoonasPulakka: theo kinh nghiệm của tôi về các kịch bản có thể tái tạo, trong hầu hết các trường hợp mà mọi người nói "không thể", họ chỉ thiếu ý tưởng đúng để biến mọi thứ thành có thể. Trong ví dụ của bạn, người ta có thể thiết lập một kịch bản với vòng lặp "10 triệu lượt chạy", làm cho nó ít nhất có thể xảy ra để hiển thị lỗi trong một khoảng thời gian hợp lý.
Doc Brown

2
@vsz: bạn nên sửa nó, tất nhiên, nhưng điều tôi đề nghị là trước tiên bạn nên tạo một bài kiểm tra (hoặc cung cấp cho người kiểm tra một gợi ý những gì cần kiểm tra), sau đó sửa nó, chứ không phải ngược lại.
Doc Brown

2
@DocBrown là đúng, một cách khác để suy nghĩ về điều đó là đôi khi các lỗi đòi hỏi một cách tiếp cận thống kê để "tái tạo" chúng. Rất có thể có một bộ đầu vào / tình huống rất cụ thể tái tạo lỗi, nhưng bạn có thể KHÔNG biết những đầu vào này là gì và tập hợp các đầu vào có thể có thể quá lớn để lặp lại. Trong những trường hợp này, một cách tiếp cận là thu thập số liệu thống kê về sự xuất hiện của lỗi mỗi khi bạn cố gắng giải quyết nó. Có thể mất nhiều thời gian và kết quả có thể không mang lại cho bạn "sự tự tin" 100% theo nghĩa thống kê, nhưng đôi khi đó là tất cả những gì bạn có.
Angelo

0

Đôi khi bằng chứng duy nhất bạn có là hoàn toàn thống kê, ví dụ: nó xảy ra một hoặc hai lần một tháng, nhưng dường như không liên quan đến bất cứ điều gì. Đây là loại lỗi tồi tệ nhất để chẩn đoán và giải quyết mà tôi đã gặp phải, bởi vì bạn không thể biết liệu các bản sửa lỗi của mình có ảnh hưởng với bất kỳ sự chắc chắn nào không. Một trong những điều cuối cùng tôi phải giải quyết đã kết thúc bằng một sửa chữa thống kê: tần suất của triệu chứng giảm xuống còn 10% mà chúng tôi bắt đầu. Mảnh cuối cùng không bao giờ được tìm thấy, hoặc có thể là nó, nhưng không ai có cách nào để nói.

Hai lời khuyên tôi có (1) cho rằng nhiều nguyên nhân có thể có hiệu lực cho đến khi bạn biết khác, và (2) đưa ra giả thuyết làm thế nào các triệu chứng có thể tồn tại, sau đó xé tan mọi dòng logic thậm chí có liên quan từ xa. Đi bộ sâu đôi khi là phương tiện duy nhất để kết thúc thỏa mãn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.