0
Chưa có sách nào trong giỏ hàng

Người kiểm thử chuyên nghiệp

19.02.2021

Don McNeil là giám đốc của trung tâm kiểm thử cho công ti phần mềm lớn. Ông ấy tới thăm lớp kĩ nghệ phần mềm của tôi và cho bài trình bày về xu hướng mới nhất về kiểm thử phần mềm.

Don nói: “Kiểm thử là nhiều hơn chỉ tìm lỗi. Người kiểm thử không có kinh nghiệm không biết điều đó và sung sướng với số lỗi mà họ tìm ra. Người kiểm thử có kinh nghiệm cũng tìm ra lỗi nhưng làm việc với người phát triển để chắc rằng chúng được sửa. Người kiểm thử chuyên nghiệp làm nhiều hơn điều đó, họ làm việc với người phát triển để chắc họ không tạo ra lỗi; họ làm việc với người dùng để xác định yêu cầu tốt hơn; họ làm việc với chuyên gia an ninh để chắc phần mềm được kiểm thử về an ninh; họ làm việc với người quản lí dự án để nhận diện và giảm nhẹ rủi ro; và họ làm việc với người đảm bảo chất lượng về sự tuân thủ, v.v.”

“Về căn bản, vai trò của người kiểm thử đã thay đổi và trở nên quan trọng ngày nay hơn trước đây. Kiểm thử là nghề chuyên nghiệp và nó là việc làm tăng trưởng nhanh nhất trong công nghiệp CNTT. Theo vài hãng nghiên cứu như IDC, Gartner, và Forrester, chi tiêu của ngành công nghiệp này về dịch vụ kiểm thử độc lập có thể vượt quá bảng chuẩn $30 tỉ đô la trước năm 2015. Nhiều công ti phần mềm khoán ngoài làm kiểm thử cho nhà cung cấp dịch vụ kiểm thử chuyên nghiệp thay vì bản thân họ thực hiện kiểm thử vì kĩ năng của người kiểm thử đang ngày càng phức tạp hơn.”

Ông ấy giải thích: “Bởi vì thu thập yêu cầu kém và thay đổi trong yêu cầu về sau trong vòng đời phát triển, việc kiểm thử trở nên rất tốn kém. Chi phí của việc sửa lỗi về sau trong phát triển phần mềm đang lên cao mọi lúc. Ngày nay phần lớn phần mềm đều lớn và phức tạp, điều là khó cho người kiểm thử không có kinh nghiệm để tìm ra lỗi. Các yêu cầu kém dẫn tới nhiều thay đổi; nhiều thay đổi dẫn tới nhiều lỗi, đặc biệt sau khi phần mềm được đưa ra cho người dùng. Xem như kết quả, điều quan trọng cho người kiểm thử là hội tụ vào trắc nghiệm yêu cầu. Không may, phần lớn người kiểm thử không thể làm được điều đó. Người kiểm thử chuyên nghiệp biết cách bắt đầu sớm trong pha thu thập yêu cầu. Họ làm việc với người dùng để chắc rằng yêu cầu được xác định rõ và kiểm thử được.”

“Khi nhiều công ti dùng tính toán mây, an ninh là một trong những mối quan tâm quan trọng nhất. Giữ an ninh cho mọi app chạy qua mây là mấu chốt. Người kiểm thử không có kinh nghiệm không có kĩ năng kiểm thử an ninh, phần lớn chỉ biết về viết mã và kiểm thử cho các lỗi. Người kiểm thử chuyên nghiệp biết cách làm việc với chuyên viên an ninh để chắc mọi ứng dụng được kiểm tra đầy đủ về an ninh và những chỗ mong manh. Vậy kiểm thử an ninh mây, kiểm thử ứng dụng về an ninh thêm nhiều kiểm thử về hiệu năng và an ninh. Đây là những điều mà người kiểm thử chuyên nghiệp có thể làm.”

“Nhiều công ti đang dùng “Nền tảng như dịch vụ (PaaS)” điều này tới với một tập riêng các kiểm thử độ phức tạp. Nó tạo điều kiện thuận lợi cho khách hàng dùng các cấu phần nền tảng do vậy thúc bẩy phát triển môi trường phát triển tích hợp (IDEs) trong môi trường trình duyệt chéo. Nó yêu cầu nhiều kĩ thuật phân tích phức tạp để làm kiểm nghiệm chức năng và hiệu năng cấu phần. Đây là những điều mà người kiểm thử không có kinh nghiệm không biết. Người kiểm thử chuyên nghiệp hiểu cách đánh giá về kiểm thử tải và kiểm thử tương hợp với các trình duyệt đa dạng.”

“Mọi dự án phần mềm đều có rủi ro. Mặc dầu xây dựng chiến lược giảm nhẹ rủi ro là việc của người quản lí dự án nhưng một trong các rủi ro lớn nhất là có lỗi sau khi phần mềm được đưa ra và sửa chúng là rất tốn kém. Người kiểm thử không có kinh nghiệm thường kiểm mã sau khi người phát triển đã hoàn thành công việc của họ. Người kiểm thử chuyên nghiệp bắt đầu sớm bằng làm việc với người quản lí dự án để lập kế hoạch cho nhiều tự động hoá kiểm thử, khuôn khổ kiểm thử, kiểm thử app đầu cuối tới đầu cuối, v.v. mà có thể giảm nhẹ những rủi ro này.”

“Ngày nay, nhiều công ti đang dùng phần mềm của nhà cung cấp hay khoán ngoài một phần phần mềm của họ cho các công ti ngoài. Nếu công ti xây dựng sản phẩm phần mềm thương mại, tài sản trí tuệ của họ có thể bị đánh cắp. Người kiểm thử không kinh nghiệm không biết cách giải quyết với vấn đề này. Người kiểm thử chuyên nghiệp biết cách kiểm thử phần mềm của nhà cung cấp và các ứng dụng được khoán ngoài để giúp cho công ti bảo vệ tài sản trí tuệ của họ chống lại mọi kẻ cắp. Loại bảo vệ này cực kì quan trọng để thu được tin tưởng và có móc nối trực tiếp với chiến lược phát sinh thu nhập của công ti.”

“Ngày nay, có số ngày càng tăng các qui định tuân thủ từ chính phủ. Nó yêu cầu nhiều kiểm thử tuân thủ. Mọi công ti đều phải tuân theo tập các tuân thủ mới, điều biến thiên theo mỗi và mọi ngành công nghiệp. Không đáp ứng bất kì yêu cầu nào trong những yêu cầu này đều có thể gây tốn kém và có thể gây thiệt hại cho danh tiếng của công ti. Để đáp ứng các tuân thủ chuyên ngành công nghiệp, kiểm thử tuân thủ phải được thêm vào cho cách kiểm thử được tiến hành. Người kiểm thử chuyên nghiệp biết cách kiểm thử về tuân thử, họ biết cách làm việc chặt chẽ với đảm bảo chất lượng và các qui tắc tuân thủ để chắc rằng mọi phần mềm là đầy đủ trong tuân thủ với qui định của chính phủ.”

“Ngày nay, nhiều công ti đang bắt đầu hiểu ích lợi của việc có người kiểm thử chuyên nghiệp. Một số người thành lập trung tâm kiểm thử riêng của họ và thuê những người kiểm thử có kinh nghiệm và chuyên nghiệp. Nhiều người khoán ngoài kiểm thử cho công ti kiểm thử độc lập. Bằng việc thúc bẩy tính chuyên gia của những người này trong khuôn khổ kiểm thử và qui trình kiểm thử, công ti có thể bỏ đi các nhóm kiểm thử không năng suất của họ và những người kiểm thử không có kinh nghiệm và hội tụ vào phát triển sản phẩm phần mềm.”

Trong quá khứ, nhiều người kiểm thử bị đối xử như kém quan trọng hơn người phát triển. Đển chuyên sâu, nhiều người kiểm thử phải trở thành người phát triển nhưng ngày nay có con đường nghề nghiệp rõ ràng cho những người quan tâm trở thành người kiểm thử chuyên nghiệp. Có sẵn một số đào tạo nhưng không có gì tốt hơn là có kinh nghiệm. Người kiểm thử có thể cải tiến kĩ năng của họ bằng việc học về an ninh, tuân thủ, hiệu năng và các kiểm đa dạng của kiểm thử mới mà tới cùng với công nghệ mới. Nghề nghiệp cho người kiểm thử chuyên nghiệp cũng rất sáng lạn vì phần lớn trong họ làm trung bình $110,000 tới $150,000 như nhà tư vấn kiểm thử hay nhà chiến lược kiểm thử.

—-English version—-

 

Profession​al Tester

Don McNeil is the director of a testing center for a large software company. He visited my software engineering class and gave a presentation about the latest trends on software testing.

Don said: “Testing is more than just finding defects. Inexperienced testers do not know that and are happy with the number of defects that they found. Experienced tester also found defects but works with developers to make sure that they are fixed. Professional testers do more than that, they work with developers to make sure they do not create defects; they work with users to define better requirements; they work with security specialist to make sure software is tested for security; they work with project manager to identify and mitigate risks; and they work with quality assurance to test for compliances, etc.”

“Basically, the role of tester has changed and become more important today than previously. Testing is a professional career and it is the fastest growing jobs in IT industry. According to several research firms such as IDC, Gartner, and Forrester, the industry’s spending on independent testing services could pass the benchmark of $30 billion dollar by 2015. More software companies are outsourced testing to professional testing service providers rather than perform testing themselves as the skills of testers are getting more sophisticated.”

He explained: “Because of bad requirement gathering and changes in requirements later in the development life cycle, testing becomes very expensive. The cost of fixing defects later in software development is reaching all time high. Today most software is large and complex, which is difficult for inexperienced testers to find defects. Bad requirements lead to more changes; more changes lead to more defects, especially after the software is released to users. As a result, it is important for testers to focus on requirements validation. Unfortunately, most testers could not do that. Professional testers know how to start early during requirements gathering phase. They work with users to make sure that requirements are clearly defined and testable.”

“As more companies are using cloud computing, security is one of the most important concerns. Securing all the apps that run over the cloud is critical. Inexperienced testers do not have the security testing skills, most only know about coding and testing for defects. Professional testers know how to work with security specialist to make sure all applications are fully checked for security and vulnerability. Thus testing the cloud security, testing applications for security add more tests on performance and security. These are things that professional testers can do.”

“Many companies are using “Platform-as-a-Service (PaaS) which comes with its own set of testing complexity. It facilitates customers to use the underlying components thus leveraging integrated development environment (IDEs) in cross browser environments. It demands more sophisticated analytical techniques to validate components functionality and performance. These are things that inexperienced testers do not know. Professional testers understand how to evaluate for load testing and compatibility testing with various browsers.”

“Every software project has risks. Although building risk mitigation strategy is the job of the project manager but one of the biggest risks are having defects after the software is released and fixing them is very expensive. Inexperienced testers often check the code after developers completed their works. Professional testers start early by working with project manager to plan for more test automation, test framework, end-to-end app testing, etc. which can mitigate these risks.”

“Today, many companies are using vendor’s software or outsourcing part of their software to external companies. If the company is building commercial software products, it is possible that their intellectual properties could be stolen. Inexperienced testers do not know how to deal with this issue. Professional testers know how to test vendors’ software and outsourced applications to help companies protect their Intellectual Properties against any theft. This kind of protection is extremely important in order to gain confidence and is directly linked to the company’s revenue generation strategy.”

“Today, there are increasing numbers of regulatory compliances from governments. It requires more compliance tests. Every company must follow new set of compliances which vary for each and every industry. Failure to meet any of these can be costly and could damage the company reputation. To meet these industry-specific compliances, compliance testing must be added to the way testing is conducted. Professional testers know how to test for compliance, they know how to work closely with quality assurance and compliance rules to make sure that all software is fully in compliance with government regulatory.”

“Today, many companies are beginning to understand the benefits of having professional testers. Some are setting up their own testing center and hire experienced and professional testers. Many are outsourcing testing to independent testing companies. By leveraging these people’s expertise in testing framework and test processes, company can move away from their unproductive test groups and inexperienced testers and focus on develop software product.”

In the past, many testers are treated as less important than developers. To advance, many testers have to become developers but today there is a clear career pathway for people who are interested to become professional testers. There is some training available but nothing is better than having experiences. Testers can improve their skills by learning about security, compliances, performance and various types of new tests that come with new technology. A career for professional tester is also very bright as most of them making on the average $110,000 to $150,000 as test consultant or test strategist.