🤦 Một ngộ nhận đã tồn tại quá lâu!
Mình đã nghe câu nói này rất nhiều lần: “Code không giỏi thì làm Tester đi”. Có thể do nghe nhiều nên nó đã trở thành một định kiến quen thuộc. Tuy nhiên, nếu làm Tester đủ lâu, bạn sẽ nhận ra rằng đây không chỉ là một hiểu lầm đơn giản, mà là một cách nhìn lệch lạc về bản chất của công việc kiểm thử.
Sự thật về Nghề Tester
Tester thường bị xem là “phương án B”, là một lựa chọn an toàn cho những ai không theo nổi lập trình. Chính định kiến này khiến không ít người bước vào nghề kiểm thử với tâm lý “làm tạm” hoặc coi đây là một bước đệm để chuyển sang BA, PM, hoặc vai trò khác.
Nhưng thực tế lại không như vậy. Nhiều bạn lại rời bỏ công việc này sau vài năm vì không theo nổi.
Công việc kiểm thử không phải dự án nào cũng chỉ làm theo hướng dẫn, hay kiểm tra phần mềm dựa vào một danh sách test case hay checklist có sẵn. Kiểm thử tốt đòi hỏi bạn phải có một cách suy nghĩ khác, luôn đặt câu hỏi, luôn nghi ngờ, và luôn tìm cách hiểu sâu hơn về hệ thống cũng như nhu cầu thực sự của người dùng.
Ví dụ, khi kiểm thử trong một dự án gia công phần mềm, bạn chỉ cần đánh giá sản phẩm dựa vào tài liệu mô tả yêu cầu là đủ. Nhưng khi tham gia kiểm thử một sản phẩm trong “công ty product” bạn phải tìm hiểu về người dùng để hiểu họ đang sử dụng phần mềm thế nào, và họ đang cần gì.
Xem thêm NPS Survey là gì?
Code dở thì làm Tester
Không cần biết lập trình vẫn có thể làm Tester tốt. Điều này không sai, nhưng chỉ đúng một phần. Tuy Tester không phải là người trực tiếp lập trình chức năng tạo ra phần mềm, nhưng họ là người giúp kiểm chứng phần mềm đã hoàn chỉnh và hoạt động đúng theo yêu cầu và nhu cầu của người dùng hay chưa.
Với những dự án hay hệ thống không quá phức tạp, có thể chỉ cần áp dụng các kỹ thuật kiểm thử hộp đen, Tester hoàn toàn không cần quan tâm đến cách chức năng đó vận hành như thế nào. Dữ liệu được xử lý và lưu trữ thế nào bên trong phần mềm. Lúc này, Tester cần nắm vững nghiệp vụ của hệ thống (thông qua phân tích tài liệu và làm việc trực tiếp với các bên liên quan), để có thể lên kế hoạch phù hợp và hiệu quả nhất. Trên thực tế có rất nhiều kiểu dự án như thế này. Thậm chí nhiều dự án, Tester còn không có quyền truy cập vào nơi lưu trữ mã nguồn và cả cơ sở dữ liệu – Ví dụ như gia công phần mềm cho nước ngoài, khách hàng yêu cầu kiểm thử thủ công trên giao diện UI.
Hoặc, có nhiều dự án lớn ưu tiên người nắm vững nghiệp vụ hơn kiến thức nền tảng về IT như Ngân hàng hoặc Kế toán. Họ sẽ ưu tiên những bạn học chuyên ngành Kế toán và đã từng tham gia một khóa học kiểm thử phần mềm cơ bản hơn là các bạn chuyên công nghệ thông tin. Do, họ cần người hiểu nghiệp vụ để có thể kiểm thử ở mức hệ thống hoặc các cụm chức năng lớn tốt hơn.

Tester biết code
Trên thực tế, hiểu biết về kỹ thuật của Tester cũng không kém phần quan trọng. Nếu bạn áp dụng đúng lúc, nó sẽ phát huy tác dụng đáng kể.
Ví dụ, trong lúc nhóm bạn đang bàn về giải pháp, cách xử lý một vấn đề hay để sửa lỗi. Với kiến thức chuyên ngành IT của mình, bạn có thể giúp phát hiện những khía cạnh mà các bạn Developer hay quên là “những trường hợp nào thì giải pháp đó không đúng/ không phù hợp”. Đó là phát hiện rủi ro sớm, giúp ngăn ngừa lỗi từ rất sớm.
Điều khiến Tester khác biệt không nằm ở việc họ biết lập trình hay không, mà nằm ở cách họ suy nghĩ để giúp nhóm phát hiện rủi ro về chất lượng từ sớm. Tư duy này không đến từ kiến thức trong trường học, mà là kết quả của quá trình phân tích, suy luận, và kết nối vấn đề từ góc nhìn chất lượng và rủi ro.
Có những dự án thiên về kỹ thuật, ngoài nắm vững nghiệp vụ, Tester còn phải hiểu công nghệ và cách phần mềm vận hành để giúp đánh giá chất lượng toàn diện của hệ thống. Bên cạnh kiểm thử chức năng, UI,… lúc này có thể chúng ta cần phải đánh giá hiệu năng (performance testing) và kiểm thử bảo mật cho hệ thống (security testing) để tăng độ tin cậy về chất lượng.
Khi đó, nếu Tester không phải là “dân IT” sẽ rất khó tiếp cận và thực hiện tốt vai trò của mình.
Câu nói “code dở thì làm Tester” vì thế trở nên sai lệch ở một điểm cốt lõi: đánh đồng việc không viết lập trình với việc không cần kiến thức và hiểu biết về kỹ thuật phát triển phần mềm.
Top 5 kỹ năng cần thiết của Tester
Do tính chất công việc, ngoài những kỹ năng như Developer, Tester còn cần phải trang bị thêm một tập kỹ năng khác để hoàn thành tốt công việc của mình:
1. Kiến thức kiểm thử phần mềm
Nếu phải nói về những yếu tố quyết định một Tester có thể đi xa với nghề hay không, thì kiến thức nền tảng về kiểm thử phần mềm là điểm mấu chốt. Với nhiều người, kiến thức về quy trình phát triển và kiểm thử phần mềm thường bị xem là “lý thuyết”. Nhưng khi bạn hiểu được thì việc kiểm thử thủ công, kiểm thử tự động, hay lúc nào thì nên kiểm tra đánh giá cái gì,… và tại sao chúng ta nên làm vậy.
Bạn cần có kiến thức chuyên môn (như các kỹ thuật kiểm thử) để giúp công việc hiệu quả hơn. Khi kiểm thử mà không áp dụng kỹ thuật nào, tập test case bạn viết ra có thể rất nhiều về mặt số lượng, nhưng chất lượng (độ bao phủ so với thời gian thực hiện) thì có thể không cao. Ngược lại, nếu bạn áp dụng đúng các kỹ thuật kiểm thử phù hợp với tình huống, tập test case ít nhưng bao phủ tương đương sẽ hiệu quả hơn.
2. Kỹ năng quản lý
Kiểm thử phần mềm không phải lúc nào cũng phân tích tài liệu, viết test case, và chạy test case. Nếu bạn là quản lý một nhóm Tester trong một dự án, công việc của bạn phải là lập kế hoạch phù hợp, quản lý tiến độ và rủi ro, quản lý con người (Tester),… Tóm lại, kiểm thử không chỉ liên quan đến kỹ thuật mà còn liên quan đến quản lý.
Với một Tester trong dự án, cách bạn sắp xếp và hoàn thành công việc của mình, sẽ phản ánh kỹ năng quản lý công việc của bạn. Bạn biết công việc nào cần được ưu tiên, cái gì nên làm trước, làm sau, hợp lý và hiệu quả. Đó là kỹ năng quản lý thời gian và quản trị rủi ro.
3. Kỹ năng trình bày
Nếu bạn là một tay “sát bug” nhưng cách bạn cung cấp thông tin có thể ảnh hưởng đến quyết định một “con bug” có thể được xử lý hay không. Nếu Developer không tái hiện được lỗi đó trên máy tính của họ, thì con bug đó sẽ bị từ chối.
Developer đôi khi khó chấp nhận bug do Tester phát hiện vì họ có xu hướng chỉ tin vào những gì họ nghĩ. Bạn thường nghe họ nói: “trên máy tui chạy bình thường mà!” Vì thế, Tester cần rèn luyện kỹ năng trình bày để truyền đạt thông tin (nhất là thông tin về lỗi) hiệu quả hơn.
Để giúp giảm thời gian trao đổi qua lại giữa các bên và để một lỗi được giải quyết nhanh chóng. Khi báo lỗi Tester cần cần cung cấp thông tin đầy đủ, ngắn gọn và rõ ràng. Tập trung vào thông tin, dữ kiện thay vì dựa vào cảm tính hay công kích cá nhân người tạo ra lỗi.
Kỹ năng này gián tiếp giúp tỷ lệ lỗi được sửa tăng lên. Từ đó phần mềm đến tay người dùng sẽ đáng tin cậy và hoạt động ổn định hơn.
4. Kỹ năng giao tiếp
Tester không phải chỉ làm việc với tài liệu và phần mềm. Chúng ta cũng cần phải trao đổi với các vai trò khác như PM, Developer, và thậm chí là khách hàng. Đặc biệt là trong môi trường Agile (như áp dụng mô hình Scrum), thì việc tham gia các cuộc họp là không thể tránh khỏi.
Tester sẽ tham gia trực tiếp vào các buổi thảo luận về yêu cầu. Trực tiếp đặt câu hỏi cho Product Owner (hay gọi là PO) để bảo đảm nhóm hiểu rõ phạm vi yêu cầu. Giúp nhóm phát triển phần mềm đúng mục đích sử dụng, đúng ý khách hàng hơn. Và cũng giúp ước lượng thời gian hoàn thành công việc chính xác hơn.
Kỹ năng này giúp Tester làm việc với mọi vai trò khác trong nhóm phát triển phần mềm hiệu quả hơn.
5. Kỹ năng tự học
IT là một lĩnh vực thay đổi nhanh chóng, kỹ năng tự học không còn là lợi thế, mà là điều kiện bắt buộc để một Tester có thể tồn tại và phát triển lâu dài. Những gì bạn đang biết và có thể làm tốt hôm nay, có thể nhanh chóng lỗi thời chỉ sau một vài năm, thậm chí vài tháng. Nhất là khi các phương pháp kỹ thuật, công cụ mới, hay xu hướng như kiểm thử tự động và AI liên tục xuất hiện.
Một Tester giỏi không chờ có người đào tạo mới học, mà phải luôn chủ động cập nhật kiến thức từ nhiều nguồn khác nhau. Có thể là tự tìm hiểu thêm về một công cụ kiểm thử động mới, khi vô tình nghe thấy trên một hội nhóm hay bài báo. Hoặc đơn giản là tìm đọc thêm tài liệu để tìm hiểu sâu hơn về lĩnh vực của phần mềm mình đang tham gia kiểm thử.
Khi bạn làm phần mềm về Chứng khoán, thì nên tìm hiểu kỹ hơn về cách thị trường chứng khoán hoạt động, các khái niệm chuyên môn như cổ đông, cổ phiếu, các quy định pháp luật liên quan, v.v… Vì khi bạn nắm kiến thức chuyên ngành như vậy, bạn sẽ tự tin hơn trong kiểm thử, và giúp nhóm mình phát triển ra phần mềm “đúng yêu cầu” hơn.
Quan trọng hơn, kỹ năng tự học còn thể hiện ở việc “học đúng thứ cần học”. Không phải cái gì mới cũng cần theo đuổi, mà bạn cần hiểu rõ định hướng của mình để đầu tư thời gian hợp lý. Khi đã có thói quen cải thiện bản thân liên tục và học có chọn lọc, bạn sẽ không bị tụt lại phía sau, dù công nghệ có thay đổi nhanh đến đâu.
Làm Tester không hề dễ
Đến đây, bạn có thể thấy rằng làm Tester không khó. Nhưng để làm tốt công việc và phát triển hơn trong lĩnh vực này, thì không hề dễ dàng như nhiều trung tâm đào tạo hay quảng cáo.
Kiểm thử là một công việc đòi hỏi sự kết hợp hài hoà giữa tư duy logic, nền tảng kỹ thuật, và khả năng quan sát. Tester không phải lúc nào cũng chỉ tập trung tìm lỗi, mà còn giúp cả nhóm nhận diện rủi ro chất lượng từ sớm và cả trong suốt quá trình phát triển.
Với những ai không học công nghệ thông tin, Tester chỉ thực sự là cơ hội khi họ sẵn sàng học hỏi một cách nghiêm túc và liên tục. Nếu không, bạn cũng làm được tester nhưng sẽ bị giậm chân tại chỗ và bị đào thải sớm.
Tester không phải là lựa chọn thứ hai. Đó là một lựa chọn có chủ đích.
~~~
Bích Hợp – Một học viên đã hoàn thành khóa Fresher Tester tại Testing VN




