Nội dung chính
“Kiểm thử phần mềm, ai làm chẳng được” – Một trong những nhận định phổ biến nhất về công việc của một Tester. Nếu bạn đã từng ít nhất một lần nghe nhận định này, đây chính là bài viết “giải oan” cho nghề kiểm thử phần mềm mà bạn nên đọc.
Để giải oan cho những Tester, ITviec đã có một buổi trò chuyện vô cùng thú vị với một Tester đầy kinh nghiệm – anh Huỳnh Công Thành – Founder của AskTester.com để nghe anh chia sẻ thêm về nghề kiểm thử phần mềm, nhu cầu tuyển dụng cũng như những lời khuyên dành cho Tester trẻ.
Xem việc làm Tester trên ITviec
Công việc kiểm thử phần mềm – Testing
Kiểm thử phần mềm là gì và Quy trình kiểm thử phần mềm
Testing, hay còn gọi là kiểm thử phần mềm, là một công việc vô cùng quan trọng trong chu kỳ phát triển phần mềm. Theo anh Thành chia sẻ, Testing là một công việc thú vị, mang lại nhiều giá trị và cũng ngày càng phổ biến.
Công việc thường ngày của một Tester sẽ bao gồm:
- Nhận yêu cầu của khách hàng và phân tích yêu cầu
- Lập kế hoạch kiểm thử
- Thiết kế Test Case
- Tiến hành các Test Case
- Báo cáo lỗi, báo cáo kết quả kiểm thử
Điểm cộng và điểm trừ của nghề kiểm thử phần mềm
Anh Thành chia sẻ rằng ngành này có những điểm cộng như:
- Được tiếp cận cập nhật công nghệ kỹ thuật mới, “hi-tech”
- Làm việc đội nhóm, phát triển kỹ năng làm việc nhóm
- Cảm giác tự hào khi sản phẩm ra thị trường không có bug, người dùng thích. Điều đó chứng tỏ mình đã đóng góp giá trị tạo nên sự thành công cho phần mềm
- Kiểm thử phần mềm cũng là một trong những ngành “hot” hiện nay. Cơ hội phát triển và chế độ đãi ngộ rất cạnh tranh.
Về điểm trừ thì giá trị đóng góp của công việc Testing không rõ ràng so với phát triển phần mềm.
Nếu sản phẩm đầu ra của Developer là dòng code, tính năng sản phẩm hay sản phẩm hoàn thiện. Còn sản phẩm của Tester là góp phần giúp sản phẩm hoàn thiện, nhờ vào việc tìm bug.
Do đó công việc này chưa được đánh giá đúng mực.
Ai là người làm kiểm thử phần mềm? Chính là Tester
Xem thêm: Nghề Tester ở Việt Nam khổ vì định kiến
Những nhận định thường thấy về nghề Tester là gì?
- “Kiểm thử phần mềm, ai làm chẳng được”
Nhiều người vẫn có nhiều ngộ nhận về nghề kiểm thử phần mềm này, phổ biến nhất vẫn là “Kiểm thử phần mềm, ai làm chẳng được”.
Nhận định trên khiến nhiều bạn trẻ cứ ứng tuyển vào ngành Testing mà không hề đắn đo rằng mình đã được đào tạo bài bản hay chưa. Hoặc phần lớn là Developer chưa tìm được việc phù hợp cũng ứng tuyển làm Tester.
Cũng vì ngộ nhận “kiểm thử phần mềm ai làm chẳng được” nên một số bạn ngoài nền tảng kiến thức kỹ thuật tốt lại có tố chất của một Tester giỏi nhưng không chọn làm Tester vì “làm tester nghe không ‘oách’ bằng Developer” hay vì ngộ nhận là thu nhập của Tester không cao.
Thực tế từ anh và bạn bè anh cho thấy thu nhập của Tester hoàn toàn có thể cạnh tranh với Developer.
- “Developers make, Testers break”
Nhiều người vẫn thường nói “Developers make. Testers break”. Tuy nhiên, càng gắn bó lâu với nghề test anh càng nhận thấy kiểm thử phần mềm thực ra cũng không hẳn chỉ là “break software”.
Developer viết code, xây dựng tính năng sản phẩm dựa theo yêu cầu đặc tả. Trong khi Tester đóng vai trò như người thanh tra, đánh giá và kiểm soát chất lượng của sản phẩm thông qua việc tìm lỗi.
Trong những năm đầu mới làm test, anh thấy rất phấn khích, xen lẫn tự hào mỗi lần tìm được bug làm “crash” sản phẩm và gây “lao tâm khổ tứ” Developer. Anh gần như xem bug là kết quả cuối cùng của Tester cũng như đấu tranh quyết liệt để Developer có thể sửa lỗi của mình.
Tuy nhiên, một sản phẩm nhiều lỗi cũng không có gì là tốt cả. Suy cho cùng, mục đích cuối cùng của Testing vẫn là việc hỗ trợ team Developer tìm lỗi, ngăn ngừa lỗi để cũng ra được sản phẩm đúng thời hạn và “đủ tốt”.
Công việc hằng ngày của Tester là gì?
Tùy vào dự án, sản phẩm, giai đoạn Testing, loại Testing mà công việc của từng Tester sẽ khác nhau nhưng thông thường vẫn sẽ xoay quanh quy trình kiểm thử phần mềm như đã có nhắc đến ở trên. Ngoài ra, Nếu sản phẩm có bản cập nhật mới thì Tester sẽ tham gia thực thi Regression Test.
Nếu bạn là Automation Tester thì công việc của bạn sẽ xoay quanh:
- Nhận yêu cầu
- Viết script cho trường hợp kiểm thử
- Thực thi script
- Debug lỗi
- Báo cáo lỗi
- Báo cáo kết quả chạy Automation Test
Kỹ năng cho một Tester giỏi
Kỹ năng mà anh Thành muốn chia sẻ là kỹ năng đặt câu hỏi, đặt vấn đề.
Testing không chỉ gói gọn trong việc xác nhận sản phẩm có vận hành đúng theo yêu cầu khách hàng hay không, mà còn là đánh giá xem những yêu cầu đó có hợp lí hay chưa dưới góc nhìn người dùng.
Việc đặt câu hỏi tốt sẽ giúp gợi mở nhiều vấn đề quan trọng của sản phẩm. Từ đó giúp cung cấp thông tin đầy đủ cho chủ sản phẩm hoặc quản lý dự án, để đánh giá đúng về tình trạng sản phẩm.
Ví dụ, khi nhận yêu cầu Test một sản phẩm, đa số Tester chỉ dừng ở mức nhận yêu cầu, viết – chạy test case. Nếu sản phẩm vận hành đúng theo yêu cầu đặc tả ban đầu thì cho Test Case “Passed.”
Tuy nhiên, trong quá trình Test, anh luôn đặt cho mình những câu hỏi sau:
- Tại sao tính năng được thiết kế như vậy? Nó giúp gì cho người dùng?
- Sẽ như thế nào nếu người dùng làm [X] thay vì làm [Y] sau đó làm [Z]? V.v…
Sau đó, anh đã gợi ý cho Project Manager về thao tác [Y] để thêm vào sản phẩm, vì đó là hành vi mà người dùng có khả năng thực hiện. Khách hàng cũng đồng ý và sản phẩm cũng tốt hơn.
Ngoài ra, anh nghĩ sự tò mò, sáng tạo cũng đóng vai trò quan trọng trong con đường sự nghiệp của một Tester.
Vì tò mò giúp bạn luôn muốn tìm hiểu, khám phá thêm về sản phẩm. Còn sáng tạo giúp bạn nghĩ ra nhiều trường hợp kiểm thử thú vị mà các đặc tả, tài liệu hướng dẫn ban đầu chưa bao phủ hết.
Xem thêm: Tester là gì? Kỹ năng nào cần để trở thành Tester giỏi?
Con đường sự nghiệp cho Tester là gì?
Testing hiện đang “hot” nên con đường phát triển gần như là không có giới hạn. Về lý thuyết bạn có thể đi theo hướng: Tester → Test Lead → Test Manager → Test Director.
Điều quan trọng là bạn không nên tự giới hạn năng lực bản thân. Hãy cố gắng trau dồi, nâng cấp kỹ năng và sẵn sàng đón nhận khi thử thách, cơ hội đến.
Tài liệu kiểm thử phần mềm tham khảo
Để bước vào nghề Tester hoặc để trau dồi kỹ năng kiểm thử phần mềm, bạn có nhiều sự lựa chọn như tham gia các khóa học online/offline, thi chứng chỉ, hay học hỏi từ bạn bè, cộng đồng, v.v… Một số khóa học online mà bạn có thể tham khảo:
Ngoài việc tham gia những khóa học Testing, để kiến thức mình không bị lạc hậu so với thời đại, bạn có thể tham gia vào nhiều cộng đồng Tester và tham khảo những blogger trong ngành:
- Anh Thành vẫn thỉnh thoảng viết blog chia sẻ kiến thức về kiểm thử phần mềm ở AskTester.com, các bạn có hứng thú ghé ngang để cùng trao đổi về kiểm thử phần mềm
- Developsense.com của Michael Bolton
- Satisfice.com của James Bach
- StickyMinds.com của TechWell
Tuyển dụng nghề Tester
Ở vị trí hiện tại, anh Thành chia sẻ về những tiêu chí mà anh ưu tiên trong việc tuyển chọn Tester:
- Phù hợp văn hóa công ty, nhóm: Nghĩa là khi phỏng vấn, anh đánh giá xem ứng viên liệu có phù hợp với văn hóa của công ty và nhóm của mình hay không.
- Kỹ năng chuyên môn: Yêu cầu kỹ năng cũng tùy thuộc vào level của Tester. Trong nhiều trường hợp, ứng viên không nhất thiết phải đáp ứng đầy đủ yêu cầu của vị trí. Quan trọng là bạn đó phải cho anh thấy khả năng, tiềm năng của một Tester trong tương lai. Còn chi tiết như thế nào thì gặp anh phỏng vấn sẽ rõ (cười).
- Đa dạng: Anh ưu tiên những bạn có những kỹ năng kiến thức đặc biệt để có thể bổ sung và tạo sự đa dạng trong team. Mục đích là tăng cường sự hỗ trợ cũng như tính linh hoạt trong team.
- Tiếng Anh: Có tiếng Anh tốt là điểm cộng lớn với anh.
Nhu cầu tuyển dụng và thách thức với nghề Tester
Theo quan điểm anh Thành, nghề Testing vẫn còn đang rất “hot” về lương cũng như cơ hội việc làm, thậm chí anh nghĩ nó sẽ vẫn “hot” ít nhất trong 5-10 năm tới.
“Lý do đơn giản là khi nào người ta còn làm phần mềm thì Testing vẫn là hoạt động không thể thiếu. Chưa kể, Việt Nam cũng đang nhận được nhiều thiện cảm của giới phần mềm về nguồn nhân lực Developer, Tester” – Anh Thành chia sẻ thêm về lý do cho sức hấp dẫn của nghề.
Tuy nhiên, cơ hội thì nó cũng đi kèm với thách thức. Một vài thách thức anh chia sẻ rằng có thể diễn ra và thậm chí đang diễn ra:
- Yêu cầu công việc “kiểm thử phần mềm” rộng hơn
“Testing” hiện đã không còn mang ý nghĩa đơn thuần là “manual testing” nghĩa là viết test case, chạy test case thủ công đơn thuần.
Testing ngày nay gần như bao hàm ý nghĩa là Tester sẽ làm những gì cần thiết để test sản phẩm của mình. Đó có thể là chạy test case thủ công, đó cũng có thể là phải viết automation để tự động hóa công việc test thủ công của mình. Đó cũng có thể là hỗ trợ developer phân tích debug lỗi hay đóng góp ý tưởng để cải thiện tính năng sản phẩm v.v
Ngoài ra, mọi người nên thường xuyên vào các trang web về tuyển dụng như ITViec.com để cập nhật tình hình tuyển dụng, yêu cầu công việc để có thể chủ động lên kế hoạch phát triển bản thân tương ứng.
- Công nghệ thay đổi nhanh
Công nghệ thay đổi hằng ngày hằng giờ. Để có thể bắt kịp xu hướng và test một cách hiệu quả, Tester phải thường xuyên cập nhật kiến thức về công nghệ thông tin, kiến thức, kỹ thuật test mới. Bạn có thể tham gia diễn đàn, hội thảo, meetup về Testing để trao dồi, rèn luyện kỹ năng.
Một trong những cách để tự trau dồi kiến thức cho bản thân rất thú vị mà anh Thành khuyên các Tester trẻ nên làm đó chính là viết blog. Bạn không cần phải đợi đến khi trở thành “expert” để có thể viết blog và chia sẻ. Bạn cũng không cần năng khiếu về viết lách để có thể viết blog.
Ngoài việc giúp bạn rèn luyện kỹ năng viết, trình bày (kỹ năng trình bày đóng vai trò quan trọng trong Testing), viết blog còn giúp bạn nâng cao kiến thức Testing vì khi viết bạn sẽ phải nghiên cứu cặn kẽ, thấu hiểu vấn đề sâu rộng, tổng hợp thông tin chi tiết.
Hơn hết, những kinh nghiệm, kiến thức bạn chia sẻ, không chỉ giúp bạn tự “ôn tập,” mà còn giúp ích cho những bạn khác.
Hãy tạo ngay một blog và bắt đầu viết. Nếu không có công nghệ mới gì để viết, hãy viết về kinh nghiệm bạn từng trải qua, hay thậm chí là một lỗi/ thất bại và bài học bạn rút ra.
- Tiếng Anh
Tiếng Anh đóng vai trò quan trọng trong công việc (đặc biệt là các dự án outsource). Tuy nhiên, có một thực tế là nhiều bạn luôn phàn nàn, hay “bị” phàn nàn về kỹ năng tiếng Anh khi làm việc nhưng lại lười không chịu học tiếng Anh, hay bỏ ngang giữa chừng vì không thấy hiệu quả như mong muốn.
Trong nhiều trường hợp, tiếng Anh lại có khi mang tiếng nói quyết định đối với khả năng đi xa trong nghề của bạn.
Nếu bạn thấy tiếng Anh mình chưa đủ tốt, thì làm gì thì làm, học tiếng Anh vẫn nên là ưu tiên. Học tiếng Anh giống một cuộc đua marathon đường dài. Không phải chạy cự ly ngắn 100 m như Usain Bolt. Bạn cần phải kiên nhẫn và nhất quán mới mong đạt được hiệu quả như mong muốn.
Tester trong ngành IT nói gì?
Khi được hỏi về sai lầm trong quá trình 13 năm theo nghề kiểm thử phần mềm, anh chia sẻ ngay về một sai lầm anh từng mắc phải và hy vọng các bạn không vấp phải. Đó là việc giới hạn khả năng hay kiến thức mình biết được, hay còn gọi là lười nâng cao kiến thức.
Có thời gian dài anh chỉ làm công việc được giao. Sáng đi chiều về và mục đích cao nhất là hoàn thành công việc được giao đúng thời hạn.
Anh thậm chí không quan tâm ngành Testing đang có những công nghệ nào mới, kỹ thuật nào mới, cộng đồng Testing trên thế giới ra sao… Cho đến khi tham gia một số cộng đồng, diễn đàn Testing và nhận ra rằng những gì mình biết còn quá hạn hẹp.
Bài học anh muốn nói ở đây là không ngừng học hỏi. Điều này nghe có vẻ sáo rỗng vì có thể bạn đã nghe quá nhiều nhưng thực tế thì nhiều bạn vẫn còn thờ ơ với việc này.
Hãy thử hỏi mình một vài câu hỏi sau:
- Cuốn sách hay website nào về Testing mà bạn yêu thích hay đang theo dõi?
- Chuyên mục nào trong sách/ website đó mà bạn thích nhất?
- Lần cuối cùng bạn đọc sách hay một bài viết về Testing là khi nào?
Nếu những câu hỏi trên làm khó bạn thì đã đến lúc bạn nên hành động rồi. Bạn có thể chủ động trau dồi với những nguồn tài liệu tham khảo anh đã có chia sẻ ở trên cũng như phải hiểu được thách thức của nghề kiểm thử phần mềm, của một Tester để không chủ quan với những gì mình biết.
Với những chia sẻ vô cùng chân thành và phản ánh đúng hiện thực của nghề kiểm thử phần mềm từ anh Huỳnh Công Thành, ITviec và anh Thành chúc các bạn có thể tìm thấy thành công và tiếp tục nuôi dưỡng niềm đam mê để gắn bó với nghề kiểm thử phần mềm.
Tiểu sử:
Anh Huỳnh Công Thành có hơn 10 năm kinh nghiệm trong ngành Software Testing và trải qua nhiều vai trò từ Manual Tester, Automation Tester, Test Lead tại LogiGear, FPT Software. Anh hiện đang làm Test Lead nhóm Mobile tại Datalogic Vietnam.
Sau khi tốt nghiệp trường NIIT chuyên ngành phần mềm năm 2006, anh làm việc tại LogiGear với vai trò Junior Tester. Tại thời điểm đó kiến thức của anh về Testing chỉ là con số “0” tròn trĩnh. Nhưng được sự hỗ trợ, đào tạo và giúp đỡ của các anh chị Senior, anh dần quen công việc và “bén duyên” với Software Testing từ đó.
Ngoài công việc toàn thời gian, anh cũng dành thời giờ cho việc giúp đỡ phát triển cộng đồng kiểm thử, đặc biệt là trang web chuyên Hỏi – Đáp về nghề kiểm thử phần mềm tại AskTester.com.
Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp thì đừng ngại nhấn nút Share bên dưới nhé!
Xem thêm việc làm Tester tại ITviec