26 Jan, 2021
Người kiểm thử giỏi
Một sinh viên mới tốt nghiệp gần đây đã viết cho tôi: “Em bắt đầu việc làm đầu tiên là người kiểm thử phần mềm. Em phải làm gì để là người kiểm thử rất giỏi? Xin thầy lời khuyên.”
Đáp: Bên cạnh tri thức kĩ thuật của bạn về kiểm thử, bạn cũng cần các “kĩ năng mềm” nào đó để cho bạn có thể làm việc với người khác một cách hiệu quả. Người kiểm thử giỏi cần kĩ năng tổ chức và tâm trí phân tích để đưa trật tự và cấu trúc vào công việc họ làm. Sẽ là phí thời gian để lặp lại mọi thứ bởi vì ai đó quên mất không để bạn biết rằng họ đã kiểm thử cái gì đó hay quên mất không giữ bản ghi về những thứ đã được làm. Nhớ rằng bạn là một phần của tổ mà có cùng mục đích để xây dựng ứng dụng phần mềm đáp ứng các tiêu chuẩn chất lượng cao. Là một phần của một tổ là đặc trưng then chốt của người kiểm thử tốt vì bạn cần trao đổi về công việc của bạn, phát hiện của bạn, giải thích tại sao bạn làm những điều nào đó và qui trình bạn tuân theo.
Bởi vì tổ kiểm thử và tổ phát triển thường có xung đột cho nên là người kiểm thử giỏi, bạn cần xây dựng mối quan hệ với tổ phát triển. Bạn cần chân thành và đáp ứng với yêu cầu của tổ phát triển. Nói với người phát triển điều bạn lập kế hoạch để làm trong dự án này, cách bạn lập kế hoạch tiến hành kiểm thử của bạn, và nếu bạn tìm ra lỗi bạn sẽ làm gì. Người kiểm thử tốt biết cách giúp người phát triển bằng việc chia sẻ thông tin với họ. Nếu bạn đã tạo ra trường hợp kiểm thử nào đó từ đặc tả yêu cầu phần mềm (SRS), bạn có thể chia sẻ các trường hợp kiểm thử của bạn với người phát triển, hỏi họ cho gợi ý thêm. Để cho họ biết về kiểm thử của bạn bởi vì bạn sẽ kiểm công việc của họ.
Nếu người phát triển yêu cầu bạn nhìn vào mã của họ trước khi họ đưa chúng ra cho kiểm thử, giúp họ bằng cách kiểm điểm công việc của họ và báo cáo về bất kì lỗi nào phải được sửa. ĐỪNG vội vàng báo cáo những lỗi này trong sổ báo cáo lỗi chính thức. Nhiều người phát triển không muốn lỗi của họ được báo cáo và đó là lí do tại sao họ yêu cầu bạn kiểm trước khi họ đưa ra cho kiểm thử chính thức. Khi họ sẵn lòng sửa lỗi thì bạn đã hoàn thành việc làm của bạn. Tôi biết một số người kiểm thử có thói quen giữ các lỗi của họ được giấu kín để cho họ có thể viết báo cáo lỗi và chứng minh cho cấp quản lí rằng họ đang làm việc tốt. Điều đó sẽ không giúp cho ai nhưng sẽ tạo ra nhiều xung đột giữa các tổ. Một số người kiểm thử thích báo cáo mọi thứ cho dù những sai lầm nhỏ nhặt cũng đưa ra công khai. Thái độ này làm tổn thương tới người phát triển và không tốt cho tổ dự án. Cho nên nếu bạn đã tìm ra lỗi nào trong kiểm thử thì để cho người phát triển biết trước. Nói chuyện một cách cá nhân với họ về điều bạn tìm ra và tại sao bạn phải làm tư liệu chúng.
Là người kiểm thử bạn không nên trách người phát triển về các lỗi. Tập trung vào tìm ra lỗi và làm việc với người phát triển để làm cho nó được sửa, KHÔNG chỉ vào lỗi đó trước mặt mọi người. Nhớ rằng bạn là trong cùng dự án và mục đích là có sản phẩm phần mềm chất lượng, KHÔNG trỏ ngón tay vào bất kì người nào. Khi bạn hoàn thành kiểm thử của bạn thì viết ra báo cáo lỗi rõ ràng để cho người phát triển có thể tìm ra nó dễ dàng sửa nó. Phải được chuẩn bị về mọi điều. Công việc của người kiểm thử KHÔNG dễ dàng cho nên nếu những điều tồi tệ nhất không xảy ra bây giờ, chúng có thể xảy ra vào bất kì lúc nào, cho nên phải sẵn sàng đối diện với chúng. Đừng bị thất vọng nếu bạn không tìm ra lỗi nào mà về sau được người dùng báo cáo lại. Không ai là hoàn hảo cho nên học từ sai lầm và đi tiếp.
Chứng tỏ cho tổ dự án của bạn rằng bạn đam mê về công việc của bạn như người kiểm thử phần mềm và tham gia tích cực vào hoạt động của nhóm. Chúng ta sống trong “thế giới thực” điều có nghĩa là không phải mọi thành viên tổ đều có cùng kĩ năng và kinh nghiệm. Tuy nhiên, qua thời gian bạn sẽ học cách nhận ra người phát triển trung bình và những người muốn trở thành người phát triển thực sự giỏi. Những người giỏi muốn bạn kiểm thử công việc của họ và sẽ làm việc chăm chỉ để tìm ra giải pháp cho mọi lỗi. Họ cẩn thận trong công việc của họ và gây khó nhất có thể được cho bạn, người kiểm thử, để tìm ra lỗi bởi vì họ cẩn trọng về chất lượng. Người phát triển trung bình sẽ nhảy vào viết mã, ném nó qua cho bạn kiểm thử, và sửa chúng khi họ tiếp tục làm công việc của họ.
Làm việc chăm chỉ, dùng mọi kĩ năng của bạn (kĩ năng kĩ thuật và kĩ năng mềm) nhưng cùng cần thời gian để suy nghĩ, thảnh thơi để phục hồi năng lượng của bạn. Thỉnh thoảng điều quan trọng là lùi lại một bước để có được cái nhìn tươi tắn và để tìm ra cách tiếp cận khác để giải quyết vấn đề. Đừng là anh hùng, bao giờ cũng làm việc trong tổ, nhiều người bao giờ cũng tốt hơn một người. Khiêm tốn, lễ phép và lắng nghe người khác thì bạn sẽ thăng tiến trong nghề nghiệp của bạn.
—-English version—-
A good tester
A recent graduate wrote to me: “I am starting my first job as a software tester. What should I do to be a very good tester? Please advise”.
Answer: Beside your technical knowledge on testing, you also need some “soft-skills” so you can work with others effectively. Good testers need organizational skills and an analytic mind to bring order and structure to the work they do. It would be a waste of time to repeat things because somebody just forgot to let you know that they already tested something or forgot to keep record of things already done. Remember that you are part of a team that has the same goal to build software applications that meet high quality standards. Being part of a team is a key characteristic of a good tester as you need to communicate about your work, your findings, explain why you do certain things and the process that you follow.
Because testing team and developing team often have conflicts so to be a good tester, you need to build relationship with developing team. You need to be honest and responsive to developing team’s request. Tell developers what you are planning to do in this project, how you plan to conduct your tests, and if you find defects what would you do. A good tester know how to help developers by sharing information with them. If you have created some test cases from the software requirement specifications (SRS), you may share your test cases with developers, ask them for suggestions. Let them know about your tests because you are going to check their works.
If developers ask you to look at their code before they release them for testing, help them by review their works and report any defects that must be fixed. Do NOT hurry to report these defects in the official defect report book. Many developers do not want their defects to be reported and that is why they ask you to check before they release to testing officially. As long as they are willing to fix defects then you have accomplished your job. I know some testers have habit to keep these defects hidden so they can write a defect report and prove to management that they are doing good jobs. It will not help anyone but will create more conflicts between teams. Some testers like to report everything even small mistakes publicly. This attitude hurts the developers and not good for the project team. So if you have found any defect during testing then let developers know first. Talk personally to them about what you found and why you have to documented them.
As a tester you should not blame developers for defects. Concentrate on finding defect and work with developers to have it fixed, NOT pointing that defect in front of all people. Remember that you are on the same project team and the goal is to have quality software product, NOT pointing the finger at anyone. When you finish your test then write a clear defect report so developer can find it easy to fix it. Be prepared for everything. Tester job is NOT easy so if worst things do not happened now, they can happen at any time, so be ready to face them. Do not get frustrated if you do not found any defect that later has been reported by users. Nobody is perfect so learn from mistakes and move on.
Showing your project team that you are passionate about your job as a software tester and actively participating in the group’s activities. We live in the “real world” that means that not every team member has the same skills and experience. However, over time you will learn to recognize an average developers and those who want to become really good developers. The good ones want you to test their work and will work hard to find solutions for every defect. They are careful in their works and make it as hard as possible for you, the tester, to find defects because they care for quality. Average developers would jump into code, throw it over for you to test, and fixing them as they continue with their works.
Work hard, use all your skill (Technical and soft-skills) but also need time to think, relax to regenerate your energy. Some times its important to take one step back in order to get fresh insight and to find different approach to solve problem. Do not be a hero, always work in teams, several people are always better than one person. Be humble, polite and listen to others then you will advance in your career.