Đặt một câu hỏi hay

Tôi có tham gia vài nhóm trên facebook và skype để trao đổi về testing, có khá nhiều câu hỏi được đặt ra mà không có câu trả lời phù hợp và nguyên nhân chủ yếu chính là do cách đặt câu hỏi thiếu quá nhiều thông tin và không nêu rõ vấn đề cần hỏi, nhìn chung là chưa hay. Đặt câu hỏi khi tham gia một cộng đồng không chỉ đơn giản là để giải quyết khó khăn của bản thân, mà từ câu hỏi đó những thành viên khác có thể học hỏi thêm một điều gì đó mới mẻ, có thể giải quyết thêm một vấn đề khó khăn nào đó nên việc đặt một câu hỏi là quan trọng và cần sự đầu tư nghiêm túc. Tôi viết bài này để chia sẻ suy nghĩ và kinh nghiệm của bản thân về việc đặt câu hỏi sao cho hay và có được những câu trả lời hữu ích khi tham gia một cộng đồng.

ask

1. Nhận diện một câu hỏi không hay:

“Anh chị chia sẻ giúp em kinh nghiệm để học test với, em mới vào nghề chưa biết gì cả”.

Câu hỏi này không hay vì nó quá chung chung, không đề cập đến một vấn đề cụ thể nào. Nếu phải chia sẻ về cái gọi là “kinh nghiệm test” thì không ai có đủ thời gian để gõ ra cũng như chia sẻ tức thì được, và thậm chí có thời gian cũng không thể chia sẻ hết nỗi. Còn thông tin “mới vào nghề” cũng không giúp ích gì cho câu hỏi cả. Nhưng rất buồn vì đây là một trong các câu hỏi chúng tôi hay gặp nhất.

Một vài câu hỏi không hay khác:
Hỏi: “Cho mình hỏi những chương trình nào test web thông dụng vậy?”
Đáp: Làm sao chúng tôi có thể giúp khi không biết bạn cần test web là test những gì trên web (giao diện, chức năng hay tốc độ load)? rồi làm sao chúng tôi biết được bạn đang dùng Windows, MacOS hay Linux? Thật sự chúng tôi cần nhiều thông tin hơn để lọc và đưa ra một gợi ý phù hợp.

Hỏi: “Bạn nào có mẫu về testcase chia sẻ mình với”
Đáp: Câu hỏi này đáng lẽ không nên hỏi, bạn có thể tự google hàng trăm mẫu testcase đang chia sẻ và tìm xem cái nào phù hợp. Hay bạn không có thời gian để tìm? hay không biết cái nào là phù hợp? hay bạn mong muốn chúng tôi mang cái đang làm ở cty gởi cho bạn?. Thay vì hỏi bạn nên tự tìm kiếm và tìm hiểu, sau đó làm một bản testcase theo những gì mình biết và gởi chúng tôi góp ý, mọi người sẽ rất vui lòng vì ít ra họ thấy được sự cố gắng của bạn, thậm chí học hỏi thêm được chút ít từ bản testcase chưa hoàn thiện đó.

Hỏi: “Có bạn nào trong nhóm đang làm về Selenium không?”
Đáp: Đây là một câu hỏi ư? bạn đang cần gì? bạn tìm họ vì mục đích gì? hay bạn nghĩ rằng có ai đó giỏi selenium sẽ giơ tay lên? Nếu gặp khó khăn gì về một vấn đề nào đó hãy hỏi thẳng, tránh hỏi vòng vo như vậy.

2. Câu hỏi hay là gì?

  • Là một câu hỏi chứa đầy đủ thông tin và phải cụ thể: Nó bao gồm các thông tin như bạn đang làm gì? Vấn đề bạn gặp phải là gì? Mong muốn của bạn là gì? Thông tin về hệ thống/cấu hình hiện tại như thế nào (nếu hỏi về kỹ thuật). Nếu có thể, hãy cung cấp hình ảnh để người đọc dễ dàng biết được bạn đang gặp vấn đề gì.
  • Trong câu hỏi phải cho mọi người thấy được bạn đã làm những gì để giải quyết vấn đề của mình hay chưa? Bạn đã google để tìm thông tin và thử tự giải quyết hay chưa? Bạn đã đọc tài liệu hướng dẫn chưa? Bạn đã thử nghiệm trước khi hỏi chưa? Nếu chưa thì bạn nên làm những thứ đó trước khi hỏi, đa số các câu trả lời đều có trên google chỉ có điều bạn không chịu tìm trước mà thôi. Vậy tại sao mọi người lại bỏ thời gian để tìm câu trả lời giúp bạn trong khi bạn chưa chịu đầu tư thời gian cho chính mình?
  • Đặt câu hỏi chung một dòng. Hãy viết tất cả trong một dòng, sau khi hoàn chỉnh hãy enter để gởi. Không nên hỏi dạng chat mỗi dòng một ý.
  • Thông báo khi bạn đã tìm được câu trả lời (kèm chi tiết về giải pháp): việc này sẽ giúp mọi người biết câu hỏi bạn đã có giái pháp và không mất thời gian tìm kiếm câu trả lời nữa, ngoài ra thông tin bạn đưa lên sẽ giúp những người khác có câu hỏi tương tự không phải tìm kiếm thêm.
  • Chỉ nêu vấn đề, không phỏng đoán hay đánh giá, điều này sẽ đánh lạc hướng người khác hiểu sai theo bạn. Ví dụ máy bạn bị lỗi abc thì hãy nêu rõ lỗi đó, không nên đoán “tôi nghĩ do máy tôi bị nhiễm virus nên bị lỗi này…”, việc phỏng đoán sai có thể phá hỏng một câu hỏi hay.
  • Không than vãn những câu như: em mới vào nghề, chưa chưa biết gì hết, em mới làm test nên…Những câu than vãn này không giúp ích được gì cho câu trả lời nên bạn không cần ghi vào, điều đó chỉ khiến bạn trông có vẻ đáng thương.
  • Tôn trọng quy tắc cộng đồng:
    • Tham gia nhóm là để trao đổi thông tin và giải quyết vấn đề cùng nhau, rất hạn chế việc pm hỏi riêng một thành viên nào (trừ trường hợp vấn đề đó không thể trao đổi chung).
    • Viết tiếng Việt có dấu rõ ràng, hạn chế các biểu tượng (smile icon) không cần thiết. Nhất là trên Skype vì những icon đó khá lớn và mất tập trung.
    • Lịch sự với cộng động, một câu hỏi bắt đầu bằng lời chào và kết thúc bằng câu cảm ơn luôn nhận được sự chào đón.
    • Hỏi đúng nơi cần hỏi và không lặp lại liên tục. Không spam các thông tin ngoài lề (vd tuyển dụng, báo mạng…).
    • Tìm hiểu về quy định của nhóm bạn đang tham gia, có một vài nhóm có quy tắc là thêm chữ “QA” hoặc “Q/A” trước mỗi câu hỏi, bạn cũng nên tuân theo.

 

Một số ví dụ về câu hỏi hay:

“Chào các bạn, mình đang tìm một tool để giả lập 100 user truy cập cùng lúc vào trang web. Mình đã tìm trên mạng và ra được một vài tools như Jmeter, Gatling, LoadRunner, LoadUI nhưng chưa biết cái nào đáp ứng tốt được các yêu cầu như: chạy trên windows và linux, giá cả phù hợp, có xuất report rõ ràng. Mình cảm ơn.”

Đáp: (câu hỏi này hay đây, anh ta biết rõ mình muốn làm gì và cũng cung cấp được kha khá thông tin cần thiết. Có vẻ anh ta cũng đã chịu khó tìm hiểu để có được một danh sách ứng dụng cần thiết, chúng ta nên giúp a ấy một tay).
Anh có thể dùng Jmeter, nó miễn phí, chạy được trên nhiều môi trường và đáp ứng được yêu cầu giả lập 100 user.

Hỏi: “Hello mọi người, Mình đang tìm hiểu cách viết testcase, mình có tham khảo một số tài liệu và mẫu trên mạng nhưng thấy họ có ghi một mục là “Pre-Conditions”, cho mình hỏi mục đó có công dụng gì và có cần thiết trong testcase hay không? Mình cảm ơn.”

Đáp: (có vẻ bạn này đã tìm hiểu và tự làm được testcase rồi, nhưng còn một số thông tin chưa rõ, mình nên giải thích thêm chút giúp bạn ấy).
Chào bạn, mục “Pre-Conditions” gọi là điều kiện tiên quyết, dùng để chứa hoặc ghi các thông tin về môi trường, trạng thái, các bước cần chuẩn bị trước khi thực hiện testcase đó. Ví dụ để thực hiện một case về login thì Pre-conditions là thông tin về username & password của thành viên đó. Mục này là cần thiết nhé.

3. Tổng kết.
Một câu hỏi hay không chỉ giúp cho vấn đề được trợ giúp một cách nhanh chóng và chính xác mà còn thể hiện được sự siêng năng, ham học hỏi của tác già. Câu hỏi hay sẽ giúp cho mọi người (kể cả người hỏi, người giúp và cộng đồng) học thêm được điều gì đó mới mẻ.