Nội dung bài học

Tester (kiểm thử viên) đang là một nghề siêu hot trong thời gian gần đây và sắp tới nữa, đồng nghĩa với việc hành trình chạy đua đến những công việc “ngon lành” cũng cạnh tranh hơn rất nhiều. Vậy làm gì để bạn trở thành một ứng viên nổi bật? Một Tester giỏi thì cần những kỹ năng gì?

Anh Tester đã tổng hợp 9 kỹ năng để trở thành Tester chuyên nghiệp với những điểm quan trọng về Tech (kỹ thuật) và Non-Tech (phi kỹ thuật) để bạn có thể hoàn thiện bản thân một cách toàn diện nhất.



Technical Skills

1. Systems Development Life Cycle

Systems Development Life Cycle (SDLC — Vòng đời phát triển hệ thống) là một chuỗi các pha (phases) trong chu trình phát triển một dự án phần mềm. Về cơ bản, một SDLC thường bao gồm 6 pha:

  • Pha 1: Planning (Pha kế hoạch)
  • Pha 2: Analysis (Pha phân tích)
  • Pha 3: Design (Pha thiết kế)
  • Pha 4: Development (Pha lập trình)
  • Pha 5: Testing (Pha kiểm thử)
  • Pha 6: Maintenance (Pha triển khai & bảo trì)

Là một tester, việc nắm rõ SDLC không chỉ cho phép bạn hiểu sâu về quá trình phát triển sản phẩm, mà còn giúp bạn xây dựng kế hoạch kiểm thử dễ dàng hơn, dự đoán sớm những vấn đề phức tạp để có phương án đo lường, dự phòng từ trước.

WaterfallScrumLean và Kanban là những phương pháp phổ biến được các công ty áp dụng để xây dựng SDLC. Hãy đảm bảo rằng bạn đã có khái niệm cơ bản về các phương pháp trên và đào sâu hơn vào phương pháp phù hợp nhất với yêu cầu công việc nhé.


2. Testing Process

Có 2 cách để thực hiện Testing Process (Quy trình kiểm thử), bao gồm: Manual Testing (kiểm thử thủ công) và Automation Testing (kiểm thử tự động).

Manual Testing:Giống như cái tên “Kiểm thử thủ công”, tester sẽ kiểm tra ứng dụng bằng cách đóng vai một người dùng cuối (end-user) để tìm ra bugs. Việc của bạn là thực hiện tất cả các test cases một cách thủ công mà không sử dụng công cụ kiểm thử tự động nào.

Automation Testing: “Kiểm thử tự động” sử dụng các công cụ để tự động hoá quy trình kiểm thử. Ví dụ thay vì phải nhập từng email và password bằng tay khi test chức năng login, bạn sẽ chạy code để máy tự động nhập các dữ liệu này. Test Automation Engineer tại Got It đã ví đây như một “cuộc cách mạng công nghiệp” khi tester có thể tối đa hiệu suất bằng các công cụ hiện đại, giúp giảm đáng kể thời gian và công sức bỏ ra.

Automation Testing không thể thay thế hoàn toàn Manual Testing. Tuy nhiên, nếu bạn muốn mở rộng lộ trình nghề nghiệp thì đây là một phương án rất đáng cân nhắc đấy nhé.


3. Testing Tools and Technologies

Hiểu biết về các công cụ và công nghệ kiểm thử là những kỹ năng sống còn đối với mọi tester. Nó giống như việc bạn sẽ không thể đi cày mà không có trâu hay máy cày vậy!

Got It đã tổng hợp những công cụ kiểm thử phổ biến nhất trong thời gian qua. Tuy nhiên, bạn không cần phải “master” tất cả những thứ được nêu tên, mà hãy chọn những gì phù hợp với nhu cầu của mình đã nhé.

  • Test Management Tools (Công cụ quản lí kiểm thử): Thường được dùng để quản lí các dự án, tài nguyên kiểm thử, lưu trữ kết quả kiểm thử, tạo báo cáo (reports), v.v.. Các công cụ quản lí kiểm thử thông dụng bao gồm TestRailTestLinkAsanaZephyr, và QMetry.
  • Agile Testing Tools (Công cụ kiểm thử Agile): Nếu bạn đang/muốn làm trong một công ty áp dụng Agile/Scrum, bạn nên có hiểu biết hoặc kinh nghiệm làm việc với JIRA hay SoapUI.
  • Load Testing Tools (Công cụ kiểm thử chịu tải): Apache JMeter và Tsung là hai công cụ thường được các tester sử dụng khi thực hiện load tests và stress tests.
Giữa vô số công cụ kiểm thử, bạn lựa chọn những công cụ phù hợp nhất với công việc để đào sâu thay vì học lan man. (Nguồn: Memory Leak)
  • Defect Tracking Tools (Công cụ quản lí lỗi): Để mọi thành viên (tester, developer, PM, v.v.) đều nắm được các lỗi và trạng thái của chúng trong một dự án phần mềm, ta thường sử dụng các công cụ như QCBugzilla hay JIRA.
  • Automation Testing Tools (Công cụ kiểm thử tự động): Những công cụ này cho phép bạn kiểm tra các chức năng của phần mềm một cách tự động, từ đó chạy được nhiều tests hơn trong thời gian ngắn một cách hiệu quả. Những công cụ kiểm thử tự động thông dụng bao gồm SeleniumWatir và Ranorex. Tuy nhiên, chỉ biết lý thuyết về chúng là chưa đủ. Bạn cần có kinh nghiệm thực tế (qua dự án tại công ty, bài tập nhóm, hackathon, dự án cá nhân, v.v.) thì mới có thể thực sự biết cách sử dụng các công cụ này.


4. Kiến thức cơ bản về Database/SQL

Mỗi hệ thống phần mềm đều có một lượng lớn dữ liệu. Chúng có thể được lưu trữ trong nhiều kho dữ liệu khác nhau như Oracle, MySQL/NoSQL (Redis, MongoDB)/SQL Server (Query DB), v.v. ở phần backend. Bởi vậy, tester cần có kiến thức cơ bản về các kho dữ liệu, cũng như cách sử dụng những câu truy vấn cần thiết để có thể truy cập vào database, tạo dữ liệu test mà không cần phải nhờ đến sự giúp đỡ từ các developers.


5. Kiến thức cơ bản về lập trình (không bắt buộc)

Bạn không bắt buộc phải biết code để ứng tuyển vào vị trí tester. Tuy nhiên, có kiến thức cơ bản về lập trình sẽ giúp bạn hiểu được cách các lập trình viên tạo ra sản phẩm, hiểu được các chức năng cũng như các lỗi thường gặp. Từ đó, việc tạo ra các test cases phù hợp cũng sẽ dễ dàng hơn rất nhiều.


Non-Technical Skills

6. Analytical skills (Kỹ năng phân tích)

Một tester giỏi cần có kỹ năng phân tích sắc bén. Bạn cần có khả năng bẻ nhỏ các vấn đề phức tạp của hệ thống phần mềm thành những phần nhỏ hơn để tạo test cases cho chúng. Bạn chưa chắc về kỹ năng phân tích của mình? Hãy thử bài test này — nếu có thể giải được ít nhất 1 câu thì kỹ năng phân tích của bạn đã rất đỉnh rồi đấy!


7. Communication skills (Kỹ năng giao tiếp)

Nhiều bạn nghĩ rằng tester là một vị trí thiên về kỹ thuật nên không cần quá nhiều khả năng giao tiếp. Tuy nhiên, thực tế đã chứng minh ngược lại.

Tester thường làm việc với rất nhiều bên trong một dự án, ví dụ như cập nhật tình hình cho khách hàng, trao đổi các vấn đề (issues) với developers, biến các tài liệu về requirements thành test cases và báo cáo kết quả cho quản lý, v.v.. Trong bất cứ trường hợp nào, bất kể người đang nói chuyện với bạn là ai, mọi thông tin đều phải được truyền đạt một cách vô cùng chính xác và súc tích, đặc biệt là với những vấn đề phức tạp và có liên quan đến nhiều bên.

Nguồn: The Balance Careers

Những kỹ năng cụ thể bao gồm:

  • Kỹ năng đặt câu hỏi. Với bất cứ điều gì chưa rõ, hãy luôn đặt câu hỏi. Đây là một trong những kỹ năng quan trọng nhất bạn cần có khi trở thành một tester. Học cách hỏi đúng câu, đúng lúc là điều mà bạn sẽ luôn phải trau dồi trong suốt quá trình làm việc của mình.
  • Kỹ năng lắng nghe. Hãy lắng nghe một cách chủ động và có trách nhiệm. Điều này không chỉ giúp bạn hiểu rõ tình hình công việc hiện tại, mà còn giúp bạn nảy ra những ý tưởng để cải thiện nó.
  • Kỹ năng thuyết trình. Chỉ lắng nghe thôi là chưa đủ. Bạn cần biết cách trình bày ý kiến của mình một cách rõ ràng, mạch lạc với các bên liên quan. Hãy luôn đảm bảo mọi người đã biết đến các lỗi mà bạn tìm ra để sửa chúng kịp thời nhé.


8. Time Management & Organization Skills (Kỹ năng quản lí thời gian)

Tester lúc nào cũng rất bận rộn, đặc biệt là những khi sắp release. Bởi vậy, nếu không quản lí được thời gian của mình, rất có thể bạn sẽ “ngập lụt” trong công việc và rơi vào cái vòng OT luẩn quẩn không hồi kết. Hãy học cách đặt ra thứ tự ưu tiên cho các đầu việc, thậm chí tạm thời nói “không” với những việc không quan trọng.


9. Be Proactive At Work (Làm việc chủ động)

Công nghệ phần mềm thay đổi từng giờ, từng phút. Là một tester, bạn rất dễ tụt hậu nếu không liên tục những kiến thức và công nghệ mới. Bởi vậy, trước tiên hãy chủ động tìm kiếm và học hỏi những kiến thức liên quan đến kiểm thử và phát triển phần mềm, như các hướng tiếp cận mới, cách tăng hiệu suất công việc.

Thứ hai, hãy chủ động trong việc áp dụng kiến thức vào thực tế. Như đã nói ở trên, bạn không thể nói mình thành thạo Test Automation nếu chưa thực sự dùng nó trong một dự án cụ thể. Việc chủ động áp dụng kỹ thuật, công nghệ mới sẽ giúp bạn dày dặn kinh nghiệm và có chỗ đứng tốt hơn trong công việc.

Cuối cùng, hãy chủ động trong toàn bộ quá trình làm việc. Bạn sẽ không thể trở thành Senior hay Manager nếu lúc nào cũng phải chờ người khác giao việc hay chỉ dẫn. Hãy chủ động học hỏi và đề xuất ý tưởng để cải thiện chất lượng sản phẩm. Và đừng quên hỏi nếu còn bất cứ điều gì chưa rõ nhé.


Nguồn tham khảo:


Gia nhập Cộng đồng Automation Testing

Facebook Group: https://www.facebook.com/groups/automationtest
Zalo Group: https://zalo.me/g/lsxswc560

Cộng đồng Automation Testing Việt Nam

🌱 Facebook Fanpage: Anh Tester
🌱 Telegram
Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu


Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ kiến thức lên trang

Bạn có thể đăng bài để chia sẻ kiến thức, bài viết của chính bạn lên trang Anh Tester Blog

Danh sách bài học