Kiểm Thử Phần Mềm, Ai Làm Chẳng Được?

Huỳnh Công Thành

“‘Kiểm thử phần mềm, ai làm chẳng được.’ Nhận định này khiến phần lớn Developer chưa tìm được việc phù hợp đều ứng tuyển làm Tester.”

Đọc bài phỏng vấn của ITviec với một Tester đầy kinh nghiệm –  anh Huỳnh Công Thành – Founder của AskTester.com – để tìm hiểu về:

  • Có phải ai cũng có thể làm Tester?
  • Thất bại anh từng trải qua trong công việc và bài học rút ra.
  • Lời khuyên anh dành cho các bạn Tester trẻ muốn cải thiện bản thân ngay hôm nay.

Anh Huỳnh Công Thành có gần 10 năm kinh nghiệm trong ngành Software Testing và trải qua nhiều vai trò từ Manual Tester, Automated Tester, Test Lead tại LogiGear, FPT Software. Anh hiện đang làm Test Lead nhóm Mobile tại Datalogic Vietnam.

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ề Testing AskTester.com.

Cơ duyên nào đã đưa anh đến với ngành Testing?

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ừ đó.

Điểm cộng và điểm trừ của ngành Testing là gì?

Testing là một phần trong chu kỳ phát triển phần mềm, vì vậy anh nghĩ nó có những điểm cộng như:

1) Được tiếp cận cập nhật công nghệ kỹ thuật mới, “hi-tech”.

2) Làm việc đội nhóm, phát triển kỹ năng teamwork.

3) 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, vì đ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.

4) Testing cũng là một trong những ngành “hot” hiện nay nên cơ hội phát triển và chế độ đãi ngộ rất cạnh tranh.

Về điểm trừ thì cơ bản giá trị đóng góp của Testing không rõ ràng so với phát triển phần mềm. Ví dụ: sản phẩm đầu ra của Developer là dòng code, là tính năng sản phẩm, là sản phẩm hoàn thiện, còn 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 đó Testing thường bị so sánh và chưa được đánh giá đúng mực.

Công việc và trách nhiệm thường ngày của một Tester là gì?

Công việc thường ngày của một Tester sẽ bao gồm: 1) nhận yêu cầu của khách hàng, 2) thiết kế Test Case, 3) tiến hành các Test Case, 4) báo cáo lỗi , báo cáo kết quả Testing. Nếu sản phẩm có bản cập nhật mới thì tham gia thực thi Regression Test.

Nếu là Automated Tester thì công việc sẽ xoay quanh 1) nhận yêu cầu, 2) viết script cho trường hợp kiểm thử, 3) thực thi script, 4) debug lỗi, 5) báo cáo lỗi, 5) báo cáo kết quả chạy Automated Test.

Tuy nhiên, 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.

Theo anh thì Tester khác Developer ở điểm nào?

Nhiều người vẫn thường nói “Developers make. Testers break”.

Câu nói đó không hoàn toàn chính xác nhưng nó nói lên sự khác biệt cơ bản giữa Tester và Developer. 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.

Có điều gì mà mọi người thường hay hiểu lầm về Tester?

Theo anh, 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 nhưng nhiều người vẫn có nhiều ngộ nhận về nó.

Anh từng chia sẻ về 5 ngộ nhận phổ biến trong kiểm thử phần mềm, nhưng phổ biến nhất vẫn là “kiểm thử phần mềm, ai làm chẳng được.”

Nhận định này 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ử 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.

Lúc nãy anh có đề cập đến tố chất của một Tester giỏi, anh có thể giải thích chi tiết hơn?

Tố chất mà anh muốn nói ở đây 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 career path 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.

Anh từng mắc phải sai lầm gì? Anh vượt qua như thế nào và anh học được gì từ đó?

Đa phần những sai lầm liên quan đến công việc hàng ngày không đáng quan tâm, vì đó là quá trình sai-sửa mà ai cũng phải trải qua.

Tuy nhiên có 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 Test ra sao v.v 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.

Bạn không tin? 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?

Cá nhân anh, sau khi nhận ra mình có một lỗ hổng lớn so với thời đại, ngoài việc tham gia vào nhiều cộng đồng Tester, anh còn thường xuyên cập nhật kiến thức mới ở Developsense.com của Michael Bolton, Satisfice.com của James Bach, StickyMinds.com của TechWell, Testbuffet. Ngoài ra, ở Việt Nam cũng có website VNTester.com rất đáng để theo dõi.

Nếu một bạn muốn trở thành Tester thì theo anh, bạn đó nên học hỏi gì ngay hôm nay?

Tất nhiên là học về Testing. (Cười.)

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…

Ở trên, anh đã chia sẻ một số blogger rồi, nên giờ anh gợi ý các bạn một số khóa học online sau:

Tương lai phát triển cho career path Testing như thế nào vậy anh?

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, 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.

3 lời khuyên anh dành cho các bạn Tester trẻ để họ có thể thực hành và cải thiện bản thân ngay hôm nay?

1) Không ngừng học hỏi, nâng cao kiến thức vì công nghệ thay đổi hàng ngày hàng giờ. 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.

2) 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.

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. 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.

3) Cải thiện khả năng 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.

Học tiếng Anh giống một cuộc đua marathon đường dài, chứ không phải chạy cự ly ngắn 100m 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.

Xem thêm việc làm Tester tại ITviec.

Robby ITviec

Bạn từng có kinh nghiệm gì về Testing, muốn thảo luận cùng anh Thanh và cộng đồng Ít Nhưng Mà Chất? Hãy comment ở phần bình luận cuối bài, hoặc cũng có thể email trực tiếp cho anh Thanh tại thanh[at]asktester.com

 

About the Author:

Product Owner

My business cards say such things as Product Owner. Read more...

Comments