Hello các bạn. Mình là Phương, rất vui khi được gặp lại các bạn ở chủ đề ngày hôm nay.
Hiện nay, mình thấy ngành tester khá là hot. Trên các diễn đàn, group facebook, có rất nhiều bạn sinh viên mới ra trường, và 1 số bạn làm trái ngành có mong muốn chuyển qua làm tester. Nhưng các bạn khá mông lung về nghề này. Có nhiều bạn nghĩ rằng công việc này khá là nhẹ nhàng. Thế nhưng, có lẽ bạn chưa biết: Software testing là 1 con đường có nhiều ngã rẽ. Nếu các bạn có cái nhình tổng quan về lộ trình sự nghiệp, thì bạn hoàn toàn có thể vạch ra con đường phát triển lâu dài, hoạch định tương lai cho riêng mình khi theo đuổi nó.
Bên dưới là các vị trí (level) mà 1 tester sẽ trải qua (mình note ở đây chỉ là tương đối thôi nhé, nó có thể thay đổi tùy theo công ty nữa)
Nội dung
1. Junior Tester / Junior QA Engineer
Junior Tester thường dùng để chỉ những nhân viên mới tốt nghiệp, chưa có kinh nghiệm làm việc hoặc có kinh nghiệm < 3 năm. Tuy nhiên, nó cũng chỉ là tương đối, và ko phải sau 2, 3 năm là bạn sẽ trở thành senior. Và cũng ko phải bạn làm > 3 năm là bạn lên level senior đâu. Nó còn phụ thuộc vào năng lực làm việc của bạn nữa. Có những bạn đã làm được 5 năm, nhưng vẫn chưa lên được level senior. Lý do có thể là lúc bạn làm việc không có gì đột phá, nên ko được leader đánh giá cao. Ngoài ra, bạn có thể là Senior ở cty này, nhưng khi bạn sang cty khác, bạn chỉ ở level Junior. Bởi vì mỗi cty sẽ có những yêu cầu công việc khác nhau.
Yêu cầu:
Hiện nay, nhiều cty tuyển cả các bạn học trái ngành và họ mở lớp đào tạo để trở thành manual tester. Tuy nhiên, cũng có những cty chỉ nhận sinh viên đã tốt nghiệp chuyên ngành CNTT, biết lập trình cơ bản để có thể đào tạo theo hướng kiểm thử tự động (test automation). Nhìn chung, để ứng tuyển vị trí Fresher Tester, bạn cần nắm được:
- những khái niệm căn bản về kiểm thử phần mềm ( thế nào là một phần mềm chất lượng, vai trò của kiểm thử là gì, quy trình phát triển và quy trình kiểm thử phần mềm, …)
- tư duy và các kỹ thuật kiểm thử phần mềm
- vòng đời dự án, vòng đời kiểm thử
- khả năng phân tích yêu cầu và đọc hiểu tài liệu
- kỹ thuật thiết kế test case
- các viết test report
- ky năng phân tích yêu cầu và đặt câu hỏi liên quan
Công việc:
Công việc của một Junior Tester thường bao gồm:
- Đọc hiểu tài liệu mô tả hệ thống, tìm hiểu hệ thống và phân tích yêu cầu từ khách hàng/PM/BA
- Chuẩn bị các thiết lập như môi trường test, thiết bị test, dữ liệu test, v.v.
- Hiểu và thực hiện kiểm thử theo các test cases có sẵn
- Phân tích, thiết kế các test cases đơn giản
- Thực hiện kiểm thử
- Báo cáo lỗi (bugs) hoặc khiếm khuyến (defects) của phần mềm
- Hỗ trợ các hoạt động đảm bảo chất lượng khác…
Các bạn chưa có kinh nghiệm thường chỉ thực hiện kiểm thử theo các test cases có sẵn hoặc làm theo chỉ dẫn từ những người đi trước trong công ty. Tuy nhiên, khi đã bắt đầu nắm vững hơn, bạn cần phải tự viết test cases để phục vụ công việc, cũng như trau dồi kỹ năng cho bản thân.
Hãy luôn coi việc hiểu rõ sản phẩm, hiểu rõ dự án là vấn đề sống còn nếu bạn muốn trở thành một Tester thực thụ. Đừng ngần ngại đào sâu, trao đổi, đặt câu hỏi với các team lead, PM, BA hoặc thậm chí là khách hàng để biết họ cần gì, hệ thống làm việc như thế nào và yêu cầu kiểm thử cụ thể ra sao.
2.Senior Tester / Senior QA Engineer
Senior Tester là những người đã có kinh nghiệm trong kiểm thử ở một (hoặc vài) lĩnh vực cụ thể. Thường cần khoảng 5 năm trở lên để bạn trở thành một Senior Tester. Tuy nhiên, việc này còn phụ thuộc vào cách nhìn nhận của từng công ty, cũng như kỹ năng của bạn. Nếu bạn giậm chân tại chỗ trong 5 năm đó thì chưa chắc đã được coi là Senior đâu nhé.
Yêu cầu:
Bên cạnh những kiến thức, kỹ năng cơ bản của một Junior Tester, Senior Tester cần có kiến thức đủ sâu về một lĩnh vực cụ thể (ví dụ như kiểm thử ứng dụng trong ngành kế toán, tài chính, y tế, ngân hàng, thương mai điện tử hoặc trong lĩnh vực web application testing, game testing, v.v. nói chung). Mức độ Senior đòi hỏi ở bạn khả năng thích nghi cao với nhiều tình huống lắt léo, khả năng làm rõ và xử lý các vấn đề với sự chủ động cao mà không cần nhiều sự chỉ dẫn. Thậm chí, một Senior Tester có thể là mentor hoặc trainer cho các Junior Tester, cũng như trợ thủ cho Team Leader trong các nhiệm vụ phức tạp.
Công việc:
Công việc của Senior Tester bao gồm:
- Đọc hiểu tài liệu mô tả hệ thống, tìm hiểu hệ thống và phân tích yêu cầu từ khách hàng/PM/BA
- Chuẩn bị các thiết lập như môi trường test, thiết bị test, dữ liệu test, v.v.
- Hiểu và thực hiện kiểm thử theo các test cases có sẵn
- Thiết kế các test cases hoàn chỉnh, phức tạp hơn
- Thực hiện kiểm thử
- Báo cáo lỗi (bugs) hoặc khiếm khuyến (defects) của phần mềm
- Tham gia và đóng vài trò quan trọng trong các hoạt động đảm bảo chất lượng khác…
3. Định hướng phát triển lâu dài
3.1. Hướng quản lý — Test Manager/Test Lead
Khi đã dày dặn kinh nghiệm, Senior Tester có thể được đề bạt để trở thành Test Manager/Test Lead. Tuỳ vào trình độ và yêu cầu công việc, bạn có thể quản lý việc kiểm thử trên một hoặc nhiều ứng dụng khác nhau.
Khi đó, bên cạnh những công việc của một Tester, bạn sẽ có trách nhiệm của một nhà quản lý như:
- Lên kế hoạch kiểm thử phần mềm tối ưu nhất
- Quản lý và phân bổ nguồn lực cho từng dự án
- Quản lý tiến độ và đánh giá chất lượng công việc của các thành viên trong nhóm
- Báo cáo tình trạng của cả team cho các bên liên quan
- Làm việc với các nhóm, phòng ban khác nhau xoay quanh dự án
- Tổ chức và thực hiện training/mentorship cho các thành viên
- Xây dựng và review các tài liệu, test cases được sử dụng.
Là một Test Lead/Test Manager, công việc của bạn không chỉ đòi hỏi một nền tảng chuyên môn vững chắc mà còn yêu cầu nhiều kỹ năng mềm như quản lý nhân sự, quản lý dự án, cũng như khả năng làm việc với nhiều người, nhiều team khác nhau.
3.2. Hướng kỹ thuật — Test Automation Engineer
Nếu bạn vừa thích test, lại vừa có hứng thú với lập trình? Hay đơn giản là bạn muốn thử một hướng đi mới trong nghề kiểm thử? Hãy trở thành một Test Automation Engineer. Nhiều công ty hiện nay đã áp dụng Test Automation để đẩy nhanh hiệu suất kiểm thử, vậy nên việc trở thành Test Automation Engineer cũng giúp bạn có thêm nhiều lựa chọn khi tìm kiếm công việc.
Để trở thành một kỹ sư kiểm thử tự động, hiển nhiên bạn cần có kỹ năng lập trình. Việc tốt nghiệp ngành CNTT sẽ là lợi thế, hoặc bạn cũng có thể tự học các ngôn ngữ lập trình thông dụng như C/C++, C#, Python, Java, v.. Ngoài ra, bạn cũng nên trang bị các kiến thức khác như Test Design, SQL, Database, API Testing, Performance Testing, Agile, Continuous Delivery, các công cụ, framework thường dùng như Selenium, Jmeter, v.v. để có lợi thế hơn trong quá trình tìm việc.
Test Automation Engineer hiện đang là một vị trí hot, bởi nó vừa đòi hỏi tư duy của một Tester, vừa cần kỹ năng code của một Developer. Vậy nên ở nhiều công ty, Test Automation Engineer có thể có mức lương gần như ngang bằng với một Software Engineer.
3.3. Hướng quản lí sản phẩm — Business Analyst, PM
Từ Tester sang BA (Business Analyst) là một lộ trình được nhiều bạn trẻ lựa chọn. Tuy nhiên, quan niệm “không làm dev được thì làm test, không làm được test thì chuyển sang BA, PM” là hoàn toàn sai lầm, bởi không phải dev nào cũng có thể làm test, và không phải mọi Tester đều có thể trở thành BA. BA (hay nhân viên phân tích nghiệp vụ) không chỉ yêu cầu kỹ năng ngoại ngữ (tiếng Anh, tiếng Nhật, v.v.) mà còn đòi hỏi ở bạn:
- khả năng giao tiếp tốt để hiểu được khách hàng muốn gì
- hiểu biết sâu về lĩnh vực của hệ thống, lĩnh vực mà sản phẩm đang phục vụ (ví dụ như giáo dục, kế toán, ngân hàng, v.v.) để tư vấn và đàm phán với khách hàng về các yêu cầu (requests)
- kiến thức về IT để phân tích, cùng team thiết kế các module hệ thống
- kỹ năng tổng hợp, phân tích, truyền đạt thông tin để làm việc với team kỹ thuật
Vậy nên, không phải mọi Tester với kỹ năng ngoại ngữ tốt đều có thể trở thành BA. Tuy nhiên, với xuất phát điểm là một Tester, bạn sẽ có lợi thế về khả năng nhìn nhận vấn đề một cách tỉ mỉ trên nhiều phương diện, tư duy “end-to-end” giúp cho việc phân tích nghiệp vụ trở nên dễ dàng hơn.
3.4. Một số hướng đi khác
Performance testing (kiểm thử hiệu năng)
Performance testing có thể được hiểu theo nhiều nghĩa, tuỳ vào từng trường hợp cụ thể. Nhìn chung, đây là là kỹ thuật kiểm thử nhằm xác định hiệu năng, năng suất của một hệ thống, một ứng dụng (ví dụ khả năng chịu tải, lượt tải tối đa có thể xử lý, khả năng đáp ứng các yêu cầu, v.v.). Nếu muốn tìm hiểu sâu hơn, bên cạnh Performance Testing, bạn có thể tìm kiếm thêm các từ khoá như Load testing (kiểm thử tải), Stress testing (kiểm thử áp lực), Volume testing, Endurance/Soak testing, Spike testing, Scalability Testing.
Đây là một loại test phức tạp, dễ gây nhầm lẫn, từ đó ảnh hưởng đến kết luận về sản phẩm. Bởi vậy, các công ty thường có một bộ phận QA riêng với kiến thức sâu rộng và có thâm niên về mảng này. Nếu muốn theo đuổi hướng làm Performance Tester, bạn cần dành nhiều thời gian để học và thực hành, thay vì chỉ tham khảo một vài tài liệu đơn lẻ về hướng dẫn sử dụng Jmeter.
Security testing (kiểm thử bảo mật)
Cũng giống như kiểm thử hiệu năng, kiểm thử bảo mật là một mảng khá “khó nhằn” trong giới Tester. Dù chỉ một sự cố bảo mật cũng có thể đánh sập toàn bộ danh tiếng của công ty, thì liệu có công ty nào dám lơ là? Do đó, có thể nói Security Testing là một trong những công đoạn quan trọng nhất đối với bất kỳ sản phẩm công nghệ nào.
Nhiệm vụ của Security Tester là xác định, kiểm tra mọi mối đe doạ cho hệ thống và tính toán các rủi ro về bảo mật.
Hy vọng khi các bạn đọc đến đây, các bạn đã có 1 cái nhìn tổng quan về công việc của 1 tester. Và các bạn sẽ có những hoạch định trong tương lai nhé.
Nguồn: https://vn.got-it.ai/blog/career-path-cho-tester-qa-engineer