Tự tin

Các đặc điểm của một kỹ sư kiểm thử giỏi (Phần cuối)?

Ở phần 1phần 2, chúng ta đã điểm qua được phần lớn những đặc điểm của một kỹ sư kiểm thử giỏi. Bài viết đã nhận được nhiều phản hồi tích cực từ cộng đồng kỹ sư kiểm thử phần mềm Việt Nam và đó là động lực để mình hoàn tất loạt bài viết này. Trong phần cuối này, mình sẽ tiếp tục chia sẻ những đặc điểm để giúp chúng ta áp dụng những đặc điểm đã được đề cập trong phần 1phần 2 một cách hiệu quả nhất.

13. Sự chuyên tâm

Một kỹ sư kiểm thử giỏi hiểu rằng việc tìm bug cũng như hiểu được bản chất của con bug đòi hỏi sự chuyên tâm nhất định. Một kỹ sư kiểm thử giỏi không bỏ sót một con bug nào tìm thấy dọc đường đi. Tuy nhiên họ sẽ không đào sâu tìm hiểu những con bug đó trước khi con bug chính được làm rõ.

Để không bị chệch hướng, bạn cần phải có một kế hoạch và bám sát vào nó. Trước khi tiến hành một lượt kiểm thử, hãy dành thời gian để lên kế hoạch trong đó xác định được bạn sẽ phân bổ thời gian kiểm thử như thế nào. Và khi tiến hành kế hoạch đó, hãy ghi nhận lại những điều thú vị bạn quan sát được trên đường đi nhưng vẫn chuyên tâm vào kế hoạch đã vạch ra. Khi bạn đã hoàn tất việc ghi nhận lại những vấn đề bạn gặp được trên đường đi, hãy quay lại và bắt đầu lần lượt tìm hiểu từng vấn đề đó. Khi tìm hiểu những vấn đề đó, tiếp tục lặp lại quá trình: ghi nhận những điều mới nhưng đừng xa rời mục tiêu.

Tác giả đã đưa ra lời khuyên nhưng những kỹ sư kiểm thử giỏi không áp dụng nó một cách cứng nhắc – nghĩa là chỉ ghi nhận và rồi đi tiếp. Đôi khi cũng có những điều quan trọng bạn gặp trên đường đi, hãy tập trung đào sâu tìm hiểu nó ngay lập tức thay vì chỉ ghi nhận lại.

[TH]:Trong quá trình nghiên cứu một con bug hay một vấn đề nào đó, chúng ta rất dễ bị “chèo kéo”, “mời gọi” của những vấn đề mới phát sinh và làm chúng ta lạc lối. Một sự lạc lối rất đáng yêu. Tôi lạc lối vì tôi có nhu cầu đào sâu tìm hiểu vấn đề, tôi chấp nhận “đào sâu để tìm vàng”, tôi sợ rằng nếu không đào sâu tôi sẽ bỏ sót những vấn đề tưởng chừng như nhỏ nhưng có thể gây ảnh hưởng nghiêm trọng đến khách hàng. Tuy nhiên hãy biết cân bằng và luôn tự hỏi “có đáng để làm công việc này không?”

14. Nhờ giúp đỡ

Những kỹ sư kiểm thử giỏi luôn sẵn sàng đối mặt với thử thách, “đập đầu vào tường” (khuyến cáo không nên hiểu và làm theo nghĩa đen) để phá vỡ nó từ từ. Vấn đề là có một số bức tường dày hơn một số khác. Những kỹ sư kiểm thử giỏi luôn biết khi nào cần sự giúp đỡ từ ai và vào khi nào.

Điều này đòi hỏi sự cân bằng. Bạn muốn tự mình tìm hiểu vấn đề nhưng cũng không muốn lãng phí thời gian vô ích. Hãy nói chuyện với quản lí của bạn để định ra đâu là giới hạn thời gian cho việc bạn tự nghiên cứu. Hết thời gian đó, bạn sẽ nhờ giúp đỡ.

Mặc dù bạn biết rằng bạn cần giúp đỡ nhưng cũng khó để có thể thừa nhận là bạn cần sự giúp đỡ. Để làm được việc này, bạn cần nhận thức được rằng việc nhờ giúp đỡ sẽ không làm giảm đi chất lượng của công việc cũng như việc kiểm thử của bạn. Mọi người sẽ hiểu được rằng nhờ giúp đỡ là một việc đúng đắn và nên làm và sẽ càng tôn trọng bạn hơn nếu bạn thực lòng muốn làm điều đó. Một kỹ sư kiểm thử giỏi hiểu rằng chẳng việc gì phải hổ thẹn khi nhờ ai đó giúp đỡ. Nếu bạn không thường xuyên nhờ ai đó giúp đỡ, có khi đó lại là vấn đề.

15. Nói cùng ngôn ngữ với kỹ sư lập trình

Điều này cũng tương tự như bạn ghé thăm một đất nước nào đó. Bạn được khuyến khích làm quen với ngôn ngữ cũng như phong tục tập quán của nước đó để ít nhất bạn thể bắt taxi về khách sạn hay hỏi thăm đường. Tương tự, kỹ sư kiểm thử phải tập làm quen với ngôn ngữ và thói quen của kỹ sư lập trình.

Nếu kỹ sư lập trình trong nhóm sử dụng UML, bạn phải tìm hiểu nó ít nhất là ở mức căn bản để không khiến cho họ phì cười khi bạn vẽ một biểu đồ UML. Hãy học cách viết một đoạn code ít nhất là ở mức của một sinh viên năm nhất. Hãy trò chuyện với kỹ sư lập trình để có cái nhìn tổng quát về những thành phần của ứng dụng. Điều quan trọng nhất là bạn có thể tự tin đặt câu hỏi để không cảm thấy ngớ ngẩn cũng như học cách để học.

Nếu bạn làm tốt khâu này, thì một ngày nào đó kỹ sư lập trình sẽ đến và nói với bạn rằng “Bạn tìm được bug. Bạn chỉ ra được bug chính xác là do đâu. Nếu bạn có thể sửa được bug nữa thì chẳng còn gì cho chúng tôi làm nữa”.

[TH] Vâng. Tác giả rất hài hước. Dĩ nhiên, chúng ta luôn biết rằng sẽ không ai có thể giỏi tất cả các khâu được và trên hết chúng ta hiểu được sức mạnh của tinh thần làm việc nhóm. Tuy nhiên việc đó cũng không thể ngăn cản chúng ta tự hoàn thiện bản thân và bổ sung thêm những kỹ năng mới. Bạn chuyên kiểm thử thủ công thì việc tìm hiểu và học một ngôn ngữ lập trình, một công cụ kiểm thử tự động, hay học cách viết các câu truy vấn cơ sơ dữ liệu v.v là không bao giờ thừa. Tương tự, nếu bạn là một kỹ sư kiểm thử tự động thì việc tìm hiểu thêm về những kỹ thuật kiểm thử thủ công, cách thức quản lý bug, trường hợp kiểm thử cũng đều sẽ rất hữu ích.

16. Đầu tư

Một kỹ sư kiểm thử giỏi biết được rằng cách duy nhất để họ tiếp tục là một kỹ sư kiểm thử giỏi là không bao giờ ngừng học hỏi. Nếu bạn được công ty hỗ trợ cho việc học là rất tốt, nếu không thì hãy tự trang bị bổ sung kiến thức cho chính mình.

Để tìm thời gian cho việc đào tạo, hãy đánh giá lại tất cả những công việc bạn đang làm và hãy cân nhắc xem việc nào không quan trọng và có thể bỏ đi. Ban lãnh đạo công ty thường cân nhắc việc được và mất khi hỗ trợ việc đào tạo cho nhân viên. Do đó, để có được sự chấp thuận của họ, việc bạn cần làm là chứng minh việc hỗ trợ đào tạo cho nhân viên sẽ được nhiều hơn mất.

Có nhiều cách khác nhau để đào tạo. Chẳng hạn để luyện tập kỹ năng trình bày, bạn có thể xây dựng một buổi trình bày về một kỹ thuật lập trình/kỹ thuật kiểm thử hữu ích cho đồng nghiệp. Kết quả cuối cùng là cả bạn và đồng nghiệp đều có được kỹ năng hoặc kiến thức mình còn thiếu. Đầu tư vào chính bản thân là cách tốt nhất để cải thiện những đặc điểm đề cập trong bài viết này.

[TH] Hãy không ngừng học hỏi và đầu tư cho việc nâng cao kiến thức chuyên ngành. Tùy nhu cầu và định hướng phát triển nghề nghiệp, các bạn sẽ chọn cách đầu tư theo cách riêng mình…nhưng hãy đảm bảo rằng các bạn có đầu tư.

17. Nhìn thấy bug

Một kỹ sư kiểm thử giỏi biết rằng một ứng dụng dường như không có bug là một ứng dụng có thể có đầy bug mà mình vẫn chưa tìm ra được. Một kỹ sư kiểm thử giỏi luôn tâm niệm rằng mỗi con bug mà khách hàng tìm được là một dấu hiệu cho thấy họ đã để sót rất rất nhiều bug.

Chuyện này sẽ trở nên tự nhiên hơn khi chúng ta hiểu rằng một ứng dụng tưởng chừng như đơn giản nhưng lại không đơn giản như mình nghĩ và rằng không có ứng dụng nào có thể chạy đúng hết tất cả các trường hợp được.

Hãy nhìn vào những khu vực mà ứng dụng hay bị lỗi. Hãy tìm hiểu xem người dùng cuối sử dụng sản phẩm như thế nào vì người dùng thỉnh thoảng có những thói quen sử dụng sản phẩm mà bạn không thể ngờ tới. Cho dù bạn có tìm được bug hay không thì bug vẫn còn đâu đó nhưng những người kỹ sư kiểm thử giỏi luôn muốn tìm được chúng.

[TH] Nếu bạn không tìm thấy bug thì hãy thử những gợi ý sau đây: bạn đã xem qua tài liệu mới của ứng dụng chưa (thiết kế, đặc tả, help, hướng dẫn sử dụng, v.v), xem lại những email cũ xem còn vấn đề nào chưa thảo luận xong và bị “bỏ quên” không, lật lại cuốn sổ tay xem có thông tin gì thú vị mà bạn đã ghi chú không, xem lại những con bug và những thảo luận của chúng trên hệ thống quản lý bug… Sau khi lục lọi tìm tòi đủ thứ, bạn có thể tìm được bug nhưng cũng có thể không. Tuy nhiên, điều quan trọng là bạn sẽ hiểu thêm về hiện trạng của sản phẩm cũng như sẽ đưa ra được những câu hỏi hay vấn đề thú vị để đem ra thảo luận với khách hàng, với kỹ sư lập trình, với giám đốc sản phẩm, giám đốc dự án.

18-19-20. Trung thực – Chính trực – Dũng cảm

Đây là 3 đặc điểm nền tảng cho những đặc điểm khác. Như Jerry Weinberg đã từng nói “Nếu như không có sự chính trực và lòng dũng cảm để bảo vệ nó thì bạn sẽ bị cán dẹp trên đại lộ của sự phát triển và mỗi ngày trôi qua bạn sẽ ngày càng dẹp lại …dẹp lại..”. Sự trung thực, chính trực và lòng dũng cảm là nền móng của một kỹ sư kiểm thử giỏi.

Nếu bạn không trung thực về tình trạng hiện tại của ứng dụng thì hoặc là ứng dụng sẽ không bao giờ được đưa ra thị trường (nếu như bạn cố tình phóng đại về tình trạng tệ hại của ứng dụng) hoặc là bạn sẽ bỏ sót một “rừng bug” cho khách hàng (nếu như bạn cố tình nói giảm về tình trạng tệ hại). Sự chính trực có mối quan hệ mật thiết với danh tiếng của bạn; cải thiện điều này sẽ cải thiện điều kia. Cuối cùng, bạn sẽ thể hiện lòng dũng cảm dễ dàng hơn nếu như bạn thật lòng tin rằng là bạn đã làm đúng. Những đặc điểm khác sẽ giúp bạn có thêm lòng dũng cảm để đứng lên tranh đấu khi cần thiết. Sự trung thực, chính trực và lòng dũng cảm là chất xúc tác giúp bạn đạt được những đặc điểm khác nhanh chóng hơn.

[TH] Một trong những nhiệm vụ quan trọng của một người kỹ sư kiểm thử là cung cấp thông tin một cách chính xác và kịp thời đến cho khách hàng. Nếu thông tin cung cấp bị sai lệch thì công việc kiểm thử coi như là vô ích. Nếu bạn thấy thời gian kiểm thử cho sản phẩm quá ít hãy cho khách hàng biết. Nếu bạn cảm thấy không tự tin khi đưa sản phẩm ra thị trường, hãy chia sẻ với khách hàng. Nếu bạn thấy bạn không hoàn tất việc được giao, hãy thông báo khách hàng. Nếu bạn cảm thấy không khỏe và không thể làm công việc với kết quả tốt nhất, hãy chia sẻ với khách hàng…Hãy luôn trung thực với những việc mà bạn tin rằng sẽ ảnh hưởng đến chất lượng công việc, sản phẩm và dự án.

Lời kết

Mình vừa đi qua những đặc điểm cuối cùng trong loạt bài về 20 đặc điểm của một kỹ sư kiểm thử giỏi. Bạn sẽ phì cười khi nghĩ rằng làm gì có ai có đủ 20 đặc điểm đó và rằng tất cả chỉ là “sách vở” thì bạn biết rằng ít nhất có một người chia sẻ quan điểm với bạn…người đó là mình. Tuy nhiên, đối với mình việc có đủ 20 đặc điểm đó (hoặc đặc điểm khác hoặc nhiều hơn hoặc ít hơn) không quan trọng bằng việc luôn tìm kiếm những đặc điểm của riêng mình để trở thành một kỹ sử kiểm thử giỏi và luôn cố gắng đạt được nó.

Ngoài ra, nếu ai đó đã đọc đến phần thứ 3 này (dĩ nhiên là cả phần 1phần 2 nữa) thì mình tin là bạn đó rất có thể là một kỹ sư kiểm thử giỏi vì bạn đó đã chứng tỏ được sự kiên nhẫn – một trong những đặc điểm làm nên một kỹ sư kiểm thử giỏi – theo nhận định của mình.

Kiểm thử phần mềm