17 Jan, 2021
Người kiểm thử chuyên nghiệp
Tuần trước, một sinh viên hỏi tôi: “Kiểm thử có phải là việc làm mức vào nghề hay nó là một nghề chuyên nghiệp? Có nghề như kiểm thử viên phần mềm không?”
Câu trả lời của tôi: Tuyệt đối có, có nghề cho người kiểm thử chuyên nghiệp chứ. Mặc dầu nhiều người phần mềm bắt đầu nghề nghiệp của mình là người kiểm thử rồi đi lên trên các vị trí khác, có những người xây dựng nghề nghiệp của họ trong việc kiểm thử như người kiểm thử chuyên nghiệp và họ kiếm được nhiều tiền nữa. Để bắt đầu, họ phải có kĩ năng kĩ thuật tốt và hiểu miền ứng dụng và công nghệ được dùng. Đó là lí do tại sao kĩ năng lập trình và tri thức về phát triển phần mềm là nền tảng của bất kì vị trí kiểm thử nào. Bước tiếp là phát triển kĩ năng doanh nghiệp hay khu vực miền. Người kiểm thử chuyên nghiệp hiểu cách người dùng dùng sản phẩm, cách doanh nghiệp làm việc như được nhìn từ các vai trò khác nhau, và rủi ro liên kết với sản phẩm và dịch vụ. Những kĩ năng này yêu cầu nhiều năm kinh nghiệm và tri thức sâu sắc về doanh nghiệp. Bên cạnh đó, người kiểm thử chuyên nghiệp cũng phải biết các phương pháp kiểm thử, công cụ kiểm thử, khuôn khổ kiểm thử vì họ liên tục cải tiến kĩ năng của mình.
Khu vực kĩ năng trên là kĩ năng “cứng” khi so sánh với kĩ năng “mềm” hay kĩ năng con người. Người kiểm thử chuyên nghiệp phải phát triển mọi loại kĩ năng mềm này. Họ phải biết cách trao đổi tốt với cả tổ phát triển và người dùng. Họ phải biết khi nào linh hoạt được và khi nào phải cứng rắn vì phẩm chất và rủi ro là quan trọng cho doanh nghiệp. Họ cũng phải biết rằng một số tình huống yêu cầu hướng kết quả và một số tình huống yêu cầu chú ý tới mọi chi tiết.
Người kiểm thử chuyên nghiệp có thể chuyển lên thành người quản lí kiểm thử nơi họ quản lí mọi hoạt động kiểm thử và phối hợp nhiệm vụ giữa những người kiểm thử. Để làm việc như người quản lí kiểm thử, bạn cần một số “kĩ năng cứng” đã nói ở trên, một số “kĩ năng mềm” và đào tạo tốt trong quản lí dự án. Quản lí kiểm thử có nhiều điều tương tự với quản lí dự án bởi vì chúng cả hai đều yêu cầu lập kế hoạch, điều phối và giám sát. Trong dự án agile, người quản lí kiểm thử có thể là thầy Scrum nhưng với các dự án lớn hơn, người quản lí kiểm thử phải làm việc với người quản lí dự án để lập kế hoạch cho các hoạt động, kiểm điểm tiến độ dự án và thừa nhận khuôn khổ kiểm thử tốt nhất áp dụng được cho dự án.
Người kiểm thử chuyên nghiệp biết cách nghĩ theo cách thức của họ quanh khắp hệ thống và tìm mọi cách mà mọi sự có thể đi sai. Họ phải đi tới bản kế hoạch kiểm thử, các trường hợp kiểm thử và công cụ kiểm thử có thể trắc nghiệm được rằng những điều đó đã không đi sai. Về căn bản, kiểm thử là “đặt câu hỏi với sản phẩm phần mềm để đánh giá nó.” Kiểm thử là việc phục vụ cho dự án, nơi người kiểm thử giúp phát hiện ra các lỗi, rủi ro và vấn đề đe doạ tới giá trị của sản phẩm và mục đích của doanh nghiệp. Đây là khác biệt giữa người kiểm thử chuyên nghiệp và người lập trình, người chỉ viết mã và kiểm thử công việc của họ. Nhiều người lập trình nghĩ kiểm thử là dễ, và là công việc mức vào nghề hay có vai trò thứ yếu bởi vì họ KHÔNG phân biệt được giữa kiểm thử mã với kiểm thử về giá trị hay kiểm thử về rủi ro. Họ tin kiểm thử là tất cả việc kiểm tra chương trình đã được viết để tìm lỗi, cũng giống như điều họ làm trong kiểm thử đơn vị. Bất kì ai làm việc đủ lâu trong công nghiệp phần mềm đều biết cách đánh giá người kiểm thử. Đầu tiên, họ KHÔNG coi kiểm thử là bài tập lập trình, mà là nhiệm vụ giải quyết vấn đề trong đó công cụ đặc biệt hay mã có thể được phát triển. Giải quyết vấn đề bằng viết mã một trường hợp kiểm thử là phần thách thức lớn nhất của một dự án, điều còn khó hơn nhiều so với đơn giản viết mã một chức năng (một bài tập logic đơn giản dùng một ngôn ngữ lập trình).
Người kiểm thử chuyên nghiệp KHÔNG chỉ biết về lập trình mà còn là người lập trình giỏi. Bên cạnh đó, họ cũng có cách nghĩ đặc biệt về việc tìm lỗi cũng như rủi ro vì họ biết cách kiểm thử và làm điều đó giỏi. Kiểm thử còn nhiều hơn là việc viết mã cho một tập các kiểm tra nhưng cũng giúp họ nhận ra kiểm thử nào có thể tiến hành, bằng việc đưa ra lời khuyên, thách thức và quyền lãnh đạo. Người kiểm thử biết cách cung cấp thông tin về sản phẩm và dự án cho người quản lí và người dùng. Họ là chuyên nghiệp bởi vì họ đam mê về kĩ năng của mình và thực hành nó với tính toàn vẹn, trung thực bằng việc thừa nhận rằng đóng góp của họ cho chất lượng, giản rủi ro và chi phí, làm tăng giá trị doanh nghiệp và danh tiếng doanh nghiệp là phần trung tâm của việc làm của họ.
—-English version—-
Professional Tester
Last week, a student asked me: “Is testing an entry level job or is it a professional job? Is there a career as software tester?”
My answer: Absolutely yes, there is a career for professional tester. Although many software people start their careers as testers then move on to other positions, there are people who build their careers in testing as professional testers and they are earning a lot of money too. To start, they must have good technical skills and understand the range of applications and technologies in use. That is why programming skills and software development knowledge are fundamentals of any testing position. The next step is to develop the business skills or domain area. Professional testers understand how users use the products, how the business works as seen from different roles, and the risk associated with the products and services. These skills require many years of experiences and intimate knowledge of the business. Besides that, professional testers must also knowtesting methods, testing tools, testing processes, testing frameworks as they continue to improve their skills.
The above skill areas are “hard” skills as compared to “soft” or personal skills. Professional testers must develop all kinds soft skills. They must know how to communicate well with both the development team and the users. They must know when to be flexible and when to be stern as quality and risks are important to the business. They must also know that some situations require results orientation and some situations require attention to all details.
Professional testers can moving up to Test Manager where they manage all testing activities and coordinate tasks among testers. To work as a Test Manager, you need some of the “hard skills” mentioned above, some “soft skills” and a good training in project management. Test management has a lot of similarities to project management because they both require planning. coordinating and monitoring. In agile projects, a Test Manager can be a Scrum Master but for larger projects, the Test Manager must work with the Project Manager to plan project activities, review project progress and recognize the best testing framework applicable to the project.
A professional tester know how to think their way around a system and look for all the ways that things can go wrong. They have to come up with a test plan, test cases, test scripts and test tools that can verify that those things have not gone wrong. Basically, testing is “questioning a software product in order to evaluate it”. Testing is a service to the project, where testers help to discover defects, risks and problems that threaten the value of the product and the goals of the business. This is the difference between a professional testers and a programmer who only code and test their works. Many programmers think testing is easy, an entry level job or second-class role because they do NOT distinguish between testing code from testing for value or testing for risks. They believe testing is all about checking a coded program for defects, just like what they do in Unit tests. Anyone who work long enough in the software industry know how to value testers. First, they do NOT consider testing as a programming exercise, but a problem-solving task in which special tools or code can be developed. Solving problem by coding a test case is the most challenging part of a project which is much more difficult than just simply coding a function (A simple exercise of logic using a programming language).
A professional tester NOT just know about programming but is the best programmer. Besides that, they also have the special mindset of finding defects as well as risks as they know how to test and do it well. Testing is more than coding up a set of checks but also help others to recognize what testing can do, by offering advises, challenges, and leadership. Testers know how to provide information about products and projects to managers and users. They are professional because they are passionate about their skills and practice it with integrity, honesty recognizing that their contributions to quality, reducing risk and cost, increasing business value and reputation is central part of their jobs.